Sono abbastanza fiducioso che il problema sia che il Pi non ha un'interfaccia RS232, mentre il display sì.
Il Pi ha un'interfaccia (LV-)UART, il suo pin TX emette 0V per un 0
logico e 3,3 V per un 1
logico . Questo è abbastanza facile da implementare, poiché 3.3V è già disponibile sul Pi. Ma questo funziona solo per le comunicazioni su un singolo PCB o all'interno di un singolo dispositivo.
Per la comunicazione tra dispositivi su lunghe distanze, viene utilizzato un sistema meno soggetto a segnali di interferenza come RS232. Mentre la struttura logica della forma d'onda (bitrate, timing, bit di avvio, arresto, parità e dati) è la stessa dell'UART, i livelli di tensione sono -15V...-3V per un 1
e +15V...+3V per un 0
logico . Ciò significa che non ci sono solo tensioni più alte (e negative), ma anche il loro significato è invertito.
Quindi, se il display si aspetta i livelli RS232 e ottiene quei livelli di 3,3 V dal Pi, per lo più non riconosce i dati e, se lo fa, spesso è solo spazzatura.
E, naturalmente, se colleghi RX e TX della stessa interfaccia, ottieni ciò che ti aspetti.
Ma:se l'uscita RS232 TX non è limitata in corrente, potrebbe persino danneggiare il tuo Pi!
Ci sono schede di conversione da UART a RS232 là fuori, ma se ti piace saldare, le schede contengono solo un MAX3232 (più quattro condensatori). Questo circuito integrato genera anche i livelli di tensione più elevati (e negativi) dalla tensione di alimentazione di 3,3 V dal Pi.
Il più comune è il MAX232 (indovina perché si chiama così), ma è per il funzionamento a 5 V, non a 3,3 V.
Infine, poiché l'UART e l'RS232 utilizzano la stessa struttura logica, spesso non viene distinto tra loro, soprattutto dal software (programmatori). Spesso sono anche chiamate semplicemente "interfaccia seriale", sebbene esistano altre interfacce come I²C e SPI, che sono un tipo di interfaccia seriale, ma mai considerate "l'interfaccia seriale".
La porta seriale Raspberry Pi integrata utilizza livelli di tensione da 0 a 3,3 Volt, come descritto qui. Il convertitore da USB a seriale e il display utilizzeranno livelli di tensione RS232 nominalmente compresi tra -15 V e +15 V, con un minimo di -3 V/+3 V. Devi convertire tra questi due livelli.
La porta funzionerà durante il loopback poiché le tensioni di uscita e di ingresso sono compatibili.