From b06d14b7fab52e657d121ab15ef4c718da3e2385 Mon Sep 17 00:00:00 2001 From: Adam Shamblin Date: Sun, 26 Jun 2022 22:21:52 -0600 Subject: [PATCH] Add hw flow control --- Makefile | 4 ++-- src/uart.fs | 16 ++++++++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) 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 ; -- 2.39.5