Pages: 1 ... 10 11 [12]   Go Down
Author Topic: Barriera Infrarossi  (Read 11261 times)
0 Members and 1 Guest are viewing this topic.
Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 134
Posts: 9700
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

-   Confermo che la modalità idle non funziona, credo che in realtà il sistema si riattivi all’istante (come ha intuito astrobeed), ma non sono in grado di stabilirlo, e il mio dubbio è che sia colpa del fatto di usare un PCINTx invece di INT0,

Ho verificato con il simulatore di AvrStudio, la colpa è proprio della Millis() che fa uscire dallo sleep, in idle, a causa dell'interrupt sul timer 0, non c'è soluzione salvo disattivare la millis spegnendo il timer 0.

Quote
Ho una sola possibilità e spero nell’aiuto di Astrobeed: imparare come si fa, SUL 328, ha spostare l’uscita dei 38KHz sul pin 3 invece che sull’11

Non è possibile perché il pin 3 non prevede la modalità "Toggle  on Compare Match", relativamente al timer, è disponibile solo per il pin 11, sul pin 3 è solo possibile avere un normale PWM con tutti i limiti nel setup della frequenza.
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 333
Posts: 22973
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Non vorrei dire minchiate ma secondo me con il Tiny non ne esci.
Se leggi il datasheet, pagg. 35, trovi questo:

Quote
Pag: 35:
Idle Mode
When the SM[1:0] bits are written to 00, the SLEEP instruction makes the MCU enter Idle mode,
stopping the CPU but allowing Analog Comparator, ADC, USI, Timer/Counter, Watchdog, and
the interrupt system to continue operating.
Idle mode enables the MCU to wake up from external triggered interrupts as well as internal
ones like the Timer Overflow.
Quindi, IDLE non va bene perché quando il timer interno usato per generare l'onda va in overflow, fa uscire il micro dallo sleep dato che attiva l'INT0. Ecco perché sembra che non ci vada: in realtà va in sleep ma si risveglia subito perché il timer sta generando un'onda a 38 kHz, quindi lo sleep dura una frazione infinitesima di secondo.

Abbiamo poi già stabilito che in Power-Down i timer vengono spenti.

Secondo me devi cambiare micro.

Logged


Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 574
Posts: 12643
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

@ Astrobeed: ti ho perseguitato inutilmente solo perché restavo aggrappato a questa tua frase:
Quote
Ti serve solo la parte contenuta nel setup, cioè come settare i registri TCCR2A e TCCR2B per ottenere sul pin 11, oppure sul 3, un'onda quadra a 37.975 kHz (rilevata su una Luigino 328 con quarzo da 16 MHz).
, evidentemente ti riferivi all'alternativa del pwm, ok, discorso chiuso allora.

@ Leo:
OK, hai trovato il motivo  smiley-sad
Quote
Secondo me devi cambiare micro.
L'unico che potrei usare è tiny84 che però non credo mi risolva la cosa, essendo anche lui senza la modalità pwr_save, e non posso andare oltre i 7+7 pin, cioè non posso usare il 328, altrimenti avevo già finito da un pezzo.
Se non ho altre speranze devo tornare all'idea iniziale di mettere un 555 per generare i 38KHz, però questa scoperta di Astrobeed era davvero spettacolare, mi dispiace a morire se devo abbandonarla  smiley-cry smiley-cry smiley-cry
Se non avete altre idee o soluzioni devo basarmi su ciò che ho a disposizione. In tal caso Vi ringrazio perché mi avete fornito veramente una marea di elementi utili, se siamo arrivati al limite del micro non ci si può fare nulla.
Logged


Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 574
Posts: 12643
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Mi sono accorto di una cosa che mi crea problemi a prescindere dal resto, e ho avuto la conferma testando l'ultimo codice di Leo (anche se c'era un piccolo errore sul set_sleep_mode.
In pratica il TSOP deve generarmi un qualche disturbo "invisibile" perché il programma va in loop; in parole povere se metto il pin di controllo interrupt a 0 la procedura funziona (ovviamente non sente l'interrupt), se invece lo lascio collegato al TSOP, funziona l'interrupt ma al momento dello sleep esce subito. Considerate che uso il pwr_down, proprio per verificare, ben sapendo che una volta spento non si riaccende più.
Ho quindi necessità di filtrare in qualche modo l'uscita del TSOP, anche se il 328P non me li dava questi problemi, proprio non capisco.

EDIT: ho scoperto l'inghippo, per caso....., il mio buon DSO QUAD mi ha rilevato una frequenza di 510KHz sullo stesso pin che tira fuori i 38KHz, una cosa stranissima. Se metto il DSO su 10µS vedo 38KHz, se lo metto (è successo per caso) su 0.5nS mi vede i 510KHz poco stabili che avevo riscontrato nella varie prove con altri settaggi.
Questo leva ogni indugio, oscillatore esterno e non se ne parla più. Scusate questo ulteriore intervento, ammesso che qualcuno lo legga....
« Last Edit: August 01, 2011, 02:51:35 am by menniti » Logged


Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 333
Posts: 22973
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Scusate questo ulteriore intervento, ammesso che qualcuno lo legga....

Dubitavi che io non lo leggessi?  smiley-grin
Ti ho aiutato fin dal primo post, mettendo anche in secondo piano la mia famiglia, i figlioli, la moglie, la mia stazione meteo per te  smiley-razz
Scherzo!  smiley-lol smiley-lol
Logged


Deep south of Italy
Offline Offline
Faraday Member
**
Karma: 8
Posts: 2955
The quieter you become, the more you can hear
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

E da dove proviene questa strana frequenza?
non è una armonica, non essendo ne multipla ne sottomultipla della fondamentale.
Logged

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 134
Posts: 9700
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

EDIT: ho scoperto l'inghippo, per caso....., il mio buon DSO QUAD mi ha rilevato una frequenza di 510KHz sullo stesso pin che tira fuori i 38KHz, una cosa stranissima. Se metto il DSO su 10µS vedo 38KHz, se lo metto (è successo per caso) su 0.5nS mi vede i 510KHz poco stabili che avevo riscontrato nella varie prove con altri settaggi.

C'è qualcosa che non quadra, a 0.5ns non puoi vedere 510 kHz, e nemmeno con 5ns, visto che il periodo è 2 us, al limite vedi solo il fronte di salita,  o discesa a seconda di come hai impostato il trigger, seguito da una riga piatta fino alla fine dello schermo.
Per ulteriore controprova ho verificato su un ATmega 328 e i 38 kHz, sistema tramite fast pwm e waweform generator, sono stabili, puliti e senza alcun jitter, tantomeno con una qualunque frequenza sovrapposta.
Visto che la tua applicazione è didattica lascia perdere gli ATTiny e usa un 328, così non ha nessun problema di modi sleep, pin etc.

Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 333
Posts: 22973
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Purtroppo il suo è un limite di spazio perché 2 post sopra ha scritto:
Quote
non posso andare oltre i 7+7 pin, cioè non posso usare il 328, altrimenti avevo già finito da un pezzo.
Logged


Deep south of Italy
Offline Offline
Faraday Member
**
Karma: 8
Posts: 2955
The quieter you become, the more you can hear
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Prova a fare delle misure a circuito spento.
Ricalibra il dso.
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 574
Posts: 12643
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

In ordine sparso:
Dunque, avendo un display da 3" il DSO ed una vista da talpa io, facile che abbia letto male la div, garantisco che in una posizione mi leggeva 510KHz e in quella da 10µS (che sono sicuro di aver visto bene smiley-mr-green) 38KHz. Vi ricordo che questa frequenza da 510KHz su questo pin (ma da sola) l'avevo già vista (e col DSO grande) quando facevo le prove suggerite da Astrobeed per usare il suo metodo sul Tiny, finché non ho trovato la combinazione giusta che evidentemente si "sovrappone" a questi 510KHz, ma non mi chiedete spiegazioni; di sicuro sul 328 non c'era  smiley-eek
Il DSO va benissimo, garantito.
Purtroppo non ho modo di fare nuove prove perché ormai ho abbandonato l'idea, ho realizzato l'oscillatore col 555 e già funziona tutto, ora devo solo procedere con il completamento dell'hardware e la prova finale su millefori, prima di disegnare schema e pcb.
Non ho problemi di spazio (mai detto smiley-grin) ma di natura didattica, devo per forza usare un micro "completamente" diverso dal 328P, la coppia 555-tiny85 mi risolve tutto, uso il pwr_down, il consumo reale non è un problema, ho dovuto fare un passo indietro ma penso che ormai me le abbiate suggerite tutte, rischiando di essere denunciati per abbandono del tetto coniugale  smiley-mr-green
Logged


Pages: 1 ... 10 11 [12]   Go Up
Jump to: