Torna indietro   BaroneRosso.it - Forum Modellismo > Elettronica > Circuiti Elettronici


Rispondi
 
Strumenti discussione Visualizzazione
Vecchio 31 marzo 13, 17:09   #1 (permalink)  Top
User
 
Data registr.: 09-09-2012
Residenza: Tra Torino e Battipaglia
Messaggi: 195
Ciao, i registri a scorrimento (google -> shift register) sono semplici da capire.
E' una memoria (in questo caso da 1byte, 8bit, detto anche registro) il cui
contenuto può "scivolare" ad ogni impulso di clock. Ha una porta di ingresso
e una di uscita e un metodo per caricare e/o scaricare il contenuto del registro
in maniera parallela.
Dalle porte di ingresso/uscita i bit entrano/escono in maniera seriale, cioè uno
dopo l'altro, uno per ogni impulso del clock.

Il 74HC165: quando il pin 1 viene portato a livello logico 0, copia lo stato dei
pin D0,D1,D2,ecc nel registro interno: se D0 è a 5V allora il primo bit sarà 1 ecc.
Ad ogni impulso di clock sul pin 2 il contenuto del registro scivola di un bit:
il bit 0 va al bit 1 , l'1 va al 2 ecc. Il bit 7 (che era stato caricato dal pin D7)
esce dal pin 9 che è l'uscita seriale. Inoltre il bit 0 assume lo stato del pin 10
che è l'ingresso seriale del registro. E così per ogni impulso di clock.
Quindi per leggere 8 ingressi la sequenza è:
impulso basso sul pin 1, carica lo stato degli ingressi.
8 impulsi di clock sul pin 2, ad ogni impulso lettura del pin 9.

Concatenare due registri: semplice, connetti il pin 9 del primo registro
al pin 10 del secondo registro, il pin 9 del secondo registro al micro.
I pin 1 (load) dei due registri vanno connessi assieme e pilotati dal micro,
idem per i pin 2 (clock).
Sequenza:
impulso basso sui pin 1 di entrambi i registri: carica i 16 ingressi.
16 impulsi di clock sui pin2 dei registri, il pin 9 del secondo registro
caccia i bit uno per uno ad ogni impulso di clock.
Dopo i primi 8 clock, il micro avrà letto lo stato del secondo registro,
mentre lo stato del primo sarà stato spostato dal primo registro
(uscendo dal pin 9) nel secondo (entrando dal pin 10), quindi
gli altri 8 clock leggeranno lo stato del primo registro.

Insomma un casino da spiegare, ma molto semplice da mettere
su. Compra un paio di 74HC165 e giocaci un po'.

Ciao!
__________________
Fabio
muvideo non è collegato   Rispondi citando
Vecchio 31 marzo 13, 19:21   #2 (permalink)  Top
User
 
L'avatar di bloodsun
 
Data registr.: 04-03-2009
Messaggi: 99
Citazione:
Originalmente inviato da muvideo Visualizza messaggio
Insomma un casino da spiegare, ma molto semplice da mettere
su. Compra un paio di 74HC165 e giocaci un po'.
Ciao!
Sai una cosa... credo che a spiegarlo avrei di sicuro fatto peggio.
Leggendo il datasheet avevo intuito che il piedino 10 aveva la funzione di bypass e che l'unione dei byte l'evrebbero fatta loro, ma non avevo ancora capito il principio di funzionamento interno. hai chiarito il tutto. Grazie.

Prima di comprarli però meglio che capisco come piazzarli fisicamente sulla scheda e la disponibilità di spazio... forse riesco a ridurre di parecchio il circuito se la mezza idea che m'è venuta in mente va in porto.

Ora come ora l'unico dubbio è se per 4 sensori (x 9 bit) mi convenga usare 5 registri e fare una stringa da 5 byte e poi interpretare il tutto via softwere oppure se devo/posso fare in altro modo, visto che a memoria il pic ha si e no una sola porta USART.
Tu suggerisci qualcosa di alternativo??
Ciao
bloodsun non è collegato   Rispondi citando
Vecchio 31 marzo 13, 19:45   #3 (permalink)  Top
Adv Moderator
 
L'avatar di romoloman
 
Data registr.: 15-08-2007
Residenza: sto a Massa ma sono molto Positivo
Messaggi: 12.071
Citazione:
Originalmente inviato da bloodsun Visualizza messaggio
Sai una cosa... credo che a spiegarlo avrei di sicuro fatto peggio.
Leggendo il datasheet avevo intuito che il piedino 10 aveva la funzione di bypass e che l'unione dei byte l'evrebbero fatta loro, ma non avevo ancora capito il principio di funzionamento interno. hai chiarito il tutto. Grazie.

Prima di comprarli però meglio che capisco come piazzarli fisicamente sulla scheda e la disponibilità di spazio... forse riesco a ridurre di parecchio il circuito se la mezza idea che m'è venuta in mente va in porto.

Ora come ora l'unico dubbio è se per 4 sensori (x 9 bit) mi convenga usare 5 registri e fare una stringa da 5 byte e poi interpretare il tutto via softwere oppure se devo/posso fare in altro modo, visto che a memoria il pic ha si e no una sola porta USART.
Tu suggerisci qualcosa di alternativo??
Ciao
Scusa ma mettere 4 pic sui sensori e sparare il tutto in i2c al pic principale non è fattibile ?
__________________
Vivere in qeusto mondo e molto belo belo e vale la pena starci ma a volte in questa UNICA vita che ci apartiene posono succedere cose brute brute alora mi chiedo perche siete incazziati domani pole esere anche lultimo
Grazie "TRANQUILLO"
FAI 15766
romoloman non è collegato   Rispondi citando
Vecchio 31 marzo 13, 20:12   #4 (permalink)  Top
User
 
L'avatar di ElNonino
 
Data registr.: 06-05-2007
Residenza: Tre Ville (Preore)
Messaggi: 3.605
Invia un messaggio via MSN a ElNonino
Io ci capisco sempre meno del tuo problema, allora devi leggere 4 sensori con risoluzione di 9bit ?

Senza svelare il tuo 'brevetto' ci dici che sensori sono ?

Se vuoi una mano mi pare che persone disposte a dartele qui ce ne sono più di una; ma senza avere dati precisi per me è impossibile.

P.S. per il multiplexer guardati il datasheet del CD4051, poi ne riparliamo.


__________________
Peace & Love
Fate le cose nel modo più semplice possibile, ma senza semplificare. (A. Einstein)
ElNonino non è collegato   Rispondi citando
Vecchio 31 marzo 13, 20:31   #5 (permalink)  Top
User
 
L'avatar di bloodsun
 
Data registr.: 04-03-2009
Messaggi: 99
Citazione:
Originalmente inviato da ElNonino Visualizza messaggio
Io ci capisco sempre meno del tuo problema, allora devi leggere 4 sensori con risoluzione di 9bit ?

Senza svelare il tuo 'brevetto' ci dici che sensori sono ?

Se vuoi una mano mi pare che persone disposte a dartele qui ce ne sono più di una; ma senza avere dati precisi per me è impossibile.

P.S. per il multiplexer guardati il datasheet del CD4051, poi ne riparliamo.
si alla fine sono 4 sensori da 9 bit... sono una serie di sensori per correggere la posizione di un macchinario da parte di un operatore. niente da brevettare o altro. devo solo adattare l'hardwere al contenitore. Un progetto solo in digitale lo avevo già fatto con delle porte OR ed un solo PIC, ma risultava troppo grande. ho bisogno di suggerimenti per cambiare il circuito.
Non ci sono tante altre informazioni da dare... alimentazione 0-5 volendo anche una linea da 12, 9 bit dai sensori x 4 e la necessità di portare al pic questi segnali limitando fortemente il numero di cavi necessari all'operazione. Se vogliamo aggiungere, i sensori possono avere anche cavo separato, oppure messo in serie l'uno all'altro... a mia discrezione (Avevo cercato di semplificare la vita a voi che mi date utili consigli)

grazie della disponibilità
p.s. darò un'occhio al CD4051, anche se l'idea dell'analogico comincio a metterla in panchina per il momento
bloodsun non è collegato   Rispondi citando
Vecchio 31 marzo 13, 20:59   #6 (permalink)  Top
User
 
L'avatar di ElNonino
 
Data registr.: 06-05-2007
Residenza: Tre Ville (Preore)
Messaggi: 3.605
Invia un messaggio via MSN a ElNonino
Allora vediamo di restringere le variabili, i 9bit che escono dal singolo sensore sono seriali, paralleli o codificati in qualche modo; per intenderci ci sono sensori di posizione a fotocellula, magnetici, ottici a laser etc etc etc con uscite codificate, oppure sensori 'barbari' tipo gli indicatori di direzione vento realizzati con 8 reed se hai 9 interruttori con contatto 'pulito' la soluzione R-2R potrebbe essere percorribile ti servirebbero solo 4 ingressi A/D sul PIC (uno per sensore) un solo filo di segnale dal sensore oltre al GND comune ed ai 12V.

Anche se l'ambiente industriale è intrinsecamente rumoroso si possono trasmettere segnali analogici a discrete distanze senza troppi problemi; un punto importante è anche conoscere la velocità di risposta necessaria, filtrare e pulire un segnale analogico comporta una latenza in taluni casi non accettabile (es. sistemi di sicurezza od emergenza).

Se lato sensore non rappresentasse un problema implementare un semplice circuito si potrebbe pensare di trasmettere il segnale o in corrente 4..20mA o con un pwm, anche la trasmissione seriale proposta da romoloman (leggermente più complessa) è percorribile usando una sola linea 485 per tutti i sensori (sconsiglio la I2C su distanze superiori ad 1m ed in ambiente industriale); che PIC usi per controllare il tutto ?.

__________________
Peace & Love
Fate le cose nel modo più semplice possibile, ma senza semplificare. (A. Einstein)
ElNonino non è collegato   Rispondi citando
Vecchio 31 marzo 13, 21:30   #7 (permalink)  Top
User
 
L'avatar di bloodsun
 
Data registr.: 04-03-2009
Messaggi: 99
Citazione:
Originalmente inviato da ElNonino Visualizza messaggio
Allora vediamo di restringere le variabili, i 9bit che escono dal singolo sensore sono seriali, paralleli o codificati in qualche modo; per intenderci ci sono sensori di posizione a fotocellula, magnetici, ottici a laser etc etc etc con uscite codificate, oppure sensori 'barbari' tipo gli indicatori di direzione vento realizzati con 8 reed se hai 9 interruttori con contatto 'pulito' la soluzione R-2R potrebbe essere percorribile ti servirebbero solo 4 ingressi A/D sul PIC (uno per sensore) un solo filo di segnale dal sensore oltre al GND comune ed ai 12V.

Anche se l'ambiente industriale è intrinsecamente rumoroso si possono trasmettere segnali analogici a discrete distanze senza troppi problemi; un punto importante è anche conoscere la velocità di risposta necessaria, filtrare e pulire un segnale analogico comporta una latenza in taluni casi non accettabile (es. sistemi di sicurezza od emergenza).

Se lato sensore non rappresentasse un problema implementare un semplice circuito si potrebbe pensare di trasmettere il segnale o in corrente 4..20mA o con un pwm, anche la trasmissione seriale proposta da romoloman (leggermente più complessa) è percorribile usando una sola linea 485 per tutti i sensori (sconsiglio la I2C su distanze superiori ad 1m ed in ambiente industriale); che PIC usi per controllare il tutto ?.
vedo di rispondere alle domande specifiche.
I sensori sono semplici micro switch a contatto on/off e mi danno 9 bit di segnali isolati fra loro. Se vogliamo identificarli così, in questo momento li posso definire 9 bit in parallelo.
La definizione "R-2R" non saprei cosa comporta a livello di schema e a livello di interpretazione softwere.
Particolari esigenze di tempo di risposta non ne ho... quando ho una lettura ogni mezzo secondo penso sia già sufficente, non ho necessità ed esigenze di sicurezza perchè il macchinario è isolato dall'essere umano e non crea danni anche se andasse fuori dai sensori. Comporta solo il doverlo riposizionare (L'esempio più verosimile è "sensori di parcheggio a contatto" per evitare che altre macchine collidano con essa.)
Non ho grandi problemi di distanze o rumorosità ambientale, ma semplicemente l'impossibilità fisica della sezione che ne limita il numero di cavi da poter passare per arrivare alla scheda del pic.
Attualmente a casa ho un 16F877 ed ero partito con quello, ma se volessi usarne uno di minor dimensioni e porte non mi cambia molto (dipende tutto dalla soluzione che adotterò)
Poi il pic fungerà da slave ad un'altro pic con un segnale a 12 V in PWM (opportunamente interfacciato) che trasporterà il segnale per un cavo di circa 5 metri. In base al livello di PWM saprò in che posizione è l'oggetto sui sensori.

Ultima modifica di bloodsun : 31 marzo 13 alle ore 21:33
bloodsun non è collegato   Rispondi citando
Vecchio 31 marzo 13, 22:07   #8 (permalink)  Top
Adv Moderator
 
L'avatar di romoloman
 
Data registr.: 15-08-2007
Residenza: sto a Massa ma sono molto Positivo
Messaggi: 12.071
Citazione:
Originalmente inviato da ElNonino Visualizza messaggio

Se lato sensore non rappresentasse un problema implementare un semplice circuito si potrebbe pensare di trasmettere il segnale o in corrente 4..20mA o con un pwm, anche la trasmissione seriale proposta da romoloman (leggermente più complessa) è percorribile usando una sola linea 485 per tutti i sensori (sconsiglio la I2C su distanze superiori ad 1m ed in ambiente industriale); che PIC usi per controllare il tutto ?.


concordo, ma senza specifiche di lunghezza il modo più semplice mi sembrava l'i2c, del resto se si potevano portare dei segnali mediante un DAC casereccio immaginavo che le distanze non fossero eccessive. Comunque concordo in ambito industriale meglio RS-485
Come soluzione vedo bene un atmega-32 con un max485 in cascata
__________________
Vivere in qeusto mondo e molto belo belo e vale la pena starci ma a volte in questa UNICA vita che ci apartiene posono succedere cose brute brute alora mi chiedo perche siete incazziati domani pole esere anche lultimo
Grazie "TRANQUILLO"
FAI 15766
romoloman non è collegato   Rispondi citando
Vecchio 31 marzo 13, 20:16   #9 (permalink)  Top
User
 
L'avatar di bloodsun
 
Data registr.: 04-03-2009
Messaggi: 99
Citazione:
Originalmente inviato da romoloman Visualizza messaggio
Scusa ma mettere 4 pic sui sensori e sparare il tutto in i2c al pic principale non è fattibile ?
Magari!! Il problema è lo spazio dei sensori che è lungo a dischezione ma piuttosto stretto.
Far passare le piste in mezzo ai sensori diventa difficoltoso e sono arrivato già al limite, ed aggiungere componenti lo ritengo impossibile per lo sviluppo della basetta.
Comunque volevo farti notare che i registri fanno già quel che suggerisci tu. In pratica faresti fare al softwere del pic quello che fa l'hardwere dei registri, aggiungendoci componenti necessari al funzionamento del PIC come il quarzo e condensatori e necessità di programmarli.
Ciao
bloodsun non è collegato   Rispondi citando
Vecchio 31 marzo 13, 20:48   #10 (permalink)  Top
Adv Moderator
 
L'avatar di romoloman
 
Data registr.: 15-08-2007
Residenza: sto a Massa ma sono molto Positivo
Messaggi: 12.071
Citazione:
Originalmente inviato da bloodsun Visualizza messaggio
Magari!! Il problema è lo spazio dei sensori che è lungo a dischezione ma piuttosto stretto.
Far passare le piste in mezzo ai sensori diventa difficoltoso e sono arrivato già al limite, ed aggiungere componenti lo ritengo impossibile per lo sviluppo della basetta.
Comunque volevo farti notare che i registri fanno già quel che suggerisci tu. In pratica faresti fare al softwere del pic quello che fa l'hardwere dei registri, aggiungendoci componenti necessari al funzionamento del PIC come il quarzo e condensatori e necessità di programmarli.
Ciao
Assolutamente no...
Evidentemente non conosci il bus I2C...
Il sistema con i sensori equipaggiati di pic diventerebbe molto più scalabile...
se ci riesci a mettere un cd4051 ci metti anche un pic o un AVR, inoltre in questi casi non hai bisogno del quarzo, l'oscillatore interno basta ed avanza...
__________________
Vivere in qeusto mondo e molto belo belo e vale la pena starci ma a volte in questa UNICA vita che ci apartiene posono succedere cose brute brute alora mi chiedo perche siete incazziati domani pole esere anche lultimo
Grazie "TRANQUILLO"
FAI 15766
romoloman non è collegato   Rispondi citando
Rispondi

Bookmarks




Regole di scrittura
Non puoi creare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi inserire allegati
Non puoi modificare i tuoi messaggi

BB code è Attivato
Le faccine sono Attivato
Il codice [IMG] è Attivato
Il codice HTML è Disattivato
Trackbacks è Disattivato
Pingbacks è Disattivato
Refbacks è Disattivato


Discussioni simili
Discussione Autore discussione Forum Commenti Ultimo Commento
Italiano da interpretare Ehstìkatzi Modellismo società e istituzioni 58 10 luglio 07 07:50
interpretare disegno stefano007 Aeromodellismo Progettazione e Costruzione 4 05 giugno 07 19:32
Motocalc , interpretare i risultati Alpino Aeromodellismo Volo Elettrico 0 25 febbraio 07 18:34
Interpretare una polare... fra79 Aeromodellismo Progettazione e Costruzione 19 23 ottobre 06 20:32
Interpretare Le Polari MaVe Aeromodellismo Progettazione e Costruzione 3 30 marzo 06 18:57



Tutti gli orari sono GMT +2. Adesso sono le 06:41.


Basato su: vBulletin versione 3.8.11
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
E' vietata la riproduzione, anche solo in parte, di contenuti e grafica. Copyright 1998/2026