====== General information ====== The 6551 ACIA is an RS232 serial controller. It is used in the RF57-232 expansion for Thomson computers, allowing use as a standard RS232 serial port, or an RS-232-like serial link at TTL levels, to communicate with a Minitel. ====== Programming ====== The ACIA has only 4 registers, making it relatively easy to work with. ===== A7E8/E7E8: Data register ==== This register is used to read received data bytes, and write outgoing ones. ===== A7E9/E7E9: Status register ==== this register is read-only. ^Bit^Description ^Cleared by ^Hardware reset value^Software reset value^ |0|Parity error |Self-clearing|0|-| |1|Framing error |Self-clearing|0|-| |2|Overrun |Self-clearing|0|0| |3|Receive data register full |Reading data register|0|-| |4|Transmit data register empty |Writing data register|1|-| |5|/DCD |Reflects /DCD pin state|-|-| |6|/DSR |Reflects /DSR pin state|-|-| |7|IRQ |Reading status register|0|-| The "self-clearing" status bits are cleared after reading the data register, and successfully receiving one byte. ===== A7EA/E7EA: Command register ===== ==== Bits 7-5: parity check configuration ==== ^Value^^^Operation^ ^7^6^5| | |-|-|0|Parity disabled| |0|0|1|Odd parity| |0|1|1|Even parity| |1|0|1|Mark parity bit transmitted, no parity check| |1|1|1|Space parity bit transmitted, no parity check| ==== Bits 4-2: transmitter control ==== ^Value^^^TX interrupt^/RTS level^Transmitter^ ^4^3^2| | |1|0|0|Disabled|High|Off (local echo)| |0|0|0|Disabled|High|Off| |0|0|1|Enabled|Low|On| |0|1|0|Disabled|Low|On| |0|1|1|Disabled|Low|Transmit BRK| ==== Bit 1: receive interrupt enable ==== ==== Bit 0: Data Terminal Ready ==== Controls the /DTR pin and enables the receiver. ===== A7EB/E7EB: Control register ==== ==== Bit 7: stop bit ==== When set to 0, always use 1 stop bit. When set to 1: * If word length is 8 bit and parity enabled: 1 stop bit (9-bit words mode) * If word length is 5 bit and parity disabled: 1.5 stop bits * In all other cases: 2 stop bits ==== Bits 6-5: word length ==== * 0: 8 bits * 1: 7 bits * 2: 6 bits * 3: 5 bits ==== Bit 4: receiver clock source ==== * 0: use external clock on pin 17 * 1: use baud rate generator ==== Bits 3-0: baud rate divider ==== * 0: Divider disabled - 115200bps * 1: 50 baud * 2: 75 baud * 3: 109.92 baud * 4: 134.58 baud * 5: 150 baud * 6: 300 baud * 7: 600 baud * 8: 1200 baud * 9: 1800 baud * A: 2400 baud * B: 3600 baud * C: 4800 baud * D: 7200 baud * E: 9600 baud * F: 19200 baud