Pomoc so záhadne nefungujúcou doskou pre ATmega2560
#1
Som už bezradný. Tak ma napadlo že možno sa niekomu podarí uhádnuť kde je problém. Myslím že to bude nejaka fakt velká blbosť ale obvod je natolko primitívny že ani neviem kde ju hladať.

Takže, navrhol som si vlastnú dosku na MCU ATmega2560. TQFP100 púzdro. Dvojvrstvová doska z gatema. Jediné čo som osadil bola ATmega, stabilizátor a blokovacie kondenzátory. Samozrejme súčiastky okolo resetu a oscilátoru. Aj nejake odpory pre ovládanie funkcií ktoré nikam dalej neviedli a tiež pár 10k odporov z pár pinov uzemnených na zem.

Potom som zistil že nebeží oscilátor tak som ho vymenil z SMD za THT ale nepomohlo to. Tak ma napadlo ho vybrať a odmerať napätie na pinoch kam sa oscilátor pripája XTAL1 a XTAL2 pin 32 a 33. Myslím že by tam malo byť minimálne niečo pod 3V, aspoň na jednom z nich. Každopadne ja tam žiadne napätie nemám a to je ten problém a neviem čím to je spôsobené.

Samozrejme ako prvé som hladal pri tomto púzdre chybu v spájkovaní. Pôvodne to bolo spájkované pomocou hot air s podhrevom. Prešiel som všetky piny ešte raz spájkovačkou. Potom som uplne vybral MCU a naspájkoval znovu. Nič nepomohlo. Tak som objednal nový kus a naspájkoval pomocou hot air ale tiež nebeží.

Na všetkých blokovacích kondenzátoroch napájania okolo MCU mám správne hodnoty napätia. Inde nie je kde čo merať. Odber je podla lab zdroja okolo 30mA. Skrat tam teda tiež nebude.

Poradie pinov a ich správne pridelené funkcie som kontroloval. Od vývodu 1 po 100.

Ďakujem za pomoc.

[Image: 20220226-184243x.jpg] [Image: schMCU.png]
Citovat
#2
.
Citovat
#3
A co přesně nefunguje? Programování přes SPI? Máš propojený jumper JP2 aby byl propojený na CON4?

Pokud je ten procesor nový tak ti ani externí krystal nemůže chodit. Z výroby je nastavený na vnitřní tuším 1MHz možná 8MHz (z hlavy nevím přesně), přepíná se to pak pojistkama v procesoru. Jinak na pojistky u AVR si dej pozor lze si celkem snadno procesor zamčít, vypnout ISP programování atp. pak už s tím bez paraleního programátoru nelze hnout...

Zapojení vypadá asi OK.
Citovat
#4
StavJi, k programovaniu som sa nedostal. Nemá to zmysel keď nebeží oscilátor. Či sa mýlim? Sakra, takže na novom MCU nenabehne oscilátor? To fakt? Takže tam najskôr musím nahrať bootloader alebo kód? Ale pri programovaní by ten oscilátor mal bežať. Či pri nahrávaní kódu sa rozbehne?

Ja už som nejake dosky pre MCU navrhoval ale len ATmega328. Je fakt že som tam dával do patice vždy naprogramovaný. Neviem či mám doma nový a čistý ATmega328. Mohol by som overiť či je na pine oscilátoru napätie alebo teda či oscilátor benží.

Teraz ma napadlo že som robil aj dosku na AVR32 a myslím že oscilátor MCU bežal už pred programovaním. Alebo sa ATmega-y správajú inak?

jardag69, kondenzátory som tam asi aj menil okolo oscilátoru. Oscilátory som tam skúšal 2 rôzne. Obrázok treba zväčšiť, reset pin tam je samozrejme. Bežne som na ňom mal kondenzátor 100N pripojení cez 10k na napájanie aby nabehol opozdene tak ako má. To napätie nie je dôvod aby na pine nebolo.
Citovat
#5
.
Citovat
#6
StavJi napsal:A Z výroby je nastavený na vnitřní tuším 1MHz možná 8MHz (z hlavy nevím přesně ...

Co na tom není jasné? Ten procesor má vnitřní oscilátor a jede z výroby na něj nepotřebuje externí ten se zapne až nastavením pojistek při nahrávání programu. Tím pádem je všechno dobře.

Pokud by procesoru nebežel oscilátor externí nebo vnitřní, tak procesor v podstatě stojí a nic neděla. Nepůjde do něj nahrád program prostě nic.

Normálně zkus ten procesor načíst programátorem jsem si téměř jist že to půjde.
Citovat
#7
Z datasheetu:
10.3.1Default Clock Source
The device is shipped with internal RC oscillator at 8.0MHz and with the fuse CKDIV8 programmed, resulting in1.0MHz system clock. The startup time is set to maximum and time-out period enabled. (CKSEL = "0010", SUT ="10", CKDIV8 = "0"). The default setting ensures that all users can make their desired clock source setting usingany available programming interface.

Takže jako vždy, stačí přečíst si návod, ale to se dělá až jako poslední a Mechanik ani to Grin
Citovat
#8
Na AVR32 oscilátor bežal. Ok, ďakujem DJ_Rix za pomoc. Skúsim to teda rovno cez to ISP naprogramovať. Dúfam že to pobeží. Priznávam, ten katalogový list má 435 strán a nečítal som ho :-D Ale inak mám tú dosku peknú nie? :-D
Citovat
#9
Nevím jak AVR32, ale 8bit AVR Atmega, Atiny, Atxmega to mají jak psal DJ_Rix v #7 akorát tuším, že některé řady nemají CKDIV8 a interní oscilátor jede na 1MHz a k některým nelze tuším ani připojit externí krystal.

ARMové procesory to pak mají tak, že bootují z interních hodin a pak se to dá přenastavit v programu. U AVR tuším nelze měnit clock za běhu a tím snížit spotřebu.
Citovat
#10
Prečo sa bootloader v každom návode (pre arduino) nahráva cez ISP a samotný kód/program už vždy cez piny TX a RX? Čo sú tie USBASP a USBISP programátory tak to vždy s ATmega komunikuje cez ISP nie? Arduino (uno, mega...) nevie do externej dosky nahrávať cez ISP na miesto tých pinov TX a RX?
Citovat
#11
program si klidně nahraj přes ISP, není v tom žádný problém. Ostatně třeba do ATTINY85 bys ho ani jinak nedostal, žádný RX a TX nemá...
RX a TX je pro děcka, aby to nemohly při hraní si rozdrbat úplně (třeba rozdrbat pojistky, a pak už musí proběhnout záchranná operace s 12v programátorem)
To je myšlenka arduina, "normálně" se soft nahrává přes ISP.
P.S: Zkoušet oscilátor by mě ani nenapadlo bez naládování software. Ostatně nikdy jsem žádnej oscilátor u procesoru neměřil, nebyl pro to důvod. Teda byl, ale to byla kalibrace interního, což je zoufalej počin, stejně jako vnitřní reference u atmega procesorů.
Citovat
#12
Mne to cez ISP vôbec nebeží :-( Nenahrá sa to.

Skúšal som to takto:
"Projekt / Nahrať pomocou programátoru" ale vypíše to túto chybu.

"problém s prenosom dát na vývojovú dosku"

avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer
Nastala chyba při nahrávaní projektu.


Pritom cez ISP som tam v pohode dostal bootloader. Čo sa nakoniec potvrdilo tým že cez TX a RX som tam nahral kód/program ktorý fungoval. Len kód/program mi tam cez ISP už akosi nejde nahrať:


Dosku mám Arduino Uno: teda "Port / COM6 - Arduino Uno"
"Vývojová doska - arduino mega"
"Procesor - arduino mega"
Programátor: "arduino as ISP"

Na Arduino Uno piny: 10 (RST),11 (MOSI),12 (MISO),13 (SCK), dalej napájanie +5V a GND. Privedené klasicky na moju dosku s ATmega2560 a ISP konektor čo som si tam dal... Doska zatial obsahuje hlavne oscilátor. Reset pin toho ATmaga2560 je klasicky rovno vyvedený na konetor ISP. S tým že zároveň +5V na doske je cez 10k odpor privedené na tento reset pin. Korektne kondenzátor 100N na tom resete zapojený nemám ale ono ani v návode pre bootloader nebol a bežalo to... Mám v tých resetoch trochu zmätok.
Citovat
#13
Mě to běželo s 10uf Kodaně na resetu. První po kterým jsem sáhl a jelo to.
Citovat
#14
A jaké pojistky jsi tam nahrál společně s bootloaderem? Jinak s "arduino ISP programátorem" moc neporadím, protože jsem ho nikdy nepoužil.
Dlouhou dobu jsem používal toto http://web.quick.cz/ruckl/biprog/biprog.html a pak jsem koupil AVR-ICE.

Jinak na co potřebuješ bootloader respektive na co ho plánuješ používat?
Citovat
#15
Problem bol v tom že som normálne nahral kód do MCU tou ikonou nahrávania kódu ale keď sa použije atduino ako ISP programátor tak sa musí nahrávať niečim v menu... Takže už to beži :-)
Citovat
#16
Má tu niekto skúsenosti aj s programovaním MCU na vlastnej doske inak než cez arduino dosku? Teda USB ASP / ISP programátor?
Citovat
#17
Konkretne som skúšal tento postup: https://www.youtube.com/watch?v=ToKerwRR-70 Vypisuje mi to pri nahrávaní programu v arduine že "vybraný seriový port neexistuje alebo nie je pripojená doska" Skutočne na portoch mám len "COM1" ale nezobrazuje mi to pripojený typ arduina cez to ISP do toho USBasp. Ten programátor som úspešne naprogramoval cez ten zadig-2.7. Aj vo windows sa to správne zobrazuje.
Citovat
#18
Program do té megy si budeš dělat sám ?
Citovat
#19
Ten program je rozrobený už dávno... Všetko hlavné beží. Už len nejake blbiny ako trigger out a vyladiť menšie chyby. Nie je to uplne obyčajný kód. Je tam R-2R, OLED a napríklad aj konfigurovanie vlastného DACu a mnoho iných vecí.
Citovat
#20
Já momentálně používám AVR-ICE dříve jsem používal Biprog http://web.quick.cz/ruckl/biprog/biprog.html v kombinaci se starším AVR studiem a nově s Atmel Studiem. Arduino IDE nepoužívám...
Citovat