Gios Inviato 21 Luglio 2010 Condividi Inviato 21 Luglio 2010 Salve a tutti, spero che qualche appassionato possa risolvere il mio problema! Devo creare un circuito che accende dei LED secondo una determinata sequenza; ho programmato il mio PIC16F84A senza troppe difficoltà , ma non appena lo inserisco nello zoccolo del circuito, la tensione tra Vdd e Vss scende a 1,3V e il PIC inizia a riscaldarsi (tenendo presente che senza PIC e alimentando il circuito la tensione tra Vdd e Vss è 5V!!!). A questo punto ho pensato che il problema fosse o nel codice o nel PIC, e per togliermi il dubbio ho provato a inserire un PIC vergine, appena acquistato. Con mia sorpresa ho riscontrato lo stesso identico errore, quindi l'errore non è nè nel PIC nè nel codice, ma bensì nel circuito. Purtroppo ho ricontrollato più volte il circuito e non trovo errori! Allego schema, circuito e codice, con la speranza che qualcuno possa aiutarmi! lol ***************************************CODICE*************************************** PROCESSOR 16F84A ERRORLEVEL -302 RADIX DEC INCLUDE "P16F84A.INC" __CONFIG 3FF1H CBLOCK 0CH COUNT1: 1 ENDC CBLOCK 00H ENDC BSF STATUS, RP0 MOVLW 00H MOVWF TRISB MOVLW 01H MOVWF OPTION_REG BCF STATUS, RP0 MAIN MOVLW 00H MOVWF PORTB CALL DELAY MOVLW 01H MOVWF PORTB CALL DELAY MOVLW 03H MOVWF PORTB CALL DELAY MOVLW 07H MOVWF PORTB CALL DELAY MOVLW 0FH MOVWF PORTB CALL DELAY GOTO MAIN DELAY MOVLW 6 MOVWF TMR0 MOVLW 125 MOVWF COUNT1 DELAY_LOOP MOVF TMR0, W BTFSS STATUS, Z GOTO DELAY_LOOP MOVLW 6 MOVWF TMR0 DECFSZ COUNT1, 1 GOTO DELAY_LOOP RETURN END Link al commento Condividi su altri siti Altre opzioni di condivisione...
zoomx Inviato 22 Luglio 2010 Condividi Inviato 22 Luglio 2010 Non sono un esperto, qui l'esperto è standardbus ma attualmente è impegnato in un importante progetto per la wii. A me sembra che la resistenza di pull up dell'interruttore sia troppo bassa, dovrebbe essere intorno ai 100k. I piedini non utilizzati andrebbero poi collegati o a massa oppure a V+, nel tuo caso credo a massa ma dipende anche dal programma, credo. Vss non dovrebbe andare a massa? E' il piedino che tu hai indicato con GND? Qui http://digilander.libero.it/wgiocoso/si ... azione.gif c'è un circuito analogo a quello che stai facendo tu e in effetti la resistenza è da 10k (anche se sopra dice che dovrebbe essere intorno ai 100k) E' simile al tuo per cui penso che ci sia un errore nella realizzazione del circuito. Non è che l'A Le foto del millefori sono un pò sfocate ma li si fermano le mie competenze. Per quanto riguarda il programma credo che vadano stabilite tutte le porte, anche quelle inutilizzate. Link al commento Condividi su altri siti Altre opzioni di condivisione...
Gios Inviato 22 Luglio 2010 Autore Condividi Inviato 22 Luglio 2010 Il problema della caduta di tensione con surriscaldamento l'ho risolto, avevo invertito sbadatamente Vdd e Vss! :3 Nonostante ciò, anche se il PIC è alimentato con 5V, continua a non funzionare!!! :twisted: Nello schema GND è Vss, esatto! Per quanto riguarda che porte inutilizzate, nel programma sono settate (solo il registro PORTB), mentre il registro PORTA è lasciato di default. Sinceramente non sapevo che andassero a massa le inutilizzate, anche perchè non l'ho visto in nessuno schema, però proverò anche questa e ti farò sapere! Link al commento Condividi su altri siti Altre opzioni di condivisione...
zoomx Inviato 22 Luglio 2010 Condividi Inviato 22 Luglio 2010 Adesso non hai cadute di tensione no? Puoi provare a fare il debug su un emulatore per controllare lo stato delle porte e dove si inchioda il programma. Mettere a massa o VCC le porte inutilizzate è una buona pratica (specialmente se le usi per leggere segnali dall'esterno) ma in questo caso non credo che sia qui il problema. A questo punto cosa intendi per "non funziona"? Ci sono tensioni strane oppure non si accende neanche un led? Be' c'è questa pagina che ti può aiutare http://digilander.libero.it/wgiocoso/si ... ic-asm.htm e qui un esempio in assembler http://digilander.libero.it/wgiocoso/si ... azione.asm Link al commento Condividi su altri siti Altre opzioni di condivisione...
Gios Inviato 22 Luglio 2010 Autore Condividi Inviato 22 Luglio 2010 Per non funziona intendo che non si accende nemmeno un LED, però le saldature sono corrette, perchè se faccio un pò di pressione sul PIC, si illumina qualche LED, ma non secondo la sequenza del programma! Ho pensato ad un'altro possibile "errore", ovvero: l' alimentatore che utilizzo fornisce come corrente massima 130mA, non vorrei che ne servano di più! ???? Inoltre potresti perfavore mandarmi il link di un simulatore, se ne conosci qualcuno? Link al commento Condividi su altri siti Altre opzioni di condivisione...
zoomx Inviato 22 Luglio 2010 Condividi Inviato 22 Luglio 2010 Non è che hai saldature fredde? Mica è normale che facendo pressione sul PIc i led si accendano. Forse il PIC non è inserito bene oppure è al contrario? Hai controllato con il tester che ci sia alimentazione sui piedini e che i piedini della porta b ogni tanto (non so che ritardo hai messo) vadano alti? 130mA dovrebbero andare, il PIc consuma pochissimo e i led dovrebbero fare 20mA l'uno ma qui potrei sbagliare, dipende dai led. Puoi anche provare a modificare il programma in modo che accenda un solo led e lo tenga acceso. Hai un messaggio privato. Link al commento Condividi su altri siti Altre opzioni di condivisione...
Gios Inviato 22 Luglio 2010 Autore Condividi Inviato 22 Luglio 2010 Ho provato ora il simulatore, e il problema non sta nel programma, difatti il registro PORTB si comporta esattamente come voglio! Il PIC è collegato correttamente, ma i piedini non vanno a 5V! PIC guasto? Link al commento Condividi su altri siti Altre opzioni di condivisione...
zoomx Inviato 22 Luglio 2010 Condividi Inviato 22 Luglio 2010 Si, in effetti puoi aver guastato il pic quando lo hai alimentato al contrario. Controlla lo stato delle saldature, anche se dalle foto sembrano buone. Link al commento Condividi su altri siti Altre opzioni di condivisione...
Gios Inviato 22 Luglio 2010 Autore Condividi Inviato 22 Luglio 2010 Aggiornamento: ho provato con PIC nuovi di zecca, stesso identico problema, ovvero non si accende nulla, però il codice al simulatore funziona e come! ???? ???? ???? Link al commento Condividi su altri siti Altre opzioni di condivisione...
zoomx Inviato 22 Luglio 2010 Condividi Inviato 22 Luglio 2010 Allora dovrebbe essere un problema di circuito o a livello di progetto o a livello di realizzazione. Link al commento Condividi su altri siti Altre opzioni di condivisione...
Gios Inviato 23 Luglio 2010 Autore Condividi Inviato 23 Luglio 2010 Ora lo osservo meglio e ci lavoro un'altro pò, appena ho novità ti farò sapere! Comunque grazie mille per le dritte! Link al commento Condividi su altri siti Altre opzioni di condivisione...
Gios Inviato 23 Luglio 2010 Autore Condividi Inviato 23 Luglio 2010 Nuovo (strano!) problema! Ho staccato uno dei due condensatori dal quarzo, e adesso la sequenza funziona (con un ritardo diverso da quello che ho dato io!); la cosa strana è che se premo il bottone di RESET la sequenza non riparte da capo, ma è come se andasse in pausa, perchè non appena rilascio il tasto la sequenza riparte da dove si era interrotta. La cosa ancora più strana è che accade la stessa cosa rimuovendo l'alimentazione e ricollegandola!!! 8| Link al commento Condividi su altri siti Altre opzioni di condivisione...
zoomx Inviato 26 Luglio 2010 Condividi Inviato 26 Luglio 2010 Da quello che scrivi sembra ci sia qualche problema con il clock. Io non sono un esperto di PIC ma forse esiste qualche istruzione per abilitare il clock esterno invece di quello interno. O forse ci sono problemi nel circuito che vanno al di la delle mie capacità . Link al commento Condividi su altri siti Altre opzioni di condivisione...
Messaggi raccomandati
Crea un account o accedi per lasciare un commento
Devi essere un membro per lasciare un commento
Crea un account
Iscriviti per un nuovo account nella nostra community. È facile!
Registra un nuovo accountAccedi
Sei già registrato? Accedi qui.
Accedi Ora