| |
| | #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 |
| | |
| | #2 (permalink) Top | |
| User Data registr.: 04-03-2009
Messaggi: 99
| Citazione:
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 | |
| | |
| | #3 (permalink) Top | |
| Adv Moderator Data registr.: 15-08-2007 Residenza: sto a Massa ma sono molto Positivo
Messaggi: 12.071
| Citazione:
__________________ 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 | |
| | |
| | #4 (permalink) Top |
| User |
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) |
| | |
| | #5 (permalink) Top | |
| User Data registr.: 04-03-2009
Messaggi: 99
| Citazione:
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 | |
| | |
| | #6 (permalink) Top |
| User |
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) |
| | |
| | #7 (permalink) Top | |
| User Data registr.: 04-03-2009
Messaggi: 99
| Citazione:
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 | |
| | |
| | #8 (permalink) Top | |
| Adv Moderator Data registr.: 15-08-2007 Residenza: sto a Massa ma sono molto Positivo
Messaggi: 12.071
| Citazione:
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 | |
| | |
| | #9 (permalink) Top | |
| User Data registr.: 04-03-2009
Messaggi: 99
| Citazione:
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 | |
| | |
| | #10 (permalink) Top | |
| Adv Moderator Data registr.: 15-08-2007 Residenza: sto a Massa ma sono molto Positivo
Messaggi: 12.071
| Citazione:
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 | |
| | |
![]() |
| Bookmarks |
| |
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 |