Vai al contenuto
PLC Forum


Leggere scrivere 8051


3kek1

Messaggi consigliati

Ciao, ho un paio di schede che vorrei riparare, a bordo hanno diversi microcontrollori che si basano pero' sulla compatibilita' con 8051 e hanno una UART quindi che vorrei usare per leggere scrivere il contenuto dei chip. Ho purtroppo perso una valanga di tempo a cercare in rete e sembra che ci sia in giro un sadismo nel non proporre una semplice utilita' per fare questo, ho provato diversi software ma non sembrano fare al caso mio, Flash Magic scrive soltanto, FLip di Atmel non riesco a farlo comunicare colla MCU, che ho collegato coi pin GND, TxD, RxD e VCC, usando un programmatore CH341A impostato come USB/SER (aiuto non funzionano i caratteri simboli che cavolo e successo. AAARGH) a 3,3v. Penso che uno che vuol imparare a fare queste cose a costo 0 debba solo suicidarsi...:wallbash:

Qualche aiuto?

Link al commento
Condividi su altri siti


Non è mica detto che tu possa leggere e scrivere tramite la UART, non tutti lo facevano.

Prova a specificare esattamente il modello di micro (alcuni erano OTP, quindi programmi e fine, senza flash, altri con memoria esterna, ecc).

Io ultimamente usavo dei SoIC della ST con memorie a bordo (uPSD) che si programmavano tramite JTAG.

Poi, se sono stati protetti in lettura, ovviamente non puoi leggere un tubo...

Link al commento
Condividi su altri siti

Lo 8051, ricordi di (quasi) gioventù. Ho ancora scatole di floppies con applicazioni di questo micro.

 

Purtroppo io sono anche più pessimista di Ctec sulla possibilità di leggere e scrivere micro basati su questa serie, a meno che abbiano una EPROM esterna.

Link al commento
Condividi su altri siti

Sulla capacita' dell'UART di agire sulla flash avevo letto temoo fa di si, mi rinfresco la memoria appena sono sul pc e faccio sapere, e' chiaro che e' la prima che ho verificato. Sul fatto che sia protetta ho dei dubbi in quanto si tratta di schede di centrali d'allarme e anche se qui sto cercando di sistemare un modulo GSM, sulla centrale la flash esterna e'completamente leggibile, con dentro software e programmazione del Tecnico+utente. I micro in questione adesso sono sul tablet vado a memoria, uno e' P87C528, l'altro e' Atmel 89C51RD2, non sono sicuro quest'ultimo.

Link al commento
Condividi su altri siti

Precisazione del modello del uC n.2: AT89C51RD2, dal suo datasheet, pag. 95, paragrafo "Flash Programming and Erasure", dice :

"There are three methods of programming the Flash memory:
1. The on-chip ISP bootloader may be invoked which will use low level routines to
program the pages. The interface used for serial downloading of Flash is the
UART."

Link al commento
Condividi su altri siti

Se è presente in firmware il boot loader da uart allora la cosa è fattibile. 

Poi rimangono le eventuali problematiche di psw.

Link al commento
Condividi su altri siti

Il P87C52xx della Philips/NXP erano ROM o OTP, si programmavano con quasi tutti i programmatori di EPROM (paralleli) e aveva la possibilità di bloccare l'accesso al software. Quindi divenivano illeggibili (e incancellabili).

Lo AT89C51RD2 ha invece la flash, quindi il bootloader. Esistono in rete diverse guide e circuitini per la programmazione. Per entrare in Program Mode dovevi abbassare delle linee al reset. Qui per esempio trovi un guida. Può comunque essere programmato con un programmatore parallelo (se non bloccato).

Mi viene da pensare che se sono montati su centraline di sicurezza, sono sicuramente protetti, altrimenti che sicurezza è?

 

PS: Occhio che se il software originale era in C, non è che sia così facilmente ricostruibile dall'assembler...

 

Link al commento
Condividi su altri siti

Precisazione: il modello esatto del micro n.1 e' P87C528EFBB, da datasheet risulta dotato di eeprom, diversi invece altri sottomodelli dove nella tabella risultano senza Rom o con ROM. Pero' non mi e' molto chiara come e' composta la memoria in una MCU, ovvero sembra che in alcuni ci siano 3 tipi, Flash, eeprom e RAM. Se mi fai capire. Altre precisazioni, cos'e' del testo che ho ripirtato dal datasheet che non capisco? A me sembra dire che si puo' programmare via UART, ma non so in che modo, non ho molto tempo e voglia di costruire circuiti anche perche' sono lento a farli. Per il fatto della protezione ho gia detto: tentar non nuoce, perche' se non hanno protetto la mem. flash della centrale dove risiede il software e pure i codici di comando, non vedo perche' dovrebbero preoccuparsi di un modulo GSM. Quanto al fatto del POST scriptum non so cosa mi vuoi dire. Ricordo che io devo riprarla non devo mica riprogrammarla, non sono un ingegnere.

Link al commento
Condividi su altri siti

Parto dagli Atmel, che ho usato raramente e quindi conosco poco. Nel caso poi, io usavo sempre il programmatore parallelo, dove si infilava l'integrato in uno zoccolo ZIF (Zero Insertion Force), lo si programmava/leggeva, poi lo si rimetteva sulla scheda (purchè fosse zoccolato, ovviamente...). Pertanto non ho esperienza per dirti esattamente l'uso e le possibilità del bootloader. Spero che qualcuno possa aiutarti in merito.

Per lo P87C528, non ha assolutamente bootloader a bordo, l'unico sistema di programmazione/lettura è usare un programmatore parallelo (come descritto per Atmel).

 

Per il discorso della memoria, è un po' complicato, data la struttura molto particolare degli 8051 (che a me comunque piaceva).

Il programma sta in area programma (64KB di indirizzamento), e poteva non esserci interna (dispositivi ROMless), essere cancellabile con ultravioletti (EPROM, come il P87xx, si notano per avere una finestra in vetro/quarzo) essere ROM mascherata dalla fabbrica, oppure OPT (One Time Programmable), cioè la programmi ma non la puoi cancellare. Più recentemente, diciamo dal 2000 in poi, sono entrate in uso versioni con area programma in FLASH, cancellabile e riscrivibile più volte. Solo questi ultimi dispositivi avevano eventualmente un bootloader che consentisse la programmazione e/o cancellazione/lettura da montato.

Di base, poi, gli 8051 esistevano con 128 o 256 bytes di scratchpad, o area di lavoro. Questa è in un'area di indirizzamento a parte.

Poi nacquero dei dispositivi che avevano a bordo anche l'area dati (64KB di indirizzamento) che fecero nascere quindi dispositivi con RAM espansa (alcuni anche sotto batteria per mantenere i dati), e EEPROM, dove salvare dati speciali come configurazioni (generalmente non si arrivava a 1kB). Occhio che la EEPROM non poteva salvare programmi ma solo dati.

 

Per il mio PS, devo avere frainteso.

Dunque immagino che tu voglia fare una copia dei processori. Non capire come era strutturato il programma. Allora lascia fare il mio commento.

Però se li vuoi copiare, ed essendo il P87 programmabile solo via parallela, dovresti avere un programmatore di EPROM. Si trovano ormai sotto i 100€ che fanno di tutto.

A quel punto proverai a leggere, e se ci riesci potrai riprogrammare.

 

 

Link al commento
Condividi su altri siti

Grazie delle spiegazioni, in effetti non avevo notato la doppia E mancante dove dice Eprom, mi meraviglia pero' che queste siano cancellabili da una luce nonostante il contenitore sia QFP senza finestra. Si volevo copiare da una scheda sana, dovevo dirlo, a una non sana, valido per entrambe le riparazioni. Se devo comprare un programmatore lascio perdere anche perche' speravo di non dissaldare il chip. la scheda GSM ha un valore di circa 350 euro e quindi posso insistere a vedere se trovo sto benedetto software adatto alla programmazione con UART, mentre l'altro ha un valore minimo, era piu come esercitazione. CIao

 

PS: vedo ora il commento di Livio, non so cosa siano le problematiche psw, forse ti riferisci alla protezione? Se si la prima in ordine e' trovare un software e riuscire a usarlo. HO visto un sito con una serie di software di nome "KEIL" dove dice pero' che nel codice inserisce dei watchdog o breakpoint, non ricordo bene i termini, a scopo monitoraggio e didattico, ma mi sa che e' una complicanza che non voglio aggiungere.

Link al commento
Condividi su altri siti

  • 5 months later...

Non sono un maestrino da over 1000 post, di quelli che oltre a insegnare, spesso non vedono l'ora di fare le correzioni agli altri, per dimostrarsi veri maestri al di sopra dei nuovi arrivati che, in quanto nuovi arrivati, vengono sempre considerati inesperti / sciocchi ...  tuttavia, l'8051 non e' noto solo a pochi eletti ma molti ci sono capitati dentro, ricordo d'aver progettato un paio di schede con 8051 un ventina d'anni fa.

 

Gli 8051 sono ad architettura "Harvard", dove memoria programma e dati stanno su memorie separate, e almeno nei primi 8051 classici, si collegavano sullo stesso bus una memoria non volatile per il programma e spesso una ram statica (8051 non ha cicli di refresh per ram dinamiche), quindi il programma veniva letto da bus parallelo da una qualunque flash/eeprom montata spesso su plcc, su zoccolo, pertanto forse non trovi indicazioni sulla programmazione degli 8051 perche, i primi 8051, non si programmano. Si programma la flash / eeprom con un programmatore eeprom standard paralello. In genere, poi, si implementava un piccolo bootloader seriale con cui era possibile riprogrammare una area della stessa flash/eeprom esterna senza toglierla da zoccolo o dissaldarla.

 

Ora gli eredi degli 8051 (hanno diverse sigle ma il core / instruction set e' sempre 8051) sono prodotti da molte "marche", Dallas Atmel etc, certamente con memoria flash interna e svariate periferiche.

 

Ad esempio i Dallas DS89C420 etc hanno memoria programma (flash) interna programmabile via seriale, hanno dunque un bootloader gia pre-programmato. Dettagli li trovi nel datasheet.

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...