]> Vexing Labs - forthdeck.git/commitdiff
Add hw flow control
authorAdam Shamblin <adam@vexingworkshop.com>
Mon, 27 Jun 2022 04:21:52 +0000 (22:21 -0600)
committerAdam Shamblin <adam@vexingworkshop.com>
Mon, 27 Jun 2022 04:21:52 +0000 (22:21 -0600)
Makefile
src/uart.fs

index a78187f68e375c2e200e40a33f816c11d958e0e4..f5f0db4dd218787165c6297482cf91a4322dbf09 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
 # As recommended by the Mecrisp-Stellaris unofficial docs
 # @ https://mecrisp-stellaris-folkdoc.sourceforge.io/serial-terminals.html
 connect:
-       picocom -b 115200 /dev/ttyUSB0 \
+       picocom -b 115200 -f h /dev/ttyUSB0 \
                --imap lfcrlf,crcrlf \
                --omap delbs,crlf \
-               --send-cmd "ascii-xfr -s -l200"
+               --send-cmd "ascii-xfr -s"
index d9b13b979883605d0d82ea3ffa75c98717b48b37..c74e4c6e4a21779ffb702fe88a819b549e6b6be8 100644 (file)
@@ -1,4 +1,5 @@
 \ Words to explore and utilize UART
+\ Requires gpio.fs
 
 \ Base registers
 $40034000 constant UART0_BASE
@@ -24,5 +25,16 @@ UART1_BASE UARTCR + constant UART1_CR
 : rts-enabled? ( addr -- flag ) @ 1 14 lshift AND 0 > ;
 : cts-enabled? ( addr -- flag ) @ 1 15 lshift AND 0 > ;
 
-: rts-toggle ( addr -- ) dup @ 1 14 lshift XOR swap ! ;
-: cts-toggle ( addr -- ) dup @ 1 15 lshift XOR swap ! ;
+: rts-toggle ( addr -- ) DUP @ 1 14 lshift XOR SWAP ! ;
+: cts-toggle ( addr -- ) DUP @ 1 15 lshift XOR SWAP ! ;
+
+: rts-enable ( addr -- ) DUP @ 1 14 lshift OR SWAP ! ;
+: cts-enable ( addr -- ) DUP @ 1 15 lshift OR SWAP ! ;
+
+: loopback-enabled? ( addr -- flag ) @ 1 7 lshift AND 0 > ;
+: loopback-enable ( addr -- ) DUP @ 1 7 lshift OR SWAP ! ;
+
+\ Enable hardware flow control
+: hfc-enable ( addr -- )
+  2 pin UART funcsel! DUP cts-enable
+  3 pin UART funcsel! rts-enable ;