| "Descrizione" by Radar (1854 pt) | 2026-Jan-29 15:38 |
Signetics SCN2681AC1N40
Definizione
Un DUART (dual asynchronous receiver/transmitter) è un circuito integrato che integra due canali UART indipendenti, ciascuno full-duplex, per gestire comunicazioni seriali asincrone (stile RS-232/TTL) con minore carico per la CPU rispetto a soluzioni discrete. Un DUART “tipo Signetics/Philips SCN2681” combina, nello stesso chip, due ricevitori/trasmettitori programmabili, una sezione di clocking (oscillatore + selezione clock), un baud rate generator, un counter/timer programmabile e logiche di interrupt e I/O ausiliari.

Cosa offre rispetto a una singola UART
Un dispositivo come lo SCN2681 è pensato per sistemi che devono gestire due linee seriali in modo robusto e flessibile, con queste caratteristiche tipiche:
Due canali indipendenti (canale A e canale B), con formato dati programmabile (bit dati, parità, stop) e velocità impostabili in modo separato per Tx e Rx.
Buffering del ricevitore: il ricevitore è quadruple-buffered per ridurre il rischio di overrun e abbassare l’overhead di interrupt/polling.
Gestione velocità: selezione di baud rate da un set di valori fissi (fino a 115.2 kbaud nelle specifiche della famiglia) oppure tramite clock derivati da timer/counter o ingressi esterni.
Contatore/timer programmabile a 16 bit: utile come base tempi, generatore di velocità non standard o generatore di onda quadra (a seconda della configurazione).
Porte ausiliarie: tipicamente una porta di input multiuso (es. 7 bit) e una porta di output multiuso (es. 8 bit) impiegabili come GPIO o come segnali “special function” (interrupt output, handshake, clock, status).
Flow control: possibilità di controllo di flusso per ridurre la perdita di dati quando i buffer del ricevitore sono pieni (tipicamente tramite linee stile RTS/CTS o funzioni equivalenti programmabili).
Modello di programmazione (registri e flusso driver)
La programmazione è in stile “registri per canale”, con blocchi tipici:
Mode registers (es. MR1/MR2): definiscono formato (5–8 bit, parità, stop, modalità speciali).
Clock select (CSR): seleziona la sorgente di clock/baud per Tx e Rx del canale.
Command register (CR): abilita/disabilita Tx/Rx, resetta errori, controlla break e funzioni operative.
Status register (SR): segnala Tx ready, Rx ready, errori (parità, framing, overrun) e condizioni buffer (es. “fifo full”).
THR/RHR: registro di trasmissione (holding) e registro di ricezione (holding), attraverso cui la CPU scrive i byte da inviare e legge i byte ricevuti.
Operativamente, un driver tipico: configura canale A e B, imposta baud e formato, abilita interrupt di ricezione, poi gestisce I/O con interrupt (o polling) leggendo RHR quando RxRDY è attivo e scrivendo THR quando TxRDY è attivo.
Clocking, baud rate e timer/counter
Un DUART di questa classe può lavorare con un cristallo o clock esterno, usando un baud rate generator interno e un counter/timer per generare velocità standard o non standard. La separazione tra sorgente clock e selettori per canale permette casi “dual-speed”, dove i due canali (o Tx/Rx dello stesso canale) operano a velocità diverse.
Schizzo dei collegamenti più importanti
┌───────────────────────────┐ │ CPU / MCU │ │ D[7..0] A[ ] /RD /WR │ │ /CS /IRQ (bus I/O) │ └──────────────┬────────────┘ │ ▼ ┌──────────────────┐ │ DUART SCN2681 │ │ Ch.A: RxA/TxA │───►/◄── Line driver (TTL↔RS-232) ─► seriale A │ Ch.B: RxB/TxB │───►/◄── Line driver (TTL↔RS-232) ─► seriale B │ Baud gen + C/T │ │ IP[ ] / OP[ ] │───► GPIO / handshake / status └───────┬──────────┘ │ Xtal/clk in
Note pratiche: tra DUART e RS-232 “vera” serve quasi sempre un line driver/receiver (es. MAX232-class). In logica TTL/CMOS diretta (embedded) si può collegare Rx/Tx direttamente a livelli compatibili.
Tabella 1 – Dati di identificazione e specifiche (italiano)
| Caratteristica | Valore indicativo |
|---|---|
| Dispositivo | SCN2681 (famiglia DUART Signetics/Philips) |
| Funzione | 2× UART asincrone full-duplex in un solo chip |
| Buffer Rx | Ricevitore quadruple-buffered |
| Formato dati | 5–8 bit, parità configurabile, stop configurabile |
| Baud rate | Selezione da set di baud fissi + sorgenti da timer/counter o clock esterno |
| Timer/counter | 16-bit programmabile, impiegabile anche per clock/onda quadra (secondo modalità) |
| I/O ausiliari | Porta input multiuso (tipicamente 7 bit) + porta output multiuso (tipicamente 8 bit) |
| Interfaccia | Bus µP (registri canale A/B, status/command/data), IRQ |
Tabella 2 – Registri e segnali “chiave” per integrazione (italiano)
| Elemento | Uso pratico |
|---|---|
| MR1/MR2 | Impostazione formato (bit dati/parità/stop) e modalità operative |
| CSR | Selezione clock/baud per Tx e Rx del canale |
| CR | Enable/disable Tx/Rx, comandi operativi (reset errori, break, ecc.) |
| SR | Stato Tx/Rx (ready), errori di linea, condizioni buffer |
| THR / RHR | Scrittura byte in trasmissione / lettura byte in ricezione |
| IRQ | Interruzioni (RxRDY, TxRDY, errori, eventi timer/porta) |
| Rx/Tx | Linee seriali verso livello TTL o verso transceiver RS-232 |
| IP[ ] / OP[ ] | GPIO o funzioni assegnabili (handshake, status, interrupt out, clock in, ecc.) |
| Evaluate |