Come collego la mia stampante ai pin GPIO seriali?


15

Ho acquistato una mini stampante termica da Adafruit. La documentazione afferma:

Questa stampante è ideale per l'interfacciamento con un microcontrollore, è sufficiente un'uscita seriale TTL da 3,3 V a 5 V dal microcontrollore

Poiché i pin seriali sull'uscita GPIO a 3.3VI presumevano che potevo semplicemente collegare la stampante direttamente ai pin e avrebbe funzionato senza un circuito di protezione. È un'ipotesi ingenua? Cos'altro devo fare per utilizzare la stampante?


1
Probabilmente a parte il software. Se la stampante produce dati di risposta, potrebbe essere necessario un limitatore di tensione. Potresti chiedere sui forum di adafruit, poiché vendono sia la stampante che i pi.
Chris Stratton,

Per quanto posso dire non ci sono dati di risposta.
Jivings,

1
@AlexChamberlain in una parola, no. Questo non è qualcosa di cui le persone si preoccupano nella traduzione logica. Un driver di tensione superiore che danneggia un ricevitore di tensione inferiore o un driver di tensione inferiore che non viene registrato in modo affidabile da un ricevitore di tensione superiore sì, ma non un assorbimento di corrente eccessivo quando si guida un semplice ingresso logico da un'altra famiglia.
Chris Stratton,

2
Hai visto questo? sparkfun.com/products/8745
Alex L

1
@RongNguyen Puoi farlo stampare tutto quello che ti piace, dovrai solo fare il duro lavoro da solo. C'è un tutorial qui .
Jivings,

Risposte:


5

I livelli di tensione non sono un problema, un '1' logico LVTTL sarà anche un '1' logico TTL. L'unico problema può essere la corrente (che affonda), come già suggerito da Alex Chamberlain. Questo può essere un problema.

Questa corrente di assorbimento dipende dal circuito di ingresso della stampante, poiché possiamo solo immaginare come sia costruita, potrebbe essere meglio essere sicuri quindi dispiaciuti!

Quindi, per sicurezza, mettete in mezzo un buffer CMOS. Un 74LCX244 per esempio. Se qualcosa inizia a fumare allora, non sarà il tuo Raspberry Pi.

Modifica: ho notato delle critiche sulle dichiarazioni attuali, a sostegno di questa affermazione:

Citazione da klabs.org :

  • Le fasi di output CMOS possono anche essere complicate e le caratteristiche sottili del dispositivo possono causare errori. Controlla attentamente tutte le specifiche! Ad esempio, molti dispositivi CMOS quando si guidano carichi sono specificati solo a livelli di corrente molto bassi per segnali "1" elevati o logici. Tuttavia, gli ingressi TTL assumono correnti sostanziali e non presentano l'alta impedenza vista dagli ingressi FET CMOS e l'uscita può essere trascinata verso il basso.

Maggiori informazioni su questo problema qui: Livelli di tensione di ingresso e uscita 5 V TTL e CMOS :

  • CMOS -> TTL: potrebbe essere necessario un buffer per gestire la corrente di affondamento aggiuntiva quando l'uscita CMOS si riduce

Spero che sia di aiuto.



1

Credo che "seriale TTL" significhi seriale asincrono che potresti trovare in una UART comune . Un modo naturale per collegare questa stampante a un PI sarebbe quello di trovare un UART sulla scheda (GPIO 14/15?) O collegarne uno a un altro bus. Ci sono alcuni chip buoni ( FTDI , CP2102 ) e peggiori ( prolifici ) disponibili per USB e carichi per I2C e SPI. Se il dispositivo richiede l'handshaking, dovrai preoccuparti anche di questo. La pagina di Adafruit non sembra usare alcun (Tx / Rx solo se l'ho letto bene).

Se si desidera eseguire questa operazione su GPIO effettivo (logicamente bene, ma vedere gli altri per avvisi sulla compatibilità elettrica), è possibile cercare "software uart".

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.