From: Adam Shamblin Date: Mon, 27 Jun 2022 04:21:52 +0000 (-0600) Subject: Add hw flow control X-Git-Url: https://git.vexinglabs.com/?a=commitdiff_plain;h=b06d14b7fab52e657d121ab15ef4c718da3e2385;p=forthdeck.git Add hw flow control --- diff --git a/Makefile b/Makefile index a78187f..f5f0db4 100644 --- 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" diff --git a/src/uart.fs b/src/uart.fs index d9b13b9..c74e4c6 100644 --- a/src/uart.fs +++ b/src/uart.fs @@ -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 ;