výběr MCU, programáoru a SW

Díky za odkaz.

Kurňa, kúp si Atmega328P

Načo Ti je tak slabý čipv cene omnoho lepšieho?
To akože bude Atmel nosiť Tvoje tričko s nápisom: “Sponzor, ďakujeme”?
To si tak bohatý?

Aspoň keby si hovoril o ATmega168. Ale takto to vyzerá, ako by si ani nečítal datasheety a nepozeral ceny napríklad na Farnelli.

cenovo je rozdiel smiešny a v tomto púzdre je ATmega328P správna voľba

V první řadě to chce zachovat chladnou hlavu. Píše že začíná - ATmega8 je tak nejspíš jeden ze základních typů o kterém se první dozví, protože je na trhu dlouho a nejvíc lidí tak o něm ví že existuje, mluví o něm atd atd. To samé je i u ostatních výrobců, např. od Microchipu se na netu do začátku nejvíc doporučuje dinosaří PIC16F84A (už se myslím ani nevyrábí) nebo obstarožní PIC16F628A, který se sice vyrábí (dlouho), ale na trhu už je spousta levnějších a líp vybavených typů.

Je to ale jedno! Do úplného začátku mu dobře poslouží jakýkoliv MCU, protože začátky nejsou o typu MCU, ale o vůli a touze se něco naučit. Elektronika je relativně levný koníček, z pohledu dnešních příjmů je téměř jedno jestli zaplatí za brouka 50,- nebo 80,- Kč, určitě ho to existenčně nezlikviduje. Lepšího brouka si může koupit až usoudí, že ho potřebuje - nebo si ho může koupit hned, když se od někoho dozví že existuje (čiliže tím chci říct, že nemám nic proti tvé radě), ale taky je důležité aby 1. věděl co s ním, když je úplný začátečník 2. někdo mu příliš „osobitou” radou nevzal nadšení - taky bych se nehrnul do oboru, kde by to už podle prvních reakcí okolí vypadalo, že „je to tam samý hulvát” (nic osobního, je to jen pokračování předchozí závorky - čiliže nemám nic proti tvé radě, je ale nutné umět ji podat diplomatickým stylem).

Ty starší typy prostě mají na webu vetší „promo” a navíc bývají zpravidla méně vybavené, tedy jednodušší, což je pro začátečníka jistá výhoda. Určitě se na něj tedy nelze zlobit proto, že si vybral ATmegu8, navíc na tom do úplného začátku nezáleží, důležité je pochopit princip jak MCU pracuje.

Jde mi o to abych se zatím naučil základy, pokud je pro začátečníka ATmega328P lepší, tak samozřejmě neni problém si připlatit.

Jak jsem psal, do začátku je to téměř jedno. Pokud se ho nebojíš a budeš vědět co s ním tak si ho kup, je to líp vybavený brouk který není zas o tolik dražší, takže se to v poměru cena/výbava vyplatí, ovšem my nevíme JAK chceš začít - tedy jak ses k tomu rozhodnutí dostal a jaké prostředky a prostředníky - tedy knížky, návody, kámoše co tomu rozumí atd - máš k dispozici. Souvisí s tím mj. volby dalších věcí jako C vs. ASM, vývojové prostředky (IDE, programátor…) a tak dále - o nich jsi nám nic nenapsal.

Jinak Atmel má pro Linux toolchain, který nejspíš budou umět při správném nastavení využívat další programy (např. obecná IDE jako Eclipse, Code::Blocks atd). Osobně tyto věci příliš neznám, dělám s jinými brouky, ale jsem také linuxák a AVR byly na Linuxu používány často, takže to určitě jde (jen na to nepůjdou použít „klasické Win” rady jako Atmel studio atd).

atmel.com/tools/ATMELAVRTOOL … LINUX.aspx

Kup asi opravdu už rovnou tu Atmegu 328, nebo si ji kup už rovnou i se stabilizátorem a na desce jako arduino mini nebo nano nebo uno. Pokud možno na ebay, tam je to v ceně od 50kč.

Nech to na něm, on už ví co si koupí… Co ale možná neví, a to je to důležitější - co s tím (a v čem a podle čeho) pak bude dělat. A to je to o čem jsem čekal, že se trochu rozkecá.

Ahoj. ATmega8A stojí cca 53 Kč, ATmega328P cca 89 Kč (TME, obojí v klasicém nožičkovém provedení do “bastlpole”), což je rozdíl v podstatě zanedbatelný.

Za ten rozdíl získáváš :

  1. 4x víc programové paměti (8kBx32kB)
  2. 2x víc SRAM (1024x2048 bytů)
  3. 2x víc EEPROM (512x1024 bytů)
  4. Možnost invertovat pin jednou instrukcí

[code]asm : sbi pinX, Y
C: PINX = (1<<Y);

invertuje bit Y brány X - tedy totéž, co
asm:
in reg1, portX
ldi reg2, (1<<Y)
eor reg1, reg2
out portX, reg1

C: PORTX ^= (1<<Y); // 1 Cčková instrukce, ale překlad jsou opět 4 instrukce procesoru …

[/code]To je něco, co procesory ATmega8, ATmega16, ATmega32, ATmega64, ATmega128 (asi jako jedinné) neumí.
5) Možnost použít (kromě INT0 a INT1) externí přerušení na každém pinu procesoru (PinChange).
6) Možnost použít krystal nebo externí hodiny až 20MHz.

Netvrdím, že to použiješ hned ze začátku, ale do budoucna máš prostě možnost si to vyzkoušet a použít. Pinově jsou plně kompatibilní. Jediné, co má ATmega8 navíc je to, že pokud použiješ hodinkový krystal (32,768 kHz), tak není nutné použít externí kondenzátory (popsáno v datasheetu).

Jinými slovy - Pokud ještě nemáš ATmega8 (jakoukoliv) koupenou, tak sahni spíš po té ATmega328P. Časem se naučíš používat procesory podle nároků aplikace a místa na DPS. Ono programování je u všech ATmega a ATtiny stejné, jen jsou trochu jinak vybavené periferiemi.

Držím palce a věř, že pokud uvidíme snahu něco řešit a nebudeš si vědět rady, že Ti tady vždycky poradíme/nasměrujeme. Co tady neděláme jsou odpovědi na dotazy typu “Potřebuju rozsvítit LEDku a vůbec tomu nerozumím, dejte mi sem nějaký příklad.” - rozuměj mám domácí úkol a chci, abyste mi napsali program…

Ahoj.
Jen par dotazu.
Jak budes kupovat soucastky? Abychom se zamerili na nabidku a ceny?
Samozrejme nebudes potrebovat jenom procesor ale i veci okolo.

První věcí je nepájivé pole
doporučil bych ti toto gme.cz/nepajive-kontaktni-pole-1640p-p661-123 na farnellu jsem nenasel odpovidajici levnou nahradu. Toto pole mam a slouzi mi bezmala 5 let.
K tomu slusny napajeci zdroj treba tento gme.cz/napajeci-adapter-sitovy-12v-5000ma-5-5-2-1mm-t2-vigan-p751-712 nebo mensi 2A (konektor ustrihnes a napojis primo na packy, nebo sezenes protikus)
Prevodnik napeti klasicka 7805 gme.cz/stabilizator-pevneho-napeti-kec-7805-to220f-celoplastove-pouzdro-p330-001
Kondenzatory k 7805, potom nejake odpory, ledky, mikrotlacitka
S tim uz si dost vyhrajes abys otestoval dost funkci procesoru.

No a potom display, krokove motorky, rs232 cip, i2c pamet atd atd atd

Ja jsem cca rok pouzival Code:Block for arduno, ID ktere by melo bezet i pod linuxem bez vetsich problemu. Bohuzel presny navod, jak zkompilovat program a nahrat ho do procesoru pod linuxem neznam.

Upozornuji, ze toto neni zadne dogma a kazdy ma jinou predstavu

Hodne stesti.

Mahoney: klidně můžu koupit oba dva, a podle knížky/webu na čem budou program vysvětlovat, zvolit ten správný, jestli mě te šváb bude stát 50,- nebo 200,- u mě nehraje žádnou roli. asi budu používat Code::Blocks zatím nemám vybranou liretratůru z ktreré budu čerpat

rob.brno: deska se stabilizátorem asi netřeba, nebo to umí něco víc?

Balů: díky za rady

DragonSoul: “Jak budes kupovat soucastky?” nevím jak byla tato otázka myšlena, ale většinu kupuju z GME
nepájivé pole mám
mám laboratorní zdorj, momentálně mi chybí funkční osciloskop
7805 v šuplíkové zásobě určitě najdu, jaké jsou nejpoužívanější hodnoty odporů? je tam něco co neni v řadě E12?
mám v šuplíku pár těhle led displayůgme.cz/led-display-9mm-red-sa36-11srwa-p512-919 nejaký krokový morory, servo snad taky najdu, zbytek dokoupím

Tak to koukam, ze si uz dost vybaveny.
Na osciloskop se zatim vyprdni, jeste jsem ho nepotreboval.

Na -uina se vykašli. Je to jenom IO s bootloaderem a pár kondíkama okolo na destičce opatřený kolíkovýma lištama, stabilizátorem napětí a reset tlačítkem. Kromě toho, bys musel použít i -uino programovací prostředí a to jejich jakoCčko. S klasickým programátorem máš daleko větší možnosti. Klasický programátor na -uino sice můžeš použít také, ale pak z toho stejně uděláš jenom IO s trochou bižuterie okolo, protože smažeš bootloader. Zůstane Ti z toho IO se stabilizátorem napětí, poháněné krystalem a LEDkou připojenou na jednom z pinů. Tím pádem máš 3 piny obsazené a nemůžeš je použít ve svojí aplikaci. Je ale vhodné přeházet pojistky alespoň tak, abys mohl využít celou programovou paměť včetně té části, kde byl bootloader. S klasickým IO nemusíš v první fázi dělat nic, protože je IO z výroby nastaven na 1 MHz IntRC.

Co se osciloskopu týká, tak ten sice mám, ale ještě jsem ho nepoužil. Mnohem užitečnější pomůckou je logický analyzátor jako třeba tento : ebay.com/sch/i.html?_from=R4 … r&_sacat=0

Ten používám relativně často hlavně při ladění komunikace mezi mcu a okolím. Velmi často při ladění programů využívám nějakou LEDku, pokud je v zapojení, nebo logickou sondu.

Co se odporů týká, tak nejčastěji používám 100R jako ochranné odpory na výstupech IO (pokud jdou z desky ven), 1k k logickým signálům na vstupech, 10k jako pull-up, pokud interní nestačí nebo jej z nějakého důvodu nelze použít (I2C komunikace). Ke tlačítkům většinou stačí interní pull-up a tlačítko připojit na GND, pokud neřešíš zákmity na úrovni HW. Pak odpory k LEDkám, ale tam už záleží na použitých LEDkách. Pro 7-segmentové zobrazovače (při +5V napájení) 200R-470R podle barvy, aby svítily subjektivně stejně. Pro SMD LEDky používám odpory až 3k3, protože ty umí svítit opravdu hodně. Všechno ale z řady, žádné mimořádnosti. Pokud potřebuju něco k AD převodníkům nebo prostě nějak doladit, tak tam používám trimry.

Vidíš a já bych mu klidně nějaké “uino” doporučil a to proto, že pokud není moc kovanej v elektronice (nevím jak na tom ve skutečnosti je) tak je lepší začít na funkční desce. Některá uína mají seriovou linku konvertovanou přes usb do PC, což nabízí hodně možností k čemu to použit i k ladění programu a nemusí nic řešit. Programovat to může normálním programátorem.

logický analyzátor asi až časem
budu potřebovat nějaké kondy? kromě 22pF ke krystalu

Radius: nějaké základy mám…

este minimalne blokovacie na napajanie.

Je jedno ci sa budes ucit na ATmega8, 16, 32, 324, 328, 644, 1284.

Vsetky vyssie maju akurat viac pamate a pripadne periferii, ktore sa nastastie novacikovi nepletu do cesty, lebo po resete su vsetky automaticky vypnute. Ty si urcujes, s ktoru robit budes a s ktorou nie.

V programovani postupujes podla svojho tempa. Najlepsie je robit v C. Poznaniu periferie, ktory bitik treba kedy nastavit sa aj nevyhnes.

Napriklad rozdiel medzi procesorom s jednym USARTOm a dvoma USARTAMI je zvycajne v tom, ze jeden ma oznacene registre bez rozlisenia poradia a druhy tam to poradie ma v nazve zakomponovane.

Ak co i len trochu nemusis, nepouzivaj kde ake kniznice. Programovanim sa zivim a za 10 rokov som ich nepotreboval snad s vynimkou algoritmu na vykreslenie kruhu do grafickeho diaplaya.

Urcite davaj co najblizsie k napajacim pinom procesora 100nF a takych 10uF kondik a urcite transil 5V8. Ten ma nesmierne blahodarne ucinky pred odpaom MCU do kremikoveho neba.

Do serie s pinmi MCU 100R. Niekto to tu uz spomynal. Nie su vyhnutne, no mozu pomoct prezit MCU aj pri nechcenom strajchnuti po 12V.

Zo slusnosti davam na kazdy pin externy bud pull up alebo pull down, podla toho naco ho vyuzivam.

Inak nic viac dlhu dobu potrebovat nebudes.

Pravdu má ten chlapec… Já bych k tomu jen dodal to co píšu vždycky každýmu začátečníkovi, a sice že ke každému typu (nejen) MCU, se kterým právě začínáš pracovat, si automaticky jako první (!) vždy stáhneš datasheet. Je to velmi dobrý zvyk.

Neviem v poslednej dobe pouzivam uno s rosirujucou doskou stlacidlami a lcd (od robota) botloader zmazem a programatorom ladujem vlastny program. Na skusanie super vec. Pripadne ked potrebujem vyskusat nejaku periferiu pre arduino tak nahrajem botloader najdem kniznicu pre arduino uploadnem vyskusam ze to chodi.
Pre projekt rezania zavitou na sustruhu som nakoniec skoncil pri arduine nano s doskou kde je svorkovnica do ktorej som zapojil enkoder ,i2c pre displej atd.
Za tu cenu co to predavaju je to fajn kit. Za 2E s AT328 plus bizuteria a stabik bezkonkurencne.

Díky všem za reakce, až mi dorazí zásilky, tak se tu určitě objevím.

Fungujem tak isto ako Atlan. Arduno dosku beriem cisto len ako hotovu protodosku. Pri pouzivani nepajiveho pola (breadbord, ako chces) som vela krat hladal chyby v SW, a pritom bol zle pichnuty krystal, alebo kondik a pod. Procesor, napajanie a krystal musis mat proste napevno (odporucam).