Jump to content
PLC Forum


del_user_276586

PIC16F876A , problemi di programmazione

Recommended Posts

del_user_276586

Buona Sera, a tutti, mi chiamo Marcello e da poco mi sono iscritto nel vostro interessante Forum, che gia mi ha aiutato a risolvere alcuni problemi, quindi Grazie. Vi espongo il mio problema, cerco di programmare il pic 16F876A in questione per far lampeggiare semplicemente un led ,ambiente di sviluppo MPLAB-x , PicKit 3. Dopo la configurazione, eseguo il semplice programma, ed eseguo, la procedura per il file hex, tutto ok, dopo di che scarico il file sull'IPE, e programmo il tutto,direttamente su una board gia preparata nel suo insieme : stabilizzatore 5V, quarzo , condens, led e altre poche cose, inizio il programma e tutto fila liscio , pic programmato con successo. Ma sulla PORTB2, nessun lampeggio. Ho caricato il file hex sul simulatore e funziona perfettamente, anche configurandolo in diversi modi, con diversi led e ritardi diversi sul simulatore funziona, sulla board no, ho controllato i pochi collegamenti, dei componenti, ma non ci sono errori, in uno schema cosi banale , Gentilmente qualcuno conosce questo pic.  Ho programmato altri pic per piccole cose con successo, ma su questo credo io stia sbagliando qualcosa , forse la configurazione, e questo pic nasconde degli  accorgimento che mi sfuggono. Vi chiedo Gentilmente se uno Esperto tra voi che conosce questo pic, puo aiutarmi a riguardo. Grazie In anticipo, Buona Serata.(non ho la conoscenza di un programmatore, ma le basi necessarie per  dilettarmi in piccole cose).

Share this post


Link to post
Share on other sites

max.bocca

Dipende anche dallo stato del PIN 1, dalla parola di stato.

Port B settata correttamente come out, tipi di processore 876A?

L'oscillatore funziona? Quarzo e i due condensatori da 22/33pf verso the?

 

Share this post


Link to post
Share on other sites
del_user_276586

Buona sera max, si lo stato della porta e settata in 0= livello logico low, e  il trisa e  0=out, i due condensatori sono da 22pf, i quarzi sono nuovi provati e funzionano,ne ho parecchi tutti nuovi e poi testati con uno strumento, ho provato anche i 33pf,e i 18pf. Nella main c, ho programmato tutte le sette porte con un delay ogni uno di 100ms, nel simulatore, funzionano alla grande, con un XTAL 20MHz. Non capisco, perche il file hex viene creato, trasferito nell'IPE , risultato finale,programma caricato con successo,  ma nulla il led non va. considera che la programmazione direttamente in board, lo fata solo per la PORTB2,per rendere la cosa piu semplice. Nella configurazione pragma, LVP e allo stato ON, per una programmazione in basso voltaggio, ma ho eseguito anche quella in OFF. Ora che sia il pic guasto? ma e possibile ne ho dieci e tutti si comportano cosi,  il XTAL, impostato HS, e poi provato in XT,cambiando da 4MHZ, a 8MHZ, ma niente. Non ho trovato uno stralcio su questo pic, usato come lampeggiatore led, ma insomma dovrebbe andare,e la cosa piu banale. Nel suo data, ho cercato di capire se qualcosa e in conflitto con l'oscillatore interno,ma nella configurazione l'xc-8 non mi da queste voci per poterlo disabilitare o meno, non riesco a capire, se hai qualche consiglio, sono tutto orecchie. Grazie Buona serata  

Share this post


Link to post
Share on other sites
del_user_276586
 

Buona sera max, si lo stato della porta e settata in 0= livello logico low, e  il trisa e  0=out, i due condensatori sono da 22pf, i quarzi sono nuovi provati e funzionano,ne ho parecchi tutti nuovi e poi testati con uno strumento, ho provato anche i 33pf,e i 18pf. .............................Nel suo data, ho cercato di capire se qualcosa e in conflitto con l'oscillatore interno,ma nella configurazione l'xc-8 non mi da queste voci per poterlo disabilitare o meno, non riesco a capire, se hai qualche consiglio, sono tutto orecchie. Grazie Buona serata  

Buona sera max, si lo stato della porta e settata in 0= livello logico low, e  il trisa e  0=out, i due condensatori sono da 22pf, i quarzi sono nuovi provati e funzionano,ne ho parecchi tutti nuovi e poi testati con uno strumento, ho provato anche i 33pf,e i 18pf. Nella main c, ho programmato tutte le sette porte con un delay ogni uno di 100ms, nel simulatore, funzionano alla grande, con un XTAL 20MHz. Non capisco, perche il file hex viene creato, trasferito nell'IPE , risultato finale,programma caricato con successo,  ma nulla il led non va. considera che la programmazione direttamente in board, lo fata solo per la PORTB2,per rendere la cosa piu semplice. Nella configurazione pragma, LVP e allo stato ON, per una programmazione in basso voltaggio, ma ho eseguito anche quella in OFF. Ora che sia il pic guasto? ma e possibile ne ho dieci e tutti si comportano cosi,  il XTAL, impostato HS, e poi provato in XT,cambiando da 4MHZ, a 8MHZ, ma niente. Non ho trovato uno stralcio su questo pic, usato come lampeggiatore led, ma insomma dovrebbe andare,e la cosa piu banale. Nel suo data, ho cercato di capire se qualcosa e in conflitto con l'oscillatore interno,ma nella configurazione l'xc-8 non mi da queste voci per poterlo disabilitare o meno, non riesco a capire, se hai qualche consiglio, sono tutto orecchie. Grazie Buona serata  Scusami   Max, li stato del pin 1, e tenuto alto con una resistenza di 10K e un diodo,, e forse qui l'errore? 

Share this post


Link to post
Share on other sites
dott.cicala

Non hai configurato correttamente l'oscillatore. Pubblica il codice

Share this post


Link to post
Share on other sites
del_user_276586
 

Non hai configurato correttamente l'oscillatore. Pubblica il codice

Buongiorno Stefano, scusami non capisco  quale codice, se ti riferisci alla configurazione H, al programma  C. Il pic e il 16F876A, o cercato di inserire il programma , ma questi file non sono supportati dal Forum , neppure in PDF,  comunque l'oscillatore e di 20MHZ, ed e il massimo equivalente al data del componente,   configurato in HS,

ho provato con altri quarzi, e condensatori, ovviamente riprogrammando ogni volta, sempre con lo stesso risultato, sul simulatore funziona , sulla board neppure l'ombra di una piccola oscillazione, vista dall'oscilloscopio,sono d'accordo e un problema di oscillatore, ma come risolverlo? forse non ho capito cosa intendi per codice, ti chiedo scusa, se vuoi ti scrivo, come e impostato il  programma. Grazie per avermi risposto, Buona Giornata. 

 

 

Share this post


Link to post
Share on other sites
Livio Orsini
 

scusami non capisco  quale codice,

 

Stefano sicuramente intede il programma che stai usando. Presumo che sia uno degli esempi che ti danno per verificare la funzionalità della tua installazione.

 

ma questi file non sono supportati dal Forum

 

Nella finestra di editin in alto c'è la barra dei comandi, se premi iol tasto con l'icona "<>" ti apparirà una finestra pop up in cui pui incollare il tuo listato; c'è anche un menù a tendina con cui scegliere il formato secondo l'editor di origine.

Dove hai montato il PIC? su di un circuito stampato o su di una bread board?

Se hai usato una bread board può succedere che l'oscillatore non funzioni specialmente se hai ustao un quarzo a frequenza elevata.

Share this post


Link to post
Share on other sites
dott.cicala

Hai l'oscilloscopio? Bene. Se sul pin 10 non vedi nessun segnale significa che l'oscillatore non è configurato correttamente.

 

Questo lo si fa attraverso il settaggio dei così detti fuses, ma senza vedere il codice sorgente è impossibile trovare l'errore

 

Queste righe ci sono?

#pragma config FOSC = XT
#pragma config WDTE = OFF
#pragma config PWRTE = OFF
#pragma config CP = OFF
#define _XTAL_FREQ 20000000

Share this post


Link to post
Share on other sites
BoMax69

Ti mando in mp un file che fa lampeghiare LED porta b0,b1,b2 quarzi 4mhz

Share this post


Link to post
Share on other sites
gabri-z
 

Ti mando in mp un file che fa lampeghiare LED porta b0,b1,b2 quarzi 4mhz

E' così segreto da usare un MP  ?

Share this post


Link to post
Share on other sites
dott.cicala

Segretissimo. :lol:

 

 

Se è un 16F876 copia questo in un file .hex e caricalo

 

:020000000328D3
:10000600831603138601831286010630FB00133024
:10001600FC00AD30FD00FD0B0E28FC0B0E28FB0B83
:100026000E2800000000FF3086000630FB0013306B
:10003600FC00AD30FD00FD0B1E28FC0B1E28FB0B43
:0A0046001E280000000006282728ED
:02400E007A3BFB
:00000001FF

 

Se è un 16F876A copia questo in un file .hex e caricalo

 

:020000000328D3
:10000600831603138601831286010630FB00133024
:10001600FC00AD30FD00FD0B0E28FC0B0E28FB0B83
:100026000E2800000000FF3086000630FB0013306B
:10003600FC00AD30FD00FD0B1E28FC0B1E28FB0B43
:0A0046001E280000000006282728ED
:02400E004A2F37
:00000001FF

Share this post


Link to post
Share on other sites
gabri-z
 

:02400E004A2F37

Contro

 

02400E007A3BFB

soltanto ?

Edited by gabri-z

Share this post


Link to post
Share on other sites
BoMax69

Non ci avevo pensato di copiare il testo.... Volevo allegare il file ma non lo permetteva...

Share this post


Link to post
Share on other sites
Livio Orsini
 

Non ci avevo pensato di copiare il testo.... Volevo allegare il file ma non lo permetteva...

 

ma allora le risposte non leggi!

Ti ho spiegato cosa devi fare, perbacco!

Share this post


Link to post
Share on other sites
del_user_276586
 

 

Stefano sicuramente intede il programma che stai usando. Presumo che sia uno degli esempi che ti danno per verificare la funzionalità della tua installazione.

 

Nella finestra di editin in alto c'è la barra dei comandi, se premi iol tasto con l'icona "<>" ti apparirà una finestra pop up in cui pui incollare il tuo listato; c'è anche un menù a tendina con cui scegliere il formato secondo l'editor di origine.

Dove hai montato il PIC? su di un circuito stampato o su di una bread board?

Se hai usato una bread board può succedere che l'oscillatore non funzioni specialmente se hai ustao un quarzo a frequenza elevata.

Buona sera Professore, scusi il ritardo a rispondere, ci hanno tagliato fuori due giorni  con il servizio internet, dalle mie parti ogni tanto fanno lo switch off, vallo a capire , giusto oggi siamo nuovamente abilitati, Grazie guarderò bene. Buona Serata

Share this post


Link to post
Share on other sites
del_user_276586
 

Buona sera Professore, scusi il ritardo a rispondere, ci hanno tagliato fuori due giorni  con il servizio internet, dalle mie parti ogni tanto fanno lo switch off, vallo a capire , giusto oggi siamo nuovamente abilitati, Grazie guarderò bene. Buona Serata

Il pic e montato su una bread board,  un quarzo da 20MHz, anche se ne ho provati diversi , gli ho configurati sempre tutti  su High Speed, HS , domani cambierò, alcune cose. Grazie del consiglio. Sera 

Share this post


Link to post
Share on other sites
del_user_276586
 

Hai l'oscilloscopio? Bene. Se sul pin 10 non vedi nessun segnale significa che l'oscillatore non è configurato correttamente.

 

Questo lo si fa attraverso il settaggio dei così detti fuses, ma senza vedere il codice sorgente è impossibile trovare l'errore

 

Queste righe ci sono?


#pragma config FOSC = XT
#pragma config WDTE = OFF
#pragma config PWRTE = OFF
#pragma config CP = OFF

#define _XTAL_FREQ 20000000

Ciao Stefano scusa . Vivo in un paesino,dove ogni tanto il gestore che uso ci taglia fuori con il segnale e quindi siamo fuori dal mondo da due giorni, comunque oggi e tornato, il tutto. Allora Stefano, domani faro delle misure sul pin 10, e vediamo, cercherò il codice sorgente e il modo da poterlo trascrivere( sperando di riuscirci) , cosi potrai vedere dove sta il problema. Si le configurazioni pragma, sono come le hai scritte tu, tranne l'oscillatore FOSC, io lo programmato in HS. Ciao Grazie , ti faro sapere.

Share this post


Link to post
Share on other sites
del_user_276586
 
 

Segretissimo. :lol:

 

 

Se è un 16F876 copia questo in un file .hex e caricalo

 

:020000000328D3
:10000600831603138601831286010630FB00133024
:10001600FC00AD30FD00FD0B0E28FC0B0E28FB0B83
:100026000E2800000000FF3086000630FB0013306B
:10003600FC00AD30FD00FD0B1E28FC0B1E28FB0B43
:0A0046001E280000000006282728ED
:02400E007A3BFB
:00000001FF

 

Se è un 16F876A copia questo in un file .hex e caricalo

 

:020000000328D3
:10000600831603138601831286010630FB00133024
:10001600FC00AD30FD00FD0B0E28FC0B0E28FB0B83
:100026000E2800000000FF3086000630FB0013306B
:10003600FC00AD30FD00FD0B1E28FC0B1E28FB0B43
:0A0046001E280000000006282728ED
:02400E004A2F37
:00000001FF

 

Grazie Stefano, il pic e il 16F876A

Share this post


Link to post
Share on other sites
Livio Orsini

marcello fadda per favore non quotare tutto il messaggio, serve solo a rendere la discussione illeggibile!:smilie_nono:

Share this post


Link to post
Share on other sites
del_user_276586
 

Buona sera , Le chiedo scusa , non capisco  come funziona il forum, e sicuramente  sto creando delle incomprensioni cercherò di capire meglio, Grazie . Buona sera

Stefano sicuramente intede il programma che stai usando. Presumo che sia uno degli esempi che ti danno per verificare la funzionalità della tua installazione.

 

Nella finestra di editin in alto c'è la barra dei comandi, se premi iol tasto con l'icona "<>" ti apparirà una finestra pop up in cui pui incollare il tuo listato; c'è anche un menù a tendina con cui scegliere il formato secondo l'editor di origine.

Dove hai montato il PIC? su di un circuito stampato o su di una bread board?

Se hai usato una bread board può succedere che l'oscillatore non funzioni specialmente se hai ustao un quarzo a frequenza elevata.

Buona sera Professore, scusi il ritardo a rispondere, ci hanno tagliato fuori due giorni  con il servizio internet, dalle mie parti ogni tanto fanno lo switch off, vallo a capire , giusto oggi siamo nuovamente abilitati, Grazie guarderò bene. Buona Serata

Share this post


Link to post
Share on other sites
dott.cicala

image.png.c830de93761beea039029abf6aac4da0.png

Se la chiede...dagliela. Anche a me la chiedeva...e glie l'ho data.

 

Non uso nessun IPE

 

Lancio mplabx e apro il mio progetto

Cattura1.thumb.JPG.bfa7cc907312057646a46eba5c49a3b1.JPG

Verifico che sia selezionato il pickit3

Cattura2.JPG.2aafb8e7897594b6521a7cf63aa67df8.JPG

programmo

Cattura2a.thumb.JPG.78da78d4ee3150df1a8bfacee1f0d36d.JPG

 

Cattura3.JPG.5e3e4f191a5cf3e9e957c46771c0d94c.JPG

image.png.26f4b2c32f01c91c8eedfb175d219da6.pngprogrammazione ok

RileggoCattura6.JPG.2c3f34a8ea8c1128aeb381f50803d63d.JPG

lettura ok

Cattura7.JPG.3aa4a9d0e307a61e1de81e32506f9098.JPG

 

Se uso IPE senza alimentazione esterna

image.png.6fc20a7897f9fe1a3558b2859f6f33cf.png

 

Fornisco l'alimentazione esterna 5v e carico il file.hex

image.png.a23730f53e09dcf8c3f6e755a0ba75b2.png

programmo

image.png.69fcc80185f90c03576404c1a706897e.png

Edited by dott.cicala

Share this post


Link to post
Share on other sites
del_user_276586
 

image.png.c830de93761beea039029abf6aac4da0.png

Se la chiede...dagliela. Anche a me la chiedeva...e glie l'ho data.

 

Non uso nessun IPE

 

Lancio mplabx e apro il mio progetto

Cattura1.thumb.JPG.bfa7cc907312057646a46eba5c49a3b1.JPG

Verifico che sia selezionato il pickit3

Cattura2.JPG.2aafb8e7897594b6521a7cf63aa67df8.JPG

programmo

Cattura2a.thumb.JPG.78da78d4ee3150df1a8bfacee1f0d36d.JPG

 

Cattura3.JPG.5e3e4f191a5cf3e9e957c46771c0d94c.JPG

image.png.26f4b2c32f01c91c8eedfb175d219da6.pngprogrammazione ok

RileggoCattura6.JPG.2c3f34a8ea8c1128aeb381f50803d63d.JPG

lettura ok

Cattura7.JPG.3aa4a9d0e307a61e1de81e32506f9098.JPG

 

Se uso IPE senza alimentazione esterna

image.png.6fc20a7897f9fe1a3558b2859f6f33cf.png

 

Fornisco l'alimentazione esterna 5v e carico il file.hex

image.png.a23730f53e09dcf8c3f6e755a0ba75b2.png

programmo

image.png.69fcc80185f90c03576404c1a706897e.png

Buongiorno Stefano, Grazie per la tua disponibilita, Ho controllato per quanto posso capire il tuo programma, e ho seguito la tua prima procedura senza usare l,IPE, svolgo il programma con successo,imposto tutto il resto, includo la tensione a 5V, ma il problema rimane,  voltaggio insufficiente, il voltaggio supplementare lo dato dal,inizio, seguendo uno schema che ho scaricato, che ti allego. (ma che si riferisce al pic16F877A )  quando riesce a scavalcare questo primo ostacolo, (a volte  questa voce sulla tensione  non si presenta), Eccone un altro   : dispositivo ID=(0x0),non coincide, dispositivo richiesto ID=(0xe00),(Target Device ID= (0x0) does not match Expected Device ID=(0xe00), Address:0, Expected Value=120a, Value Detected=0.),Ho visto che nella tua programmazione l,ID del tuo pic e 2000. non entro in merito al significato, ma il mio pic sembra irriconoscibile, su questo aspetto.Non ho visto come hai fatto i collegamenti con la tensione ausiliaria e il pik3, ma credo che non sto sbagliando,nello schema che ti allego, la VDD, e VSS, escono dal Pik3, e vanno poi al pic , la tensione ausiliaria di 5V,non e descritta sullo schema, o meglio ci sono le indicazioni, io la inserisco sugli stessi pin, 19, 20, che poi sono collegati allo stesso pik3. Cerchero di  approfondire.  GRAZIE, per la tua GENTILE disponibilita, non e facile spiegare ad un principiante , anche cose che apparentemente sembrano semplici.Ti Auguro una Buona Giornata, Ciao

LED-blinking-with-PIC-microcontroller-circuit-diagram.gif

Share this post


Link to post
Share on other sites
Livio Orsini

Ti avevo scritto: "marcello fadda per favore non quotare tutto il messaggio, serve solo a rendere la discussione illeggibile!:smilie_nono:"  ma tu proprio te ne freghi!:angry: ora scattano i provvedimenti.

 

 

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...