REPOST INFO SU PIC

May 25, 2006 9 Replies

Chiedo scusa se in qualche modo ripropongo la stessa domanda ma sono praticamente fermo.


-------------------------------------------------------------------------------------------- Possiedo un circuito di automazione rele' basato su un PIC 16f876A ma ho il problema che il quarzo agli ingressi clock (pin 9 e 10) stranamente non oscilla.Tutto il circuito sembra funzionare solo se al pin 9 del PIC faccio toccare il puntale del tester (a volte anche spento) con la mano che tocca il filo, come se facesse da antenna.Sono riuscito a procurarmi un oscilloscopio e ho chiaramente visto che non c'e' traccia di forma d'onda all'ingresso del PIC. Una curiosita', ma se io programmo ( usando ic-prog) il sorgente che originariamente era per un PIC 16F876 (cosi' diceva il circuito originale) su un 16F876A, potrebbero esserci dei problemi? Un tecnico mi ha assicurato che causa fine produzione gli 876 sono stati sostituiti con gli 876A garantendo la compatibilita' completa.E' vero, oppure all'atto della programmazione potrebbe essere che in qualche modo gli ingressi del clock non rispondano bene?Dico questo perche' ho cambiato ben 2 quarzi dello stesso valore e addirittura ho aquistato un'altro PIC vergine (e poi riprogrammato)per paura di aver in qualche modo fot..to il primo PIC.I condensatori che solitamente vanno a massa attraverso il quarzo sono da 15pf mentre solitamente da quanto ho visto in giro, dovrebbero essere di 22pf (non ho provato a cambiarli) E' possibile sostituire il quarzo con un osillatore esterno? Ho letto che sarebbe possibile tramite una resistenza da 4.7K su VDD e un condensatore da 20pf a massa generando cosi' una freq da 1mhz. Se optassi per questa soluzione la programmazione del sorgente dovrebbe essere effettuata con l'opzione OSCILLATORE di ic-prog su RC? (attualmente l'ho settata su XT e il quarzo e' da 8Mhz) Ciao e grazie per un eventuale chiarimento


paperetto ha scritto:

--------------------------------------------------------------------------------------------

Forse non è il tuo caso, ma un pò di tempo fa mi era successa la stessa cosa su un 16F84. L'errore era nei parametri di programmazione. Ho tolto il watchdog e il tutto ha ricominciato a funzionare.

Giuliano

questo articolo e` stato inviato via web dal servizio gratuito http://www.newsland.it/news segnala gli abusi ad abuse@newsland.it

Non vorrei sbagliarmi ma mi sembra che se usi un quarzo superiore ai 4MHz devi settare IC-prog con "HS" e non "XT" ! Se anche così non dovesse andare prova a sostituire i condensatori, pensa io uso 2 condensatori da 47p con un quarzo da 4MHz.

Riguardo la compatibilità tra F876 e F876A ti posso dire che io ho un "vecchio" F876 e se provo a programmarlo settando F876A su ic-prog non va! A livello firmware dovrebbe essere completamente compatibile, a meno da 876 a

876A. Non ho capito bene le differenze tra i 2 ma mi sembra che 876A abbia in più l'indirizzamento indiretto.

Fammi sapere, ciao

Ragazzi per ora vi ringrazio infinitamente per i preziosi consigli che domani provero' a mettere in pratica. Siccome ho capito il senso ma non la pratica, come tolgo il watchdog? Per completezza (ri)aggiungo il listato completo '****************************************** '* Scheda per la gestione di 8 ingressi '* e di 8 uscite con 2 ingressi a/d. '* Questo progetto utilizza un '* PIC 16F876A a 8 Mhz. '****************************************** DEFINE OSC 8 DEFINE ADC_BITS 8 DEFINE ADC_CLOCK 3 DEFINE ADC_SAMPLEUS 50 SYMBOL RXPC=PORTA.2 SYMBOL TXPC=PORTA.3 SYMBOL ING1=PORTB.0 SYMBOL ING2=PORTB.1 SYMBOL ING3=PORTB.2 SYMBOL ING4=PORTB.3 SYMBOL ING5=PORTB.4 SYMBOL ING6=PORTB.5 SYMBOL ING7=PORTB.6 SYMBOL ING8=PORTB.7 SYMBOL RELE1=PORTC.0 SYMBOL RELE2=PORTC.1 SYMBOL RELE3=PORTC.2 SYMBOL RELE4=PORTC.3 SYMBOL RELE5=PORTC.4 SYMBOL RELE6=PORTC.5 SYMBOL RELE7=PORTC.6 SYMBOL RELE8=PORTC.7 SYMBOL RELES=PORTC SYMBOL INPUTS=PORTB DATO VAR BYTE Dato1 VAR BYTE Dato2 VAR BYTE Dato3 VAR WORD IndiEEP VAR BYTE 'Disabilita i convertitori A/D ADCON0=0 ADCON1=7 OPTION_REG=%00000000 'Imposta i PIN del micro come in o out Input RXPC Output TXPC Input ING1 Input ING2 Input ING3 Input ING4 Input ING5 Input ING6 Input ING7 Input ING8 Output RELE1 Output RELE2 Output RELE3 Output RELE4 Output RELE5 Output RELE6 Output RELE7 Output RELE8 'Pone bassi i PIN della porta C del MICRO Low RELE1 Low RELE2 Low RELE3 Low RELE4 Low RELE5 Low RELE6 Low RELE7 Low RELE8 'Legge l'ultimo stato dalla porta C IndiEEP=0 GoSub READ_CODE 'Imposta la porta C PORTC=DATO MAIN: 'Attende i caratteri "**" di inizio 'protocollo e salva i successivi due 'caratteri in Dato1 e Dato2 SerIn RXPC,2,["**"],Dato1,Dato2 'Se l'ultimo carattere è diverso da "#" '(chiusura protocollo) ripeti operazione IF Dato2"#" Then MAIN 'Imposta la porta C come Dato1 PORTC=Dato1

'Salva nella EEPROM l'ultimo valore IndiEEP=0 DATO=Dato1 GoSub WRITE_CODE

'Legge i pin della porta B Dato1=PORTB

'Legge il valore del canale ADC 0 adcin 0, Dato2 Pause 10

'Legge il valore del canale ADC 1 adcin 1,Dato3 Pause 10

'Invia sulla porta seriale i dati letti SerOut TXPC,2,[Dato1,Dato2,Dato3]

'Ripeti ciclo GoTo MAIN

'Legge l'ultimo stato della porta C READ_CODE: Read IndiEEP,DATO Return

'Scrive l'ultimo dato della porta C WRITE_CODE: Write IndiEEP,Dato Return

paperetto ha scritto:

Non è un problema di programma, ma un settaggio in fase di programmazione. Nel mio caso, per il 16F84, la casella si chiama WDT (Watch Dog Timer).

Giuliano

questo articolo e` stato inviato via web dal servizio gratuito http://www.newsland.it/news segnala gli abusi ad abuse@newsland.it

Ottimo grazie :-)

"JUL" ha scritto nel messaggio news:e55761$u92$ snipped-for-privacy@news.newsland.it...

secondo me non è questione di WDT in questo caso... se l'oscillatore è impostato come XTAL ed in ingresso non c'è segnale... significa che manca il clock

- che quarzo hai? quanti MHz? provato a sostituirlo?

- hai messo i 2 ceramici tra i pin del quarzo e massa? da quanti pico?

- che versione del micro hai? la versione pic16f876A-04 al massimo gira a

4MHz NON a 20MHz...

- a che tensione lavori? sotto i +5V NON puoi spingere fino a 20MHz, c'è una curva che ti dice il valore massimo raggiungibile...

il fatto che toccando il tutto sembri andare è dovuto al fatto che tu fai da antenna e riesci in qualche modo a "simulare" lontanamente il clock che ora è assente per qualche motivo... io comincerei a sostituire il quarzo e/o i conensatori di oscillazione

ciao!

guarda quando hai detto che sotto i 5V non dovrebbe andare mi hai messo un dubbio, infatti la VPP o MCLR effettivamente sono di 4,97/98 ma mai a 5V, potrebbe essere un problema? Grazie

"ice" ha scritto nel messaggio news:4476d5cb$0$18299$ snipped-for-privacy@reader1.news.tin.it...

IO TI AMOOOOOOOOOOOOOO Ho programmato in HS e tutto adesso funzionaaaaaaaa Sono circa due settimane che gli sto' dietro e bastava solo impostare questa opzione su ic-prog. Ma che cavolo pero, quelli che mi hanno venduto il circuito potevano anche dirmelo pero'. Ciao e viva il NEWSGROUP :-)))) "Roby" ha scritto nel messaggio news:44761202$0$36940$ snipped-for-privacy@reader3.news.tin.it...

ho visto che hai risolto... cmq sotto i +5V funziona ma solo a frequenza minore di 20MHz poi 4,89V sono nella tolleranza quanidi no problem

secondo me a questo punto il tuo oscillatore era impostato XT mentre tu lavori con un quarza maggiore di 4MHz... per cui ci va XS

ciao!

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required