Is it possible to use a UART chip without programming control registers? In other words, with Factory Default configuration? If yes, which ones?
UART - SPI mode.
I have examined the datasheet for the SC16IS741A as an example. I'm not saying I have to use this one. I just downloaded the datasheet to explore the possibilities of this type of device. I can use other chips as long as they are affordable and widely available.
If you already thought about an MCU as an answer or wanted to ask what type of MCU I use, forget about it. If there were any MCU involved, the question would be irrelevant. And I have several reasons why I don't want or need an MCU. Thanks for understanding. ;)
The goal is to send short streams of data between daisy chained 74HC595 shift registers, back and forth in a non-synchronous serial communication and over long distances (more than 10 meters) between one of several identical modules (one at a time) and one master module of similar design.
The number of bytes to be transmitted will be 4 or 5 (see further why), with possibly an extention to sent 6, 7 or 8 bytes. But that's not a requirement.
I still don't know the baudrate. It will depends how accurate the clock frequency will be to match all the 32 or 40 bits without readjusting, and without the UART. I didn't test that yet.
It's important that the modules remains very low cost, and could work without UART if possible. And I do think it's possible without an UART. (Please note that the cost is not the reason why I don't use a MCU.)
In any case it won't be more than 9600 bauds but it will be nice to have at least 1200 bauds. Clocking accuracy to achieve that, is another question. But failing to do so might be a reason why I will need an UART.
Now an UART is perhaps necessary if I want to communicate with more advanced systems, like a PC or any device used to standard protocols.
To transmit my 4 bytes of data, I can easily insert start bits and stop bits in order to complete the 8N1 format with two additional shift registers (one to receive, to other to send). That's not a big issue since these parts are very cheap but it will add to complexity, board size, minor cost addition etc. The problem is that I don't know yet if I will be able to synchronise the clock properly for 40 bits in a row without adjustment.
The ideal solution would be to find a chip which would do the 8N1 formatting. That's what a UART would do, on top of resynchronizing.
So why I don't want to write into the UART control registers? Because it would be much more simple to just solder them, and here you go. I plan to produce at least 100 modules for a first batch, and later in the hundreds. Avoiding this software programming would simplify the process greatly and the circuitry too.
The UART output should be SPI, not parallel, not I²C. It's not a requirement but it will be much more simple. An 8 bit parallel output, updating four times to output a total of 32 bits would make very complicated to re-translate the data over 32 output pins (or at least 16 of them) of subsequent ics. The same complication would apply in the opposite direction, while sending data from 16 input lines. The SPI allows me to directly ram the data into the shift registers and their 32 I/Os.
Your comments are welcome.