summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/lm32/milkymist/Documentation/uart.txt
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/lm32/milkymist/Documentation/uart.txt')
-rw-r--r--c/src/lib/libbsp/lm32/milkymist/Documentation/uart.txt31
1 files changed, 31 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/lm32/milkymist/Documentation/uart.txt b/c/src/lib/libbsp/lm32/milkymist/Documentation/uart.txt
new file mode 100644
index 0000000000..b5b93043e9
--- /dev/null
+++ b/c/src/lib/libbsp/lm32/milkymist/Documentation/uart.txt
@@ -0,0 +1,31 @@
+Initialization :
+
+ set the CSR_UART_DIVISOR to the correct VALUE,
+ depending on the internal frequency of the LatticeMico32 softcore.
+
+ for the ML401 board, this value is calculated using this formula : clk_frequency/230400/16
+ clk_frequency = 100000000 Hz
+ => we must set CSR_UART_DIVISOR to 27
+
+How to send a byte to uart :
+
+void writechar(char c)
+{
+ CSR_UART_RXTX = c;
+ while(!(irq_pending() & IRQ_UARTTX));
+ irq_ack(IRQ_UARTTX);
+}
+
+How to receive a byte from uart :
+
+
+char readchar()
+{
+ char c;
+ while(!(irq_pending() & IRQ_UARTRX));
+ irq_ack(IRQ_UARTRX);
+ c = CSR_UART_RXTX;
+ return c;
+}
+
+