Atmega328p - nejde nahrát program v arduino UNO a další

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
DukeNuke
Příspěvky: 2021
Registrován: 02 dub 2018, 00:00

Atmega328p - nejde nahrát program v arduino UNO a další

#1 Příspěvek od DukeNuke »

Ahoj,
stalo se mi při hraní s hardujínem, že přestal fungovat čip. OK, nadrátoval jsem paralení programování, kompletně ho smazal, nahrál bootloader.
LED bliká, v IDE je vidět a hlásí se připojen. Jupí. Jenže v UNO desce do něj nejde nahrát program - chyba v komunikaci. LED Tx jen párkrát problikne, pak to vyhodí chybu.
Tak jsem zkusil optiboot (to už taky umím). LED 3x problikne, vše vypadá OK, ale zase - nejde nahrát program v UNO desce.
Tak jsem zkusil kompletní kopii celého programu z jiné Atmegy - včetně pojistek. A světe div se, normálně to chodí. Display je ovládán přes piny Uno 13(brouk 17-sck), 11(15-mosi) a 10-8. A normálně funguje. Tak jsem na funkční atmeze dopsal ještě blik LED na pinu 12(16-miso), opět nakopíroval do nefunkční a bliká.
Dám ho do UNO desky, funguje i v desce. Chci do něj nahrát program přes UNO - chyba.
Jiný brouk, ať už s kopií original bootloaderu arduina, nebo s optibootem problém nemá.
Tohle mě hlava nebere. Už se s něčím takovým někdo z vás potkal?
Naposledy upravil(a) DukeNuke dne 05 led 2026, 13:13, celkem upraveno 1 x.
Uživatelský avatar
misocko
Příspěvky: 1528
Registrován: 26 čer 2009, 00:00
Bydliště: Hlohovec (Sk)

#2 Příspěvek od misocko »

obávam sa že väčši arduinistov to rieši podobne ako ja - nefunguje? Vyhodím. Iba v jednom arduine, kde som mal čip na konektore (nie napajkovany v doske), som ho vymenil. Na inom som mal problem s komunikačným čipom - koš
Uživatelský avatar
rnbw
Příspěvky: 37416
Registrován: 21 bře 2006, 00:00
Bydliště: Bratislava

#3 Příspěvek od rnbw »

Jedno kompletne odpalene Arduino Uno som opravoval:
http://www.ebastlirna.cz/modules.php?na ... c&t=108955
Uživatelský avatar
jankrizan
Příspěvky: 167
Registrován: 30 pro 2007, 00:00

#4 Příspěvek od jankrizan »

Ak si nahrával znova bootlader, máš správne poistky? Ja mam low 0xFF, high 0xDE, extended 0xFD, lock 0xFF.
Naposledy upravil(a) jankrizan dne 19 říj 2025, 12:38, celkem upraveno 1 x.
Uživatelský avatar
jankrizan
Příspěvky: 167
Registrován: 30 pro 2007, 00:00

#5 Příspěvek od jankrizan »

Alebo, ešte ak máš funkčný čip s akymkoľvek programom, ale nahraný v arduine, tak si ho prepáľ v programátore, aj poistky samozrejme. Skús nahrať v arduine nový program a uvidíš.
Uživatelský avatar
DukeNuke
Příspěvky: 2021
Registrován: 02 dub 2018, 00:00

#6 Příspěvek od DukeNuke »

Tak ještě jedna věc - program sice běží, ale nefunguje reset. A to mi taky hlava nebere, protože reset se používá při programování přes SPI.
Pojistky jsou OK. Arduino boot loader je má nastaveny jinak, než optiboot. Taky jsou na jiných adresách - bootloader je od 0000H, kdežto optiboot 7E00H.
Je mi jasné, že je po něm. Ještě jednou zkusím paralelní výmaz a pak půjde z domu. Ale je to zajímavé chování :-)
Uživatelský avatar
bdn
Příspěvky: 560
Registrován: 16 led 2020, 00:00

#7 Příspěvek od bdn »

Typické poruchy uploadu:
- nastavení oscilátoru interní / externí, pojistka fusebits
- nastavení oscilátor rychlost, pojistka fusebits, Fosc./8
- nastavená rychlost přenosu UART Baud bootloaderu ve Flash, jiná než rychlost IDE
- neproběhne reset chipu před uploadem
- COM port ve Windows nefunguje
Uživatelský avatar
jankrizan
Příspěvky: 167
Registrován: 30 pro 2007, 00:00

#8 Příspěvek od jankrizan »

Myslím, že je škoda ho pustiť z domu. Nahraj si program na takom ktorý je funkčný a prepáľ HEX. Použiješ vo finalnej konštrukcii, kde bootladery netreba a ten pôvodný ti ostane ako funkčný pre ďalšie použitie.
Uživatelský avatar
DukeNuke
Příspěvky: 2021
Registrován: 02 dub 2018, 00:00

#9 Příspěvek od DukeNuke »

Takhle by použít samozřejmě šel. Ale věřil bys mu? Jedině tak do něčeho, kde nic neřídí a na čem nezáleží.
Uživatelský avatar
jankrizan
Příspěvky: 167
Registrován: 30 pro 2007, 00:00

#10 Příspěvek od jankrizan »

Nemyslím. Nepíšeš, že vynecháva, alebo štrajkuje, ale ak je napálený a funguje tak ako potrebujem teraz, tak mám skúsenosti, že poslúcha aj neskoršie a to používam čipy z Ali..., ktoré majú síce rôzne parametre, ale keď idú, tak idú. A nechceš ho zapracovať do kozmickej lode? Či ?
Uživatelský avatar
DukeNuke
Příspěvky: 2021
Registrován: 02 dub 2018, 00:00

#11 Příspěvek od DukeNuke »

Já jsem ještě ze staré školy. A když dám něco dohromady, tak to musí být bez chybičky.
Uživatelský avatar
DukeNuke
Příspěvky: 2021
Registrován: 02 dub 2018, 00:00

#12 Příspěvek od DukeNuke »

Ahoj, mám dotaz, dávám sem, ať zbytečně nezakládám další téma...
Cílem je mít naprogramovaný atmega z arduina uno a nechat ho běžet samostatně s interním oscilátorem 8MHz.
To se mi povedlo tak, že jsem ho vzal, změnil odpovídající pojistky. Běží. Rád bych si ale ještě něco upřesnil...
1. je nutno zadávat frekvenci příkazem "#define F_CPU 8000000UL"? Funkci delay v programu na jednom místě používám (50ms).
2. v adresáři ...\AppData\Local\arduino\sketches\... jsem našel hex s bootloaderem a hex bez bootloaderu. Předpokládám, že po odladění stačí nahrát hex bez bootloaderu pro běh samotného programu. Ale nějak se mi nedaří správně nastavit pojistky. S bootloaderem mi to funguje.
Díky za odpovědi.
Použité knihovny: Adafruit_GFX.h, Adafruit_SSD1331.h SPI.h LowPower.h
Uživatelský avatar
Celeron
Příspěvky: 20508
Registrován: 02 dub 2011, 00:00
Bydliště: Nový Bydžov

#13 Příspěvek od Celeron »

Já jsem asi před dvěma lety narazil na nějakej problém po výměně vadný ATmega 328P za novou ATmega 328PB. Něco právě kolem bootloaderu. Ale už nevzpomenu, co to přesně bylo. Asi nejsou úplně totožný, třeba Bascom prostředí má pro 328P a 328PB jinej definiční soubor.
Jirka

Proč mi nemůže všechno chodit hned ?!!
Uživatelský avatar
DukeNuke
Příspěvky: 2021
Registrován: 02 dub 2018, 00:00

#14 Příspěvek od DukeNuke »

Ahoj, je to ATmega 328P (resp. PU) - programuju v arduino uno rev.3
Uživatelský avatar
Mahoney
Příspěvky: 759
Registrován: 26 říj 2019, 00:00

#15 Příspěvek od Mahoney »

Cílem je mít naprogramovaný atmega
První si ujasni, jak budeš procesor v zapojení nahrávat (USB převodník/serial), pokud tedy budeš. Podle toho je třeba vybrat bootloader.

Jestli bootloader používá stejné nastavení oscilátoru jako tvůj program, pak frekvenci psát nemusíš. Pokud nepoužívá, pak je lepší ji napsat.

Bootloader používej, od toho je, aby usnadňoval práci. Pokud ho nepoužiješ, pak se to nijak neliší od běžné práce (ISP programování), včetně např. toho, že (i v tom prostředí) můžeš psát v čistém C.
vadný ATmega 328P za novou ATmega 328PB.
Je na to Appnote.
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“