Napečení Arduina, nový ATmega 328p a pod

Raspberry, Arduino, Mini-PC a další

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
Celeron
Příspěvky: 16140
Registrován: 02 dub 2011, 02:00
Bydliště: Nový Bydžov

Napečení Arduina, nový ATmega 328p a pod

#1 Příspěvek od Celeron »

Malinko si tady hraju s Arduino Uno, programátorem USBasp a s nahráváním programů zatím jen do Arduina s výhledem na nahrání do čistýho SMD ATmega 328P.
Nejdříve jsem zkoušel USBAsp přes BAScom podle příkladu na Trubce. Driver pro USBasp jsem nainstaloval a stejně se mě nedařilo. I když jsem postupoval naprosto přesně podle návodu na Trubce, v BAScomu nešla identifikace procesoru na Arduinu. Už jsem si myslel, že jsem koupil mrtvolu.
Tak jsem zkusil USBasp v prostředí Arduino IDE. Tam se mi naprosto bez problému podařilo přes ISP do Uno nahrát program. Pak jsem zkusil nahrání jinýho programu přes USB štekr Arduina. To nešlo, takže se určitě při programování přes SPI přeplácnul bootloader. Tak jsem ho zkusil přes SPI z Arduina IDE znova napíct, co se povedlo a pak už šlo zase do USB štekr nahrát můj program. Takže USBasp chodí.
Jenže to neřeší můj problém, protože v Arduino IDE asi nikde nejdou nastavit pro novej procík delička, int/ext oscilátor a další fuse, co právě umožňuje BAScom.
Poradíte prosím někdo, s čím na nový procesory, když se mi nedaří rozhejbat Bascom? Nebo jak ten Bascom rozhejbat? Potřebuju prostě programovat nový ATmega 328P v svý desce s minikonektorem ISP.
Jirka

Proč mi nemůže všechno chodit hned ?!!

Uživatelský avatar
Ruprecht
Příspěvky: 1114
Registrován: 28 zář 2005, 02:00
Bydliště: ZČ + JM

#2 Příspěvek od Ruprecht »

Options - Programmer - Clock frequency - zkus nastavit nějakou nízkou pevnou frekvenci (namísto AUTO), třeba 32kHz
Kampaň, účelovka, nepodepsal, Palermo, ODS, Kalousek, je líp a jsou na to čísla, nastudujte si to.

Uživatelský avatar
Celeron
Příspěvky: 16140
Registrován: 02 dub 2011, 02:00
Bydliště: Nový Bydžov

#3 Příspěvek od Celeron »

To nepomáhá. Stále je výpis "Error: could not found USB device\"USBasp\"with vid=0x16C0 pid=0x5DC". Asi je něco špatně kolem USB připojení USBasp. Ale co nevím, ve Správci zařízení USBasp je bez vykřičníku, driver od Zadigu jsem instaloval stejnej jako je na Trubce od OK1HGU. Divný je, že v BAScom nikde neukazuje přes kterej COM je USB připojený.
Nojo, ale kdyby byl špatnej driver, tak by to snad nechodilo i v Arduino IDE. Nebo nemá IDE náhodou svůj USBasp driver?
Zkoušel jsem AVRDUE a ta samá chyba a to na všech COM co nabízí.

edit: už mi BAScom správně identifikuje připojenej procesor. Zkusil jsem nainstalovat v Zadigu jinej driver než kterej použil OK1HGU va Trubce. Mě to chodí s LibUSB_Win32(v.1.2.6.0). Včera jsem totiž četl na nějakým fóru maníka, kterýmu to taky nešlo s doporučeným driverem a taky zkusil jinej. Nejspíš je problém s jiným FW v čínským USBasp, někde jsem četl, že je dobrý se vrátit k původnímu FW od Fischla, co neuměl Auto Clock Freqvency. Jenže na to je potřeba další USBasp...
Aspoň že se povedlo, už jsem s tím chtěl praštit do kouta.
Jirka

Proč mi nemůže všechno chodit hned ?!!

Uživatelský avatar
Celeron
Příspěvky: 16140
Registrován: 02 dub 2011, 02:00
Bydliště: Nový Bydžov

#4 Příspěvek od Celeron »

Můžete mi prosím někdo objasnit proč Arduino UNO hlásí po kompilaci že paměť programu má 32256 bytů a Arduino Pro Mini se stejným procíkem ATmega 328P mi hlásí paměť jen 30720 bytů?
Koukal jsem do definic procesorů v souboru Board.txt a opravdu,
uno.upload.maximum_size=32256
pro.16MHz.atmega328.upload.maximum_size=30720
Proč to tak je? U Pro Mini je rezervovaný větší místo pro bootloader?

Do UNO jsem bootloader již pekl, dal jsem tam "optiboot/optiboot_atmega328.hex" a ten má jen 256 byte. 256 byte je rezervováno pro registry, to je dohromady s bootloaderem 512 byte. Celá paměť má 32768, když se odečte těch 512, tak jsem na 32256 byte co má UNO v definici maximum _size. Ale proč má Pročko zablokovanejch 2048 byte, netuším.
Myslel jsem, že pokud nebudu používat bootloader a "napíkat" budu přes SPI, tak se může použít i paměť 256 byte, kde byl bootloader. To by asi teda znamenalo, že se v definicích musí přepsat dýlka paměti v maximum_size a rezervovat jen 256 byte pro registry. To by asi mohlo jít i u Pro Mini.
Je to prosím někdo, kdo ví vo co go a chce se mu k tomu něco napsat?
Díky
Jirka

Proč mi nemůže všechno chodit hned ?!!

Uživatelský avatar
passion
Příspěvky: 890
Registrován: 22 črc 2005, 02:00
Bydliště: Žilina

#5 Příspěvek od passion »

https://arduino.stackexchange.com/quest ... ent-boards

Nájdi najnovšie aktualizácie bootloaderov. Aj pro mini by si mal dostať na 0.5kB

Uživatelský avatar
Celeron
Příspěvky: 16140
Registrován: 02 dub 2011, 02:00
Bydliště: Nový Bydžov

#6 Příspěvek od Celeron »

Díky za odkaz. Takže starej dlouhej bootloader lze nahradit mnohem kratším novějším. Tu velkou rezervaci dělají pro sichr aby nebyly kolizní programy na deskách se starým dlouhým bootloaderem.
Odpoledne udělám SPI redukci na Pro Mini a v Bascomu načtu, co v je v Pro mini za bootloader a jak dlouhej, případně zkusím do něj nacpat ten 256 byte dlouhej Optiboot pro UNO. Při pečení se dá zadat, jak je bootloader dlouhej na který adrese začíná. Ale asi se taky bude muset v definicích Pro Mini nastavit maximum_size=32256 aby to pustilo program do původního místa dlouhýho bootloaderu. No uvidíme...

K tomu druhýmu problému pokud jede ATmega 238P jen holá bez bootloaderu s HEX programu nahraným přes SPI nikdo nic? Dá se povolit paměťovej prostor v maximum_size=32512, tedy o 256 byte větší?
Tak asi nezbyde nic jinýho, než to vyzkoušet...
Jirka

Proč mi nemůže všechno chodit hned ?!!

Uživatelský avatar
Ruprecht
Příspěvky: 1114
Registrován: 28 zář 2005, 02:00
Bydliště: ZČ + JM

#7 Příspěvek od Ruprecht »

Bascom - programátor - lock and fuse bits - Fusebit high DE = bootsize
Kampaň, účelovka, nepodepsal, Palermo, ODS, Kalousek, je líp a jsou na to čísla, nastudujte si to.

Uživatelský avatar
Celeron
Příspěvky: 16140
Registrován: 02 dub 2011, 02:00
Bydliště: Nový Bydžov

#8 Příspěvek od Celeron »

Jo, to vím že se tam dá nastavit dýlka bootloaderu, už jsem to dělal, prázdný nový procíky mají dýlku bootloaderu nastavenou dokonce na 4KB a zapnutou předděličku.
Ale jak IDE pozná, že může kompilovat do toho úseku dřív obsazeným bootloaderem? Kompilaci můžeš dělat i bez připojený desky a tak si to načíst nemůže. A i kdyby byla deska připojená, v příkazu "Identifikuj desku" se u klonů nic nevrací a u originálů jen ID a název.
Přepsat v definicích dýlku v maximum_size?
Díky!
Jirka

Proč mi nemůže všechno chodit hned ?!!

Uživatelský avatar
Ruprecht
Příspěvky: 1114
Registrován: 28 zář 2005, 02:00
Bydliště: ZČ + JM

#9 Příspěvek od Ruprecht »

v boards.txt atmega328.upload.maximum_size=xxxxx
Kampaň, účelovka, nepodepsal, Palermo, ODS, Kalousek, je líp a jsou na to čísla, nastudujte si to.

Uživatelský avatar
Celeron
Příspěvky: 16140
Registrován: 02 dub 2011, 02:00
Bydliště: Nový Bydžov

#10 Příspěvek od Celeron »

Dík za potvrzení.
Jirka

Proč mi nemůže všechno chodit hned ?!!

Uživatelský avatar
Celeron
Příspěvky: 16140
Registrován: 02 dub 2011, 02:00
Bydliště: Nový Bydžov

#11 Příspěvek od Celeron »

Zkusil jsem v BAScomu napíct do Pro Mini 256 Byte krátkej Optiboot, co je v UNu a nastavit fuse a dýlku bootloaderu. Když něco zkompiluju s nastavením pro UNO a pošlu to do Pro Mini přes bootloader, tak to chodí a mám plnou paměť. Ale přes SPI to nahrát nejde, udělá 10 pokusů a skončí.
Jako deska Pro Mini 5V/16MHz to nejde vůbec nahrát, zakousne se.
Je to divný, změnil jsem i v Arduinu IDE Fusebit high na 0xDE a maximum_size na 32256 a IDE restartoval a stejně mi to stále píše velikost paměti 30720. Pouhým přepisem to změnit nejde. Nevím, co s tím. Aspoň že ten můj projekt co nešel nahrát kvůli malý paměti jde nahrnout do ProMini přes nastavení pro UNO.
Edit:
Teď jsem našel na netu, že optiboot blikne po resetu na ProMini 3x kdežto původní dlouhej bootloader jen 1x.
Jirka

Proč mi nemůže všechno chodit hned ?!!

Uživatelský avatar
Celeron
Příspěvky: 16140
Registrován: 02 dub 2011, 02:00
Bydliště: Nový Bydžov

#12 Příspěvek od Celeron »

Mám takovej blbej problém. Zkoušel jsem v Bascom nastavit u ATtiny85 vnitřní WD oscilátor 128KHz a od tý doby je procík mrtvola. Nejde ani identifikace. Zkusil jsem jestli čiště náhodou není přepnutej na externí krystal a na 4MHz krystal s kondíkama 22pF do země taky procík mrtvej a na krystalu taky nic. To samý na krystal 32KHz. Netušíte prosím někdo co je blbě a proč a jestli s tím jde něco dělat? Nebo vložit do kaťanu a fláknout s ním o zeď?
Díky!
Jirka

Proč mi nemůže všechno chodit hned ?!!

Uživatelský avatar
JirkaZ
Moderátor
Moderátor
Příspěvky: 1429
Registrován: 26 úno 2021, 01:00

#13 Příspěvek od JirkaZ »

Čím to programuješ? Pokud to už není, tak bych zkusil paralelní nebo sériový, ale "high voltage" programátor.

Třeba mnou už tady zmiňovaný PRCácký TL866 II Plus.

Podívej se třeba i sem - nečetl jsem to, ale myslím, že to bude ono.

Nebo všeobecně podobné články.
Kdo chce, hledá způsob;
kdo ne - hledá důvod.

Ze dvou možností často volím tu třetí.

Uživatelský avatar
Ruprecht
Příspěvky: 1114
Registrován: 28 zář 2005, 02:00
Bydliště: ZČ + JM

#14 Příspěvek od Ruprecht »

A ISP programátor sis v Bascomu zpomalil?
Kampaň, účelovka, nepodepsal, Palermo, ODS, Kalousek, je líp a jsou na to čísla, nastudujte si to.

Uživatelský avatar
Celeron
Příspěvky: 16140
Registrován: 02 dub 2011, 02:00
Bydliště: Nový Bydžov

#15 Příspěvek od Celeron »

Ruprecht píše:A ISP programátor sis v Bascomu zpomalil?
Na interních 8MHz bez nebo s předděličkou mám 187,5 KHz, na Auto mi detekce nešla ani u 328p ani u Tiny85. Zkusil jsem na Tvoji radu jít postupně dolů až na 500 Hz a nic. Prostě při pokusu o detekci procíku Tiny 85 nenapíše nic, velikost Flash vypíše 0. Když zkusím 328P tak ji zdetekuje, takže USBasp je živej.
Jirka

Proč mi nemůže všechno chodit hned ?!!

Odpovědět

Zpět na „Miniaturní počítače (Arduino, Raspberry a další)“