AVR Programmer, FTDI, či Arduino ISP?

Raspberry, Arduino, Mini-PC a další

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
Darthy
Příspěvky: 187
Registrován: 15 led 2008, 01:00
Bydliště: Olomouc

AVR Programmer, FTDI, či Arduino ISP?

#1 Příspěvek od Darthy »

Plánuji v některých projektech přejít na standalone verzi AVR švábů. Naneštěstí mám dost zmatek v celém konceptu a potřeboval bych nakopnout. Dnes jsem strávil celé odpoledne hledáním informací na toto téma, na Arduino foru, SparkFun článcích, Gammon Foru a vlastně všude možně na googlu. Stále nemám jasno, proto se obracím na zkušenější s pár otázkama.

1) Arduino desky (Uno, Mega, etc...) používají vlastní AVR MkII programmer, takže v Arduino IDE jen zvolím desku a programmer. Bootloader tedy je v AVR MC nebo ne??

2) Pokud koupím AVR Programátor (např USBasp), nepotřebuji nahrávat booloader a stále můžu nahrávat skeče (programy) z Arduino IDE do "samostatných" MC?? EDIT: Dalším bádáním jsem přišel na to, že použitím ISP programátoru se vlastně booloader nahrává a dokonce vymaže stávájící bootloader pokud nějaký je...

3) Přes FTDI je stále třeba mít bootloader na MC, takže bych musel vždy nahrát první bootloader například přes Arduino Mega desku a až pak bych mohl nahrát vlastní program?? EDIT: A taky jsem zjistil, že FTDI používá UART, zatímco ISP používá SPI, proto je třeba mít bootloader pro FTDI (který ale umožňuje seriový výstup na PC, což ISP neumožňuje).

4) Používám často Arduino Pro Mini z AliExpressu, program nahrávám přes FTDI (s volbou AVR MkII), Pro Mini předpokládám má tedy bootloader už nahraný??

5) Kdy je třeba externí krystal v závislosti na používání jakých způsobů programování MC?? (Mám v plánu vždy použít externí krystal, tak jen pro informaci)

6) Jaký účel tedy plní bootloader v tomhle případě, je třeba pro start MC nebo jen pro nahrání programu, poběží MC v pořádku i bez něj? Často čtu že bez něj je náběh programu rychlejší a taky se ušetří FLASH paměť. Na co je teda v Arduino desce, pokud má vlastní programátor?

Závěrem, pokud tedy chci nejrychlejší způsob implementace MC (ATtiny, ATmega...) do projektu, koupím AVR Programátor (kompatibilní s MC), vytvořím vlastní desku s MC a přes programátor a Arduino IDE nahraju vlastní program, je to reálné?

Uživatelský avatar
FHonza
Příspěvky: 1443
Registrován: 20 lis 2012, 01:00
Bydliště: Praha

#2 Příspěvek od FHonza »

V principu je možné do všech AVR dostat program jedním ze tří způsobů (vynechávám možnosti, které je možné použít pouze u některých čipů):
• ISP programátor (přes SPI a RESET)
• vysokonapěťové programování
• pomocí bootloaderu v čipu (nejčastěji pomocí sériového rozhraní, ale existují i jiné možnosti)

1) Arduino desky používají převodník USB - Serial, v čipu musí být bootloader.
2) ano můžeš, booloader pro samotný běh programu není potřeba
3) ano, FTDI opět slouží pouze jako USB - Serial převodník, v čipu musí být bootloader
4) Pro Mini pokud vím používá převodník CH340, ale opět viz bod 3
5) externí krystal je potřeba vždy, když povolíš jeho používání v tzv "fuse bitech". Když je nastaven, tak bez něj čip nefunguje. O způsobu programování nerozhoduje (ovšem je-li nastaven a není připojen, tak program do čipu dostaneš pouze vysokonapěťovým programováním).
6)Standardní bootloader není potřeba pro start. Slouží pouze pro programování pomocí USB - Serial. Rychlost programu neovlivňuje, nějakou paměť zabírá. Arduino desky nemají programátor, pouze převodník USB - Serial, proto je potřeba.

Závěrem: ano. Kup programátor, vytvoř desku (v nejjednodušším případě to bude pouze samostatný čip), naprogramuj. Není v tom žádná záludnost.

Jestli do programátoru nechceš moc investovat, tak si pořiď klon USBAsp (na eBay kolem 40,-). Jestli máš možnost větší investice, tak kup ATATMEL-ICE. Nemáš-li problém si vyrobit propojovací kabel, tak Ti stačí jenom ta deska. Velkým plusem bude možnost debuggovat (ovšem mimo prostředí Arduino IDE).

Uživatelský avatar
Guggy
Příspěvky: 66
Registrován: 17 říj 2006, 02:00

#3 Příspěvek od Guggy »

1) Pokud se nepletu tak Arduino desky ktere obsahuji jeste druhe atmega32u4 tento cip pouzivaji pouze jako prevodnik USB-serial takze v uC atmega 328 (mikroprocesoru) musi byt nahran bootloader

2) Pokud koupis programator tak bootloader nepotrebujes, nebo si programatorem nahrajes jednou bootloader a pak uz muzes preprogramovavat pres usb- serial prevodnik tak jako arduino

3) viz 3, ale ano pokud budes nahravat pres FTDI (nebo jakejkoliv jinej usb-serial prevodnik) tak potrebujes bootloader, jak ho dostanes do uC je jedno, bud programatorem nebo si z jineho Arduina udelas programator

4)Ano pokud jde nahrat pres FTDI musi mit bootloader

5) Teoreticky vzdycky muzes pouzit i interni RC casovaci obvod, musis si spravne nastavit fuses aby ti cip nabehl podle toho jestli mas pripojeny externi nebo interni hodiny.

6) Pro start uC potreba neni, tady na arduinu slouzi jako programator pres seriovou linku. uC pobezi v phoode i bez nej a jeste usetris nejakou pamet, bootloader mel myslim 2kB ale muze to byt uz jinak

Zaverem, pokud chces nejrychleji implementovat uC do projektu koupis si nejaky ISP programator, na desce si vyvedes ISP konektor ktery pripojis k uC. Desku pripojis k programatoru a .hex nebo .bin soubor co vypadne z arduino ide programujes rovnou ISP programatorem do procesoru.

Dost veci jsem asi vypustil, neco opomnel. Klidne poloz doplnujici dotazy, co si vybavim na drivejsi doby s AVR procakama se pokusim odpovedet.

Uživatelský avatar
FHonza
Příspěvky: 1443
Registrován: 20 lis 2012, 01:00
Bydliště: Praha

#4 Příspěvek od FHonza »

Darthy píše:EDIT: Dalším bádáním jsem přišel na to, že použitím ISP programátoru se vlastně booloader nahrává ...
Nenahrává, pokud si pamatuji, tak je v Arduino IDE volba "vypálit zavaděč".

Uživatelský avatar
lesana87
Příspěvky: 3296
Registrován: 20 zář 2014, 02:00

#5 Příspěvek od lesana87 »

A "vypálí" se tam čím, laserem? :)

Uživatelský avatar
Darthy
Příspěvky: 187
Registrován: 15 led 2008, 01:00
Bydliště: Olomouc

#6 Příspěvek od Darthy »

Děkuji za odpovědi, doplňující dotazy nejsou třeba. Ty mé "EDIT" poznatky ve směs dodaly smysl všem mým ostatním dotazům a vy jste je teď jen hezky potvrdily. Ve zkratce tedy,
ISP Programátory - pro nahrání bootloaderu ale i programu, nicméně bez seriovéhu debugu, vhodné pro finální produkt
UART - potřeba bootloader, kvůli USB/seriové komunikaci, možnost debugu přes seriový výstup, vhodné pro vývoj

Co se týká USBasp, už po nějakém koukám, ale ty levnější náhražky (u nás 130-170kč) mají prý problém s ovladači, 3tis se mi rozhodně nevyplatí investovat do ATATMElu :) tak bych spíš bral nějaký kompromis, spolehlivý, ale ne drahý, nějaké návrhy? Nemusí to být vlastně ani USBasp, dokud to bude fungovat stejně a bude kompatibilní s Arduino IDE.

Uživatelský avatar
FHonza
Příspěvky: 1443
Registrován: 20 lis 2012, 01:00
Bydliště: Praha

#7 Příspěvek od FHonza »

lesana87 píše:A "vypálí" se tam čím, laserem? :)
Já jsem tenhle idiotský překlad nevymyslel :)

Uživatelský avatar
lesana87
Příspěvky: 3296
Registrován: 20 zář 2014, 02:00

#8 Příspěvek od lesana87 »

No tak čím tam ten bootloader nahraješ, když ne ISP programátorem?

Uživatelský avatar
FHonza
Příspěvky: 1443
Registrován: 20 lis 2012, 01:00
Bydliště: Praha

#9 Příspěvek od FHonza »

Darthy píše: 3tis se mi rozhodně nevyplatí investovat do ATATMElu :)
Ta samotná deska stojí kolem 1250,-

S ovladači pro USBasp moc problémů nebývá, toho bych se nebál.

Uživatelský avatar
FHonza
Příspěvky: 1443
Registrován: 20 lis 2012, 01:00
Bydliště: Praha

#10 Příspěvek od FHonza »

lesana87 píše:No tak čím tam ten bootloader nahraješ, když ne ISP programátorem?
No tím laserem (v nové verzi i gama zářením) :)

Jenom jsem vyvracel tvrzení, že při nahrávání programu ISP programátorem v Arduino IDE dojde také k nahrání bootloaderu. Nedojde. Na to je ta další položka menu (a také ten laser).

Uživatelský avatar
Darthy
Příspěvky: 187
Registrován: 15 led 2008, 01:00
Bydliště: Olomouc

#11 Příspěvek od Darthy »

Zrovna jsem o USBasp četl, že si rozumí jen s čínským softwarem progisp172, dokonce i prodejce u nás k tomu uvádí nějaké tyhle informace. Sice se na tom foru píše, že je možné tam nahrát firmware od Thomase Fischla z fischl.de, který tento programátor navrhl (jak jsem pochopil) ale jsou to zbytečné komplikace.
Co AVR MkII v porovnání s USBasp?
EDIT: Hm, právě jsem si všiml ceny AVR MkII (prohodil jsem si ji s STK500)...to už by byl opravdu lepší ten ATATMEL
FHonza píše: Jenom jsem vyvracel tvrzení, že při nahrávání programu ISP programátorem v Arduino IDE dojde také k nahrání bootloaderu. Nedojde. Na to je ta další položka menu (a také ten laser).
Tak to nebylo myšleno... Ale měl jsem na mysli, že pokud chceš nahrát bootloader, musíš použít ISP programátor (klidně i bez Arduino IDE), bez něj ho nenahraješ.
Naposledy upravil(a) Darthy dne 27 led 2020, 21:24, celkem upraveno 2 x.

Uživatelský avatar
lesana87
Příspěvky: 3296
Registrován: 20 zář 2014, 02:00

#12 Příspěvek od lesana87 »

Darthy napsal "Dalším bádáním jsem přišel na to, že použitím ISP programátoru se vlastně booloader nahrává ..." A na tom není nic nepravdivého. Bootloader se skutečně nahrává ISP programátorem, tečka.

Skutečné USBasp od Fischla si rozumí s avrdude, ať pod windows nebo pod linuxem. S čím si rozumí nějaký čínský pajc, nevím.

Uživatelský avatar
FHonza
Příspěvky: 1443
Registrován: 20 lis 2012, 01:00
Bydliště: Praha

#13 Příspěvek od FHonza »

Tak s těmi "compatible" jsou podle mé zkušenosti větší problémy než s USBasp. Nehledě na to že stojí jenom o málo méně než ta holá deska ATATMEL. A nevím jak je to s podporou nové řady Attiny x12, x14, x16.

Jestli nechceš investovat, kup si na eBay klon USBasp a pak uvidíš jestli využiješ výhody něčeho lepšího. Takhle to bude přinejhorším ztráta v ceně jednoho piva :)

Uživatelský avatar
FHonza
Příspěvky: 1443
Registrován: 20 lis 2012, 01:00
Bydliště: Praha

#14 Příspěvek od FHonza »

lesana87 píše:A na tom není nic nepravdivého. Bootloader se skutečně nahrává ISP programátorem, tečka.
Vycházel jsem z celého odstavečku:
Darthy píše: Pokud koupím AVR Programátor (např USBasp), nepotřebuji nahrávat booloader a stále můžu nahrávat skeče (programy) z Arduino IDE do "samostatných" MC?? EDIT: Dalším bádáním jsem přišel na to, že použitím ISP programátoru se vlastně booloader nahrává a dokonce vymaže stávájící bootloader pokud nějaký je...
Píše se o nahrávání bootloaderu z IDE při nahrávání sketche. No a při této příležitosti se bootloader opravdu nenahrává. Tak jsem to pochopil a proto jsem také v tomto duchu odpověděl•

Uživatelský avatar
Darthy
Příspěvky: 187
Registrován: 15 led 2008, 01:00
Bydliště: Olomouc

#15 Příspěvek od Darthy »

No další možnost je postavit vlastní USBasp přímo od fischla, který poskytuje schémata, seznam součástek a firmware s ovladači, byla by to relativní jistota za relativně nízkou cenu. Zase se mi nechce úplně čekat měsíc z ebaye a doufat jestli to vůbec přijde (jakože už mi několik věcí nepřišlo z tama, nerad tam nakupuji).

Odpovědět

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