«

»

nov 19 2013

Core ATmega644P/1284P aggiornato per l’IDE 1.5.4

ATmega644Ho aggiornato il core aggiuntivo per supportare i microcontrollori ATmega644P e ATmega1284P per l’IDE 1.5.4.

Scaricate il pacchetto allegato (cliccate su “Leggi il resto”), decomprimetelo e copiate la cartella /megax4 nella cartella /hardware dell’IDE 1.5.4 e poi riavviate il software. Maggiori dettagli nel file README.txt allegato.

 

Core644 1284 1.5.4-01
Core644 1284 1.5.4-01
core644_1284_1.5.4-01.zip
Versione: 1.5.4-01
188.4 KiB
511 Downloads
Dettagli...

7 comments

Vai al modulo dei commenti

  1. marcoveronelli

    Salve, sono ancora qui a disturbarti :)
    dopo aver giocato con l’attiny e fatto casino coi pin, ho completato il progettino e va una meraviglia :) grazie anche a te :) ora sono passato alle cose “serie” e sto usando come core un 1284p_AU diciamo che sono ancora “in fase progettuale hw e sw.. e su questo ho bisogno se possibile una dritta…
    vorrei usare una libreria che sfrutta i2c e/o SPI per controllare tramite un mcp32s17 un LCD grafico 128×64. e qui viene il problema….. ovvero .. la libreria funziona alla perfezione con atmega328, o il mega2056 ma se provo a compilarla con il 1284 del core inizia a mandarmi errori sulla compilazione, legati alla libreria wire e alla SPI


    Arduino:1.5.5 (Windows 7), Scheda:"ATmega 644/1284, Atmega1284P @ 16MHz w/Arduino as ISP"

    C:\Users\Marco\Google Drive\arduino_sketch\libraries\i2Cspi_glcd\I2C_KS0108C_GLCD.cpp: In function 'uint8_t i2c_read()':
    C:\Users\Marco\Google Drive\arduino_sketch\libraries\i2Cspi_glcd\I2C_KS0108C_GLCD.cpp:140: error: 'Wire' was not declared in this scope
    C:\Users\Marco\Google Drive\arduino_sketch\libraries\i2Cspi_glcd\I2C_KS0108C_GLCD.cpp: In function 'void i2c_write(int)':
    C:\Users\Marco\Google Drive\arduino_sketch\libraries\i2Cspi_glcd\I2C_KS0108C_GLCD.cpp:149: error: 'Wire' was not declared in this scope
    C:\Users\Marco\Google Drive\arduino_sketch\libraries\i2Cspi_glcd\I2C_KS0108C_GLCD.cpp: In member function 'void I2C_KS0108C_GLCD::startSend()':
    C:\Users\Marco\Google Drive\arduino_sketch\libraries\i2Cspi_glcd\I2C_KS0108C_GLCD.cpp:162: error: 'SPI' was not declared in this scope
    C:\Users\Marco\Google Drive\arduino_sketch\libraries\i2Cspi_glcd\I2C_KS0108C_GLCD.cpp:165: error: 'Wire' was not declared in this scope
    C:\Users\Marco\Google Drive\arduino_sketch\libraries\i2Cspi_glcd\I2C_KS0108C_GLCD.cpp: In member function 'void I2C_KS0108C_GLCD::doSend(byte)':
    C:\Users\Marco\Google Drive\arduino_sketch\libraries\i2Cspi_glcd\I2C_KS0108C_GLCD.cpp:173: error: 'SPI' was not declared in this scope
    C:\Users\Marco\Google Drive\arduino_sketch\libraries\i2Cspi_glcd\I2C_KS0108C_GLCD.cpp: In member function 'void I2C_KS0108C_GLCD::endSend()':
    C:\Users\Marco\Google Drive\arduino_sketch\libraries\i2Cspi_glcd\I2C_KS0108C_GLCD.cpp:184: error: 'Wire' was not declared in this scope
    C:\Users\Marco\Google Drive\arduino_sketch\libraries\i2Cspi_glcd\I2C_KS0108C_GLCD.cpp: In member function 'void I2C_KS0108C_GLCD::begin(byte, byte, byte)':
    C:\Users\Marco\Google Drive\arduino_sketch\libraries\i2Cspi_glcd\I2C_KS0108C_GLCD.cpp:202: error: 'SPI' was not declared in this scope
    C:\Users\Marco\Google Drive\arduino_sketch\libraries\i2Cspi_glcd\I2C_KS0108C_GLCD.cpp:204: error: 'Wire' was not declared in this scope
    C:\Users\Marco\Google Drive\arduino_sketch\libraries\i2Cspi_glcd\I2C_KS0108C_GLCD.cpp: In member function 'byte I2C_KS0108C_GLCD::readData()':
    C:\Users\Marco\Google Drive\arduino_sketch\libraries\i2Cspi_glcd\I2C_KS0108C_GLCD.cpp:339: error: 'SPI' was not declared in this scope
    C:\Users\Marco\Google Drive\arduino_sketch\libraries\i2Cspi_glcd\I2C_KS0108C_GLCD.cpp:347: error: 'Wire' was not declared in this scope

  2. marcoveronelli

    sapresti darmi qualche dritta su dove intervenire magari per usare la sua “libreria” std per SPI e I2C? ho trovato una libreria wire deticata a sanguino e + o meno riesco a farla funzionare (nel senso che spariscono gli errori in compilazione, poi che funzioni è un’altra cosa..), a patto che “correggo” tutta la libreria dell’LCD cambiando tutti i read e write con Send e Receive e … il problemone è l’ISP… non trovo nulla… a riguardo….

    per intanto ti ringrazio per la pazienza.. grazie :)
    ciao.
    Marco

  3. Leonardo Miliani

    Non so quale libreria stai utilizzando ma molto probabilmente non è compatibile con l’Atmega1284. Il problema delle MCU non ufficialmente supportate dal core di Arduino è principalmente questo: non tutti gli autori si prendono la briga di supportare chip che non sono presenti sulle schede Arduino.
    Andrebbe guardato il sorgente della lib e vedere come poter intervenire per provare ad inserire il supporto manuale. Non dovrebbe essere difficile visto che comunque sia l’SPI che l’I2C sono presenti in hardware nel 1284

  4. marcoveronelli

    ciao Leonardo, stavo provando a usare le librerie std di Arduino , la “wire.h” e “spi.h”, ma non gli piacevano…allora ho provato a trovare qualcosa sul web dedicato al 1284/644 ma non sono riuscito a trovare niente per la spi.. solo una versione della “wire”… quindi mi son dovuto arrangiare…. (nemmeno cercando library per le sanguino.. stano.. :O!)

    al che ho provato arrangiandomi , e ho fatto un po il giochino del “trova le differenze” (lo so non molto tecnica la cosa <3 :) )……e credo di averla risolta, forse molto "ignorantemente"… o forse nel modo "corretto" non so :)
    ho guardato fondamentalmente le "differenze" delle cartelle, ho notato che tra la cartella megax4 e quelle base dei vari arduino, c'era una differenza, la cartella "library" in cui sono le lib per le EEPROM, SPI, E I2c erano "mancanti" nella cartella megax4, per cui ho detto… prova al massimo non funziona…quindi ho copiato la cartella da :" Arduino\hardware\arduino\avr "dove risiedono per i vari "arduino" all'interno della cartella " Arduino\hardware\megax4\avr ".. provato a compilare…e errori spariti.. :)
    ora , non posso ancora provare l'effettivo "funzionamento con l' hw" in quanto non ho ancora pronto un PCB su cui testarlo (purtroppo x me ho solo le vers SMD) ma a livello di compilazione sembrano essere ok.
    ti terro' aggiornato non appena riesco a provare…con l'hw

  5. Leonardo Miliani

    Ti ringrazio del feedback, mi sarà utile per sistemare il pacchetto :-)

  6. atsanna

    Salve.
    Ho seguito le istruzioni ma al momento di scrivere il bootloader su un ATMega 1284p PU con cristallo16MHz utilizzando un Arduino Uno as ISP, appare il seguente messaggio di errore:

    Arduino: 1.5.4 (Windows NT (unknown)), Board: “ATmega 644/1284, Atmega1284P @ 16MHz w/Optiboot”

    ***failed;
    avrdude: verification error, first mismatch at byte 0×0000
    0xff != 0x3f
    avrdude: verification error; content mismatch

    Ho provato anche ad utilizzare anche l’IDE 1.5.6 ma ottengo lo stesso errore.

    Ho anche provato a cambiare le righe

    atmegax4.menu.cpu.1284_16b.bootloader.unlock_bits=0xFF
    atmegax4.menu.cpu.1284_16b.bootloader.lock_bits=0xFF
    con
    atmegax4.menu.cpu.1284_16b.bootloader.unlock_bits=0x3F
    atmegax4.menu.cpu.1284_16b.bootloader.lock_bits=0x3F

    In tal caso la scrittura del bootloader viene portata a termine con successo, ma se cerco di caricare lo sketch Blink usando un convertitore usb to ttl, ottengo un nuovo messaggio di errore al termine della compilazione:

    Error while uploading: missing ‘upload.params.quiet’ configuration parameter

    Ho fatto la prova con l’IDE 1.5.6 e ottengo lo stesso messaggio, ma in italiano.

    Come descritto nel file readme allegato al pacchetto, ho messo il filtro RC sul pin RX utilizzando un resistore 10K in serie alla linea RX ed un condensatore 100nF al gnd come da schema ma senza risolvere il problema.

    Che cosa sto sbagliando?

    Grazie.
    Antonio

  7. Leonardo Miliani

    @atasanna:
    ho aggiornato il package per l’IDE 1.5.6R2 correggendo anche il bug che impediva di fare l’upload via bootloader. Trovi il pacchetto aggiornato qui.

Lascia un Commento