Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Due Microprocessori per un singolo LCD

Progetti, interfacciamento, discussioni varie su questa piattaforma.

Moderatori: Foto UtenteMassimoB, Foto UtenteWALTERmwp, Foto Utentexyz

0
voti

[1] Due Microprocessori per un singolo LCD

Messaggioda Foto UtenteTekonoris » 19 ott 2018, 13:26

Ciao, stò realizzando, per puro divertimento, una specie di doppio tester con due arduino.
Uno utilizza un circuito già fatto (ArduTester), l’altro utilizza circuiti “fai da me” (AutoTester :D ).

I due circuiti hanno alimentazione separata (deviatore) e quindi teoricamente non si danno fastidio.
Una terza alimentazione (la principale, prima del deviatore) alimenta il display LCD.

Il display ha tutti i 6 contatti necessari (configurazione ridotta DB4-7 + RS + E) in comune.
Nessun altro pin è in comune tra i due processori (salvo la massa).

Quando alimento il circuito, in entrambi i casi, ottengo caratteri a caso sul display.
Se separo DB4 collegandolo solo al processore alimentato (deviatore), il tutto sembra funzionare.
Ho provato a spostare il pin DB4 comune su altri pin, ma il risultato è lo stesso.

1) Vorrei sapere se esiste/qual è lo uno schema corretto di collegamento tra i tre elementi (non ho trovato niente in rete).
2) Vorrei capire perché non funziona con DB4 in comune. Se non ho capito male, è “solo” un 4° bit dati inviato perché solo con questo pin non funziona ?

Stasera / Notte vorrei provare a:
a) Inserire un rele per DB4.
b) Inserire dei diodi sulla linea dati.

Il dubbio è che una volta saldato il tutto ci siano prb con gli altri pin comune e comunque NON credo sia "corretto".

Grazie
Avatar utente
Foto UtenteTekonoris
23 5
New entry
New entry
 
Messaggi: 81
Iscritto il: 19 ott 2018, 10:31

0
voti

[2] Re: Due Microprocessori per un singolo LCD

Messaggioda Foto UtenteIsidoroKZ » 19 ott 2018, 13:41

Se colleghi insieme le uscite di un circuito alimentato a quelle di un circuito non alimentato, non fai un piacere a nessuno dei due circuiti.

Una uscita non alimentata non e` un circuito aperto, ci sono dentro l'integrato dei diodi di protezione che caricano le uscite del circuito alimentato.

Se sono due microprocessori, tienili entrambi alimentati e programma l'uscita di quello che non vuoi usare in three-state.
Per usare proficuamente un simulatore, bisogna sapere molta più elettronica di lui
Plug it in - it works better!
Il 555 sta all'elettronica come Arduino all'informatica! (entrambi loro malgrado)
Se volete risposte rispondete a tutte le mie domande
Avatar utente
Foto UtenteIsidoroKZ
102,8k 1 3 8
G.Master EY
G.Master EY
 
Messaggi: 18315
Iscritto il: 17 ott 2009, 0:00

0
voti

[3] Re: Due Microprocessori per un singolo LCD

Messaggioda Foto UtenteTekonoris » 19 ott 2018, 13:53

Chiaro.
In teoria uno dei due processori è "già" programmato, quindi, sempre in teoria non posso fare scambio di dati tra i due e cambiare stato ai pin (in teoria :D ).
Di conseguenza non posso sapere quando uno dei due vuole scrivere su LCD. Per questo motivo alimentavo uno o l'altro processore.
Se non riuscissi a modificare il processore pre-programmato, cosa potrei fare ?
L'idea dei diodi è così sbagliata ?

Ovviamente proverò a mettere in comunicazione i due processori.
Avatar utente
Foto UtenteTekonoris
23 5
New entry
New entry
 
Messaggi: 81
Iscritto il: 19 ott 2018, 10:31

1
voti

[4] Re: Due Microprocessori per un singolo LCD

Messaggioda Foto Utenteluxinterior » 19 ott 2018, 14:42

Non ho ben capito la tua architettura e che prove vuoi fare ma se non puoi fare nulla su uno dei due micro una soluzione pulita sarebbe quella di simulare tutto dal tuo micro.
L'LCD lo colleghi e lo gestisci solo dal tuo micro. Quando lo usi per la tua applicazione nessun problema
le line che vanno all'LCD dall'altro micro lo colleghi invece a delle porte del tuo micro e simuli il comportamento dell'LCD.
Quando l'altro vuole scrivere tu interpreti i dati e li copi pari pari sull'uscita LCD collegata al tuo micro.
Insomma mi sono spiegato malissimo il sugo è
metti i due micro in cascata, quello che programmi tu sta in mezzo, gestisce LCD e riceve, per poi copiare sulla porta LCD, tutti i comandi che altro micro vuole mandare a LCD.
Avatar utente
Foto Utenteluxinterior
2.279 2 4 8
Expert EY
Expert EY
 
Messaggi: 1303
Iscritto il: 6 gen 2016, 17:48

1
voti

[5] Re: Due Microprocessori per un singolo LCD

Messaggioda Foto Utentexyz » 19 ott 2018, 14:46

Prima di tutto le masse devo essere in comune altrimenti rischi di danneggiare qualcosa e soprattutto come dice Foto UtenteIsidoroKZ mai collegare i pin di una board non alimentata con un circuito alimentato.

Credo che stai usando un LCD con il controller Hitachi HD44780. I pin RS e E sono di output ma i pin DBx sono di input e output quindi rende un eventuale circuito più complesso. L'idea dei diodi è da escludere a priori, fare un OR dei segnali di 2 bus distinti non ha senso e poi bloccherebbe il segnale di ritorno dei pin DBx. Non vedo nessuna soluzione semplice.

Il controller HD44780 deve essere inizializzato correttamente e non è detto che le due inizializzazioni siano compatibili, ad esempio se il primo firmware carica un set di caratteri non è detto che sia compatibile con il secondo.

Consiglio di mettere tutto in un solo microcontrollore, eventualmente di usarne uno più performante o di sincronizzare e far comunicare i 2 microcontrollori con uno solo che piloti LCD. L'idea più folle e non economica è quella di usare un terzo microcontrollore che legga i segnali dai 2 microcontrollori e piloti LCD in base a quello selezionato.
Avatar utente
Foto Utentexyz
5.740 2 4 5
G.Master EY
G.Master EY
 
Messaggi: 1511
Iscritto il: 5 dic 2009, 18:37
Località: Italy Turin

0
voti

[6] Re: Due Microprocessori per un singolo LCD

Messaggioda Foto UtenteTekonoris » 19 ott 2018, 14:59

Si il display è quello...
Non vorrei integrare in un unico processore.
Tutto questo sistema e per tenere i due Tester separati e vedere se il mio tester è abbastanza preciso come risultati controllandoli con il secondo (quello già programmato).
Come dite voi, forse la soluzione più "facile" è quella di metterli in comunicazione e collegare l'LCD a uno solo...
Pensavo (beata ignoranza) che fosse più semplice :mrgreen:

Ovviamente grazie a tutti !!!!
Avatar utente
Foto UtenteTekonoris
23 5
New entry
New entry
 
Messaggi: 81
Iscritto il: 19 ott 2018, 10:31

0
voti

[7] Re: Due Microprocessori per un singolo LCD

Messaggioda Foto UtenteTekonoris » 19 ott 2018, 22:12

Sono riuscito a provare ...
Seguendo le vostre indicazioni ho rielaborato e questo è il risultato (mai copiare senza elaborare :cool: ):
1) Collegato il display LCD solo al "mio" processore.
2) Fatto "override" della libreria LCD (per il momento MOLTO MOLTO spartanamente, la sistemerò) sul processore "programmato". Override interno, non modifico la libreria. In questo modo invio i dati mandati all'LCD sulla seriale senza modificare il codice del programmato.
Codice: Seleziona tutto
class LiquidCrystal
{
   public:
      void initialize (int a,int b,int c,int d,int e,int f);
      void begin(int a,int b);
      void print (String ss);
      void print (long aa);
      void setCursor(int a,int b);
};
void LiquidCrystal::print (String ss)
{
  Serial.println (ss);
}
...

3) Collegato Rx-Tx dei due processori (tanto non uso la seriale) e posso utilizzare un solo filo al posto dei 4.
4) Quando il "mio" processore è in stato Off (non spento però :D ) leggo i dati da seriale e li invio all'LCD.

In effetti mi sembra più pulito.

Che ne pensate ?
Grazie ancora
Avatar utente
Foto UtenteTekonoris
23 5
New entry
New entry
 
Messaggi: 81
Iscritto il: 19 ott 2018, 10:31

0
voti

[8] Re: Due Microprocessori per un singolo LCD

Messaggioda Foto Utentexyz » 20 ott 2018, 14:31

Credo che usi come microcontrollore ATmega328p degli Arduini più diffusi. Come scelta del canale di comunicazione hardware presenti nel chip, non hai solo UART (Universal Asynchronous Receiver/Transmitte) ma hai anche SPI (Serial Peripheral Interface) e I2C ((Inter-Integrated Circuit). Per il resto decidi tu come implementare il codice di comunicazione.
Avatar utente
Foto Utentexyz
5.740 2 4 5
G.Master EY
G.Master EY
 
Messaggi: 1511
Iscritto il: 5 dic 2009, 18:37
Località: Italy Turin


Torna a Arduino

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite