Vai al contenuto
PLC Forum


Programmazione Microcontrollori


rudy2209

Messaggi consigliati

Salve a tutti .

Ho acquistato un programmatore usato della Elnec , il modello BeeProg con attualmente circa 70.000 componenti programmabili in libreria ( aggiornabili ogni mese ).

Ora con la programmazione dei vari tipi di memorie non trovo nessuna difficoltà , invece per quanto riguarda i vari tipi di microcontrollori ( PIC , ST , NEC , MOTOROLA , TEXAS , etc etc ) non riesco a programmarli .

Premetto che io non sviluppo programmi , mi limito a copiare file di programmazione da memorie e microcontrollori efficienti per poi programmare memorie e microcontrollori nuovi e vuoti .

Dopo aver letto il microcontrollore mi salvo il file in una cartella , poi metto sul programmatore il microcontrollore nuovo da programmare , carico il file salvato nel buffer e premo program .

In alcuni microcontrollori mi dà un errore dopo il verify , su altri mi dà OK ma poi mettendo il microcontrollore programmato da me sulla scheda non funziona .

Ho visto che prima della programmazione il programma della Elnec abbinato al programmatore mi dà delle opzioni da selezione per la programmazione .

Ora mi chiedo , come faccio a risalire alle opzioni di programmazione usate nel microcontrollore originale per poi settarle sul mio programmatore ,in modo di avere dopo la programmazione del mio nuovo microntrollore una copia identica e funzionante del microcontrollore originale .

Grazie

Cordiali saluti

Rodolfo

Modificato: da rudy2209
Link al commento
Condividi su altri siti


Ho bisogno di programmare i su citati microcontrollori nella riparazione di schede elettroniche varie ( cancelli , caldaie , etc etc ) colpite da fulmini .

Link al commento
Condividi su altri siti

Molti programmatori se leggono un uP protetto caricano il file di FFFF e poi lo riscrivono pari/pari senza dire nulla, sei sicuro che non siano SW protetti da lettura?

Pre quanto riguarda la verifica vale lo stesso discorso, se i fusibili sono impostati in programma protetto la verifica non potrà andare a buon fine.

Link al commento
Condividi su altri siti

Ciao e grazie per la risposta .

Una info , ma quando un microcontrollore è protetto in lettura , dopo aver fatto il read con il programmatore , nel buffer non dovrebbero comparire o tutti FFFF o tutti 0000 .Chiedo questo perchè io trovo nel buffer stringhe alfanumeriche esadecimali tipo 2F62 e non tutti FFFF o tutti 0000 .

Grazie

Link al commento
Condividi su altri siti

Ho notato che dopo una programmazione con esito positivo dal programmatore , ma poi non funzionante sulla scheda uno dei due cheksum non corrispondevano con i due checsum fatti nella lettura del microcontrolore originale .

Quindi per stabilire se una programmazione è andata a buon fine basta che coincidano i vari cheksum ricavati dalla lettura del microcontrollore originale con quelli ricavati dal nuovo microcontrollore dopo la programmazione ?

Link al commento
Condividi su altri siti

Se devi fare una copia identica i checksum devono essere identici.

Se hai il medesimo checksum è certo al 99% che i due files sono identici. Può capitare la sfortuna di avere 2 errori complementari.

Link al commento
Condividi su altri siti

Grazie per la risposta .

Scusa la mia ignoranza in materia ma a causa del fatto che oggi tutte le varie schede usate in apparecchiature domestiche sono fatte con componenti programmabili sono stato costretto a comprarmi un programmatore ed a cimentarmi in questa selva oscura .

Quando i due cecksum sono identici vuol dire che le varie stringhe esadecimali sono identiche come valore e posizione nella locazione della memoria ?

Dalla lettura di un buffer di un microcontrollore , per esempio una pic , è possibile risalire alle opzioni di programmazione da impostare per un esito positivo della programmazione ( id location , configuration bit , etc etc ) ?

Link al commento
Condividi su altri siti

è possibile risalire alle opzioni di programmazione da impostare per un esito positivo della programmazione ( id location , configuration bit , etc etc ) ?

Più che per l'esito positivo della programmazione, le opzioni di cui parli (i cosiddetti fuses) sono indispensabili per il funzionamento corretto del micro. Tra questi c'è la configurazione dell'oscillatore, che se non è coerente al circuito in questione potrebbe non funzionare correttamente.

Non conosco il tuo programmatore, ma mi rimane difficile pensare che un programmatore non riesca a leggere i fuses (sempre che il dispositivo non sia protetto).

Casomai è possibile che il software del programmatore preveda due manovre diverse e distinte, una per leggere il contenuto della flash e una per leggere i fuses o altre opzioni della CPU.

Link al commento
Condividi su altri siti

non è molto chiaro se legge i fuses dal chip durante l'operazione di read... l'unico modo per accertarsene è quella di controllare i fuses sul software e vedere se dopo la lettura sono cambiati. Se li trovi cambiati è evidente che li ha letti dal chip.

Per far si che vengano programmati invece, devi andare in Device->Device Option->Operation Option, qui ci sono i check box per scegliere se programmare l'eeprom e i configuration bit, che a quanto pare di default non sono selezionati. Sempre in questa finestra ci sono altre opzioni che ti conviene abilitare, come la cancellazione prima della programmazione ad esempio (erase before programming), non è salutare scrivere una flash senza prima cancellarla.

Link al commento
Condividi su altri siti

Scusa come faccio a controllare i fuses sul software prima della lettura del microcontrollore per vedere se poi sono cambiati ?

Le varie opzioni per la programmazione agiscono tutte sui fuses ?

Mi pare che questo software della Elnec non dà nessuna opzione in fase di lettura , Che tu sappia esistono programmatori che permettono di vedere e selezionare le varie opzioni di configurazione in fase di lettura per poi settarle nella fase di programmazione in modo che il mio nuovo microcontrollore è una copia identica e funzionante come l'originale ?

Link al commento
Condividi su altri siti

Scusa come faccio a controllare i fuses sul software prima della lettura del microcontrollore per vedere se poi sono cambiati ?

Quì li chiamano "configuration Bits", puoi aprire la finestra dei bit di configurazione tramite un pulsante nella barra degli strumenti (se non hai modificato la disposizione dei pulsanti è sotto quello con scritto "select"), oppure nel riquadro "device" in basso a destra, dove trovi scritto: "To customize device use menu View/Edit Config. bits and ID locations <Alt+s>"... puoi cliccare direttamente sulla scritta che è una specie di link oppure usare la scorciatoia Alt+s, come suggerito nel link stesso.

Ovviamente prima devi selezionare il dispositivo.

Link al commento
Condividi su altri siti

Ok

Ora devo leggere e programmare una PIC16LF747 ( TQFP44 ) , dopo aver letto la pic originale e inserita la nuova pic vuota sullo zoccolo del programmatore , clicco in basso su customize device use menu . A questo punto come faccio a sapere come vanno impostati i vari campi tipo user id locations e tutti gli altri riportati più sotto nella finestra affinche la nuova pic è identica e funzionante come quella originale ?

Non è che per caso ci vuole un programma apposito ( in questo caso della microchip ) che analizzando la lettura del buffer si ricava le varie impostazioni da settare in seguito nella fase di programmazione della nuova pic vuota ?

Grazie

Link al commento
Condividi su altri siti

No... forse non mi sono spiegato bene. Guarda le impostazioni prima della lettura e dopo la lettura vedi se sono diverse. Se sono diverse è ovvio che sono state lette dal micro. A questo punto non le devi cambiare, devi solo settare il programma affinché le scriva (vedi messaggio precedente

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...