Ho appena realizzato un piccolo PCB con un ATMega128 (che avevo nel cassetto). L'ho fatto con lo scopo di avere principalmente un Arduino con molti I/O.
Dico Arduino perchè questo sistema offre molteplici applicazioni anche grazie alle sue ormai infinite librerie scritte da tecnici ma anche da appassionati.
Detto ciò, ho ricompilato il bootloader per il 128 utilizzando i sorgenti forniti insieme all'IDE. Ho creato una "board" per l'IDE di Arduino che ho aggiunto a quelle supportate e sono riuscito a scaricarci un programmino di prova (il classico led che lampeggia) utilizzando l'IDE.
Fino qui sono soddisfatto, anche della flessibilità del sistema.
Peccato però che ho dovuto scrivere direttamente sui registri del uP in quanto il pinout del 128 è significativemente differente da tutte le piattaforme supportate dall'IDE. Pertanto ho deciso di crearne una nuova. Qui però ho bisogno degli esperti della piattforma SW IDE e, se possibile che mi aiutino, a creare il nuovo file pinout.h (in primis) ma anche quello che nell'IDE sta nella cartella "core", infatti il 128 non ha le stesse feature hw degli altri uP supportati e quindi credo che per usare bene le librerie ci sia bisogno di qualche adattamento.
Ma qui, ripeto, ci vuole un esperto. Detto questo credo che comunque questa cosa sia utile alla comunità per espandersi e per crescere, a prescindere. Se poi può essere utile (ditemelo voi) vi posto anche le foto del PCB con il lavoro fatto.
Perché non hai optato per un Atmega1284? Molto più simile all'Atmega328, per diverse cose. E con tanti input oltre che tanta memoria. L'Atmega128 lo userei solo se dovessi usare RAM esterna (è un microcontrollore che permette di estendere la RAM interna, come l'Atmega2560).
Hai provato poi a verificare che tutte le funzioni "strane" funzionino? Mi spiego, magari con un digitalWrite e/o un analogWrite non hai problemi, ma hai verificato compilando un esempio che usa la SD, o l'Ethernet?
Grazie dei consigli Leo. ho optato per questo micro semplicemente perchè ne ho alcuni, avessi avuto il 2560 o altri avrei fatto la scheda per quelli. Semplice.
Adesso voglio provare a raffinare ulteriormente il processo affiancando ad una nuova PCB, che devo ancora progettare anche un CPLD, la preferisco alle FPGA perchè poi queste vanno programmate e ci vuole la memoria ed altro (a parte quelle in tecnologia flash).
Per le librerie ne ho provate un po e funzionano benone, ho provato anche il fading (che si avvale del PWM). Comunque a prescindere sono soddisfatto del fatto che il sistema lo riconosce e lo programma benone senza problemi e che funziona anche a frequenza doppia. Sta andando infatti a 16MHz anzichè i suoi nativi 8MHz. tanto finch'è gira a temperatura ambiente non c'è problema. Poi è poco più di un esperimento. Se non erro è pin-to-pin compatibile con il Mega103 (anche di questi ne ho alcuni) e sempre se non erro con un fusebit si può richiedere la retrocompatibilità del 128 sul 103.
Adesso quando ho tempo faccio comunque delle prove più serie con delle librerie "standard" che usano anche gli altri dispositivi di questo microcontrollore come i timer e gl interupt. Ma non mi aspetto problemi. Mi faccio il cross-reference dei pin Arduino con quelli della scheda e poi pubblico per chi ne ha voglia di farselo. nel frattempo se ci riesco pubblico due foto.
Enrico.
P.S. Ad averci tempo se ne possono fare di cose oggi a casa con le risorse comuni (o quasi)
enry68:
Sta andando infatti a 16MHz anzichè i suoi nativi 8MHz.
L'Atmega128 ha una frequenza di clock massima proprio di 16 MHz, non è che lo sforzi: tranquillo.
Ad 8 MHz ci va qualunque MCU con l'oscillatore interno.
Si Leo, lo so grazie. Ma sai com'e quando c'e la deformazione professionale ... non ci puoi fare nulla. Visto ceh non ci devo fare il burn-in va bene cosi' "overclocckato"