ProMicro (mega32U4)

Processing/Wiring (illetve C) nyelvű programozási fogások, tippek. (AVR-Duino, Arduino, EthDuino, Diecimila, Severino, Nano, LilyPad)
Avatar
SzLacus
Tranzisztorgyógyász
Hozzászólások: 175
Csatlakozott: 2012. május 20. vasárnap, 6:00

ProMicro (mega32U4)

Hozzászólás Szerző: SzLacus »

Első ismerkedésem zajlik egy proMicro panellel, amin Atmega32U4 lakik. Felismeri a Windows, telepíti a drivert, az Arduino beállítva Micro panelre, és a megfelelő soros portra. Eddig akár jó is lehet, lássunk egy sima villogást a leden.
Na itt jön a probléma, mert a fordítás a következő hibákat sorolja fel.
  • USBCore.cpp:In function 'void Recv(volatile u8*, u8)'
    USBCore.cpp:129: error: 'RXLED1' was not declared in this scope
    USBCore.cpp:In function 'u8 Recv8()'
    USBCore.cpp:135: error: 'RXLED1' was not declared in this scope
    USBCore.cpp:In function 'int USB_Send(u8, const void*, int)'
    USBCore.cpp:315: error: 'TXLED1' was not declared in this scope
    USBCore.cpp:In function 'void __vector_10()'
    USBCore.cpp:620: error: 'TXLED0' was not declared in this scope
    USBCore.cpp:622: error: 'RXLED0' was not declared in this scope
    USBCore.cpp:In member function 'void USBDevice_::attach()'
    USBCore.cpp:666: error: 'TX_RX_LED_INIT' was not declared in this scope
Ha Atmega 328-at tartalmazó panelt állítok be, akkor a blink hibátlanul lefordul, vagyis a panel választásnál borul meg a dolog.
Az a gyanúm, hogy valami a setup-ból hiányzik, valamit oda kéne beírnom, amiből tudná a fordító a hiányolt dolgokat amik a chip USB részének működéséhez kellenek. De azt a panel definició tartalmazhatná, hiszen mindegyiken ugyan ott van például az rx meg a tx led, amit hiányol.
Próbáltam találni micro, vagy Leonardo specifikus arduino minta kódot, hogy lássam mi kell a setupba beleírni, de semmi eredmény.
Van valakinek tapasztalata?
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Re: ProMicro (mega32U4)

Hozzászólás Szerző: Robert »

Melyik fordítót használod?
A sima blink az 1.0.5 alatt Leonardora tesztelve, és OK.
Avatar
SzLacus
Tranzisztorgyógyász
Hozzászólások: 175
Csatlakozott: 2012. május 20. vasárnap, 6:00

Re: ProMicro (mega32U4)

Hozzászólás Szerző: SzLacus »

1.05-öt használok, de próbáltam a studio alá telepített változatot is, az is ezt a hiba üzenetet adja a fordítás során.
Blink példa program a gyári mintákból való, de a saját magam változata is pont ezt a hibát adja.
A windows leonardo-nak ismeri fel a panelt, de akár leonardo, akár micro beállítással próbálom a hiba megjön.
A studio és az Arduino környezet között a hibaüzenet szövegében van útvonal megjelenítési különbség. Az arduino teljes útvonalat ír, a studio meg nem.
  • F:\Arduino\hardware\arduino\cores\arduino\USBCore.cpp: In function 'void Recv(volatile u8*, u8)':
    F:\Arduino\hardware\arduino\cores\arduino\USBCore.cpp:129: error: 'RXLED1' was not declared in this scope
    F:\Arduino\hardware\arduino\cores\arduino\USBCore.cpp: In function 'u8 Recv8()':
    F:\Arduino\hardware\arduino\cores\arduino\USBCore.cpp:135: error: 'RXLED1' was not declared in this scope
    F:\Arduino\hardware\arduino\cores\arduino\USBCore.cpp: In function 'int USB_Send(u8, const void*, int)':
    F:\Arduino\hardware\arduino\cores\arduino\USBCore.cpp:315: error: 'TXLED1' was not declared in this scope
    F:\Arduino\hardware\arduino\cores\arduino\USBCore.cpp: In function 'void __vector_10()':
    F:\Arduino\hardware\arduino\cores\arduino\USBCore.cpp:620: error: 'TXLED0' was not declared in this scope
    F:\Arduino\hardware\arduino\cores\arduino\USBCore.cpp:622: error: 'RXLED0' was not declared in this scope
    F:\Arduino\hardware\arduino\cores\arduino\USBCore.cpp: In member function 'void USBDevice_::attach()':
    F:\Arduino\hardware\arduino\cores\arduino\USBCore.cpp:666: error: 'TX_RX_LED_INIT' was not declared in this scope
Most egy kicsit tanácstalan vagyok, mert mint azt írtam, bármely 328-as 168-as 2560-as vagy 1280-as procit tartalmazó panelre hibamentesen fordul a blink. Megyek az Atmelhez a 32U4 adatlapjáért, hátha abból kiolvasok valami okosságot a beépített usb használatáról.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Re: ProMicro (mega32U4)

Hozzászólás Szerző: Robert »

Nincs fenn véletlen valami kosz/maradék az Appdata ill a Dokumentumok/Arduino alatti könyvtárban?
Nálam simán ment Win7x64 ill Win7 Starter alatt.
Avatar
SzLacus
Tranzisztorgyógyász
Hozzászólások: 175
Csatlakozott: 2012. május 20. vasárnap, 6:00

Re: ProMicro (mega32U4)

Hozzászólás Szerző: SzLacus »

Lesem, keresem söprögetem, csak nem tudom mit nevezzek kosz/maradék-nak. :-)
Semmi olyat nem látok, ami gyanús lenne, de az én szemem nem biztos, hogy felismeri a búza közt az ocsut.

Azt látom a hiba helyen a Core-ban, hogy egy definiciót kellene találnia, csak nem találja.
Azt is megtaláltam, hogy a hw variációk könyvtárban a leonardo és a micro tartalmazza amit keresek, de azt még nem találtam meg, hogy hol include-olodna ez, és miért nem kerül bele. Valami telepítési gondom lehet, bár nincs mit elhibázni a next, next, finish telepítésen. Ennek ellenére azt gondolom, hogy valami útvonal problémát kell találnom.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Re: ProMicro (mega32U4)

Hozzászólás Szerző: Robert »

Arduino telepitesed nem ugy volt, hogy volt vmi verzió, és törlés nélkül ment fel a másik ugyanabba a könyvtárba?
Nálam C:\Program Files\Arduino-105 alatt van fenn. Telepítés/újratelepítéskor a könyvtár _törlése_ és utána indul a telepítés... És a sajátnév mappából (Dok&setting\név) az Arduinora utaló mindent is törlöm... (2 van).
Avatar
SzLacus
Tranzisztorgyógyász
Hozzászólások: 175
Csatlakozott: 2012. május 20. vasárnap, 6:00

Re: ProMicro (mega32U4)

Hozzászólás Szerző: SzLacus »

Igen nálam is telepitve van az 1.01, és nem zúztam le, hanem mellé telepdett. Csak annyi a különbség, hogy a régi a D, az új meg az F meghajtóra került. Ez a kettősség a probléma gyökere?. Mit kell keresnem? Vagy nem érdemes aprózni, lezúzni mindkettőt és felrakni szüz környezere?
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Re: ProMicro (mega32U4)

Hozzászólás Szerző: Robert »

Lezúzni mind2-t. Nálam a telepítés C-n van, külön könyvtárban.
Avatar
SzLacus
Tranzisztorgyógyász
Hozzászólások: 175
Csatlakozott: 2012. május 20. vasárnap, 6:00

Re: ProMicro (mega32U4)

Hozzászólás Szerző: SzLacus »

Köszönöm a segítséget, a lezúz, újra telepít megoldotta a feladványt.
És sokkal egyszerűbb volt, mint végig nyomozgatni, hogy hol hibázott az előző telepítés.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Re: ProMicro (mega32U4)

Hozzászólás Szerző: Robert »

És megy a tuti egér/billentyűemuláció?:)
Már gépel helyetted?:)
Avatar
SzLacus
Tranzisztorgyógyász
Hozzászólások: 175
Csatlakozott: 2012. május 20. vasárnap, 6:00

Re: ProMicro (mega32U4)

Hozzászólás Szerző: SzLacus »

Ott még nem tartunk, egyenlőre ismerkedünk egymással. A 17-en a sárga led már villog, most azon agyalok, hogy a zöldet is elérjem. De előtte feltünt némi érdekesség a feltöltés során. A boot loader indítás, vagyis a reset az usb irányából elég érdekes. A proc adatlapjában olvasható, hogy mi módon lehet ezt elérni, és látszik is a letöltő ablakban a folyamat. Ide szúrom az elejét, okulásul a köznek, na meg, hogy legyen miről beszélni.
  • Sketch mérete: 4 830 byte (maximálisan lehetséges: 28 672 byte)
    Forcing reset using 1200bps open/close on port COM37
    PORTS {COM1, COM3, COM4, COM37, } / {COM1, COM3, COM4, COM37, } => {}
    PORTS {COM1, COM3, COM4, COM37, } / {COM1, COM3, COM4, COM37, } => {}
    PORTS {COM1, COM3, COM4, COM37, } / {COM1, COM3, COM4, COM37, } => {}
    PORTS {COM1, COM3, COM4, COM37, } / {COM1, COM3, COM4, COM37, } => {}
    PORTS {COM1, COM3, COM4, COM37, } / {COM1, COM3, COM4, } => {}
    PORTS {COM1, COM3, COM4, } / {COM1, COM3, COM4, COM36, } => {COM36, }
    Found Leonardo upload port: COM36
    F:\Arduino\hardware/tools/avr/bin/avrdude -CF:\Arduino\hardware/tools/avr/etc/avrdude.conf -v -v -v -v -patmega32u4 -cavr109 -P\\.\COM36 -b57600 -D -Uflash:w:D:\Users\Laci\AppData\Local\Temp\build868264213449002087.tmp\Blink.cpp.hex:i

    avrdude: Version 5.11, compiled on Sep 2 2011 at 19:38:36
    Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
    Copyright (c) 2007-2009 Joerg Wunsch

    System wide configuration file is "F:\Arduino\hardware/tools/avr/etc/avrdude.conf"

    Using Port : \\.\COM36
    Using Programmer : avr109
    Overriding Baud Rate : 57600
    AVR Part : ATmega32U4
    Chip Erase delay : 9000 us
    PAGEL : PD7
    BS2 : PA0
    RESET disposition : dedicated
    RETRY pulse : SCK
    serial program mode : yes
    parallel program mode : yes
    Timeout : 200
    StabDelay : 100
    CmdexeDelay : 25
    SyncLoops : 32
    ByteDelay : 0
    PollIndex : 3
    PollValue : 0x53
    Memory Detail :

    stb, stb, stb.........
Ami számomra érdekes, az port változása. A 37-en lakik a panel, látszik a másidik sorban a forsing reset-nél. Aztán a turkál a soros portokon, leválasztja a 37-et, megjelenik helyette a 36. 36-on zajlanak az események, majd a végén illedelmesen visszaállítja 37-re.
  • avrdude done. Thank you.

    Setting baud rate to 9600 on COM37
Mi történik itt? Tudom nem a kezdőknek való mélység ez, de ha valamivel közelebb kerülhetnék a történésekhez. További érdekesség, hogy eredetikeg a 35-re talált be a panelka, és az első letöltésnél mászott át a 37-re, csak akkor még nem tudtam, hogy mit látok. Csak azt tapasztaltam, hogy a 37-re került, és az Arduino beállításaiban utána mentem a változásnak.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Re: ProMicro (mega32U4)

Hozzászólás Szerző: Robert »

Az integrált bootloaderes/USB chip esetén:

0. Főprogram fut, ebben USB/Soros szoftverrész is van.
1. Sorosport megnyit 1200 bps sebességgel
2, mikrokontroller látja, hogy 1200 bps a megnyitás
2a, chipresetet hajt végre (főprogrami sorosport eltűnik (timeout miatt))
2b, PC-n azeltűnő sorosport miatt bezárásra kerül a port
3, Bootloader indul, az ebben levő sorosport/USB aktivizálódik
3a, PC-n új soros eszköz jelenik mg (bootloader sorosport)
4, PC-n a sorosport megnyit az avr-dude által és feltölt a program.
5, feltöltés után chipreset és nincs sorosport nyitva -> főprogram indul el, (Bootloader soros timeouttal eltűnik, főprogram sorosportja belép)

Egy veszély van ezért az ISP programozásnak: a sorosport/USB kezelést be _kell_ fordítani a főprogramba, a nélkül nincs programfeltöltés!
A normál AVR/Arduino esetén a sorosport megnyitásakor a DTR lábon jövő impulzus reseteli az AVR-t.
Avatar
SzLacus
Tranzisztorgyógyász
Hozzászólások: 175
Csatlakozott: 2012. május 20. vasárnap, 6:00

Re: ProMicro (mega32U4)

Hozzászólás Szerző: SzLacus »

Megint ide kell jönnöm némi segítségért.
Új ProMicrot dugtam a régi helyére. Települt, felismerte, megjelent a 38-as porton, a gyárilag rátöltött blink villog. (egy öröm, egy boldogság)
Töltsük rá a saját játékomat. Nem megy. Okulva az előzőekben leírtaakból, és kicsit gondolkodva arra jutottam, hogy a 37-es portot nem tudja használni, így nem tudja eljátszani a megnyitom, becsukom reset folyamatot, ezért feljebb vittem a 41-re, alatta szabad a 40, most jó lesz.
Nem lett jó, szeretne reszetet nyomatni velem, a feltöltéshez az alábbi üzenettel.
  • Uploading to I/O board using 'COM41'
    Couldn’t find Leonardo on the selected port. Check that you have the correct port selected. If it is correct, try pressing the board's reset button after initiating the upload.
De én nem szeretnék nyomogatni, főleg mert nincs is beépített gomb.
Mit nem vettem észre?
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Re: ProMicro (mega32U4)

Hozzászólás Szerző: Robert »

Töltsük rá a saját játékomat.
Ez mi volt?
A főprogramban kell az USB kezelésnek időszelet, így nem lehet pl. sok INTerrupt.
Avatar
SzLacus
Tranzisztorgyógyász
Hozzászólások: 175
Csatlakozott: 2012. május 20. vasárnap, 6:00

Re: ProMicro (mega32U4)

Hozzászólás Szerző: SzLacus »

Ugyan az a program, amit az előző promicrora eddig számtalanszor sikeresen kitöltöttem. Nincs benne megszakítás. De ne jut ki semmi, a próbálkozásom után az általad beletöltött blink fut tovább.
Válasz küldése