MS Office week
Pouze tento týden sleva až 80 % na e-learning týkající se MS Office
50 % bodů zdarma na online výuku díky naší Slevové akci!

Lekce 9 - Arduino - Samostatný čip ATmega 328p

Informace obsažené v tomto článku mohou být zastaralé. Autor ví, že to nemusí fungovat a napraví to hned, jak bude mít čas.

Pokud budete chtít nějaké projekty realizovat, tak vám určitě bude líto použít celé Arduino. Ale co s tím? Arduino UNO běží na čipu ATMega 328P, který se stará o všechno. Pak jsou již na desce jen regulátory, převodník, spousta dalších součástek a 16MHz krystal. Čip má ale obsažený (sice jen 8MHz) krystal v sobě, takže ho také nebudeme potřebovat. Tím, že použijeme interní krystal, se nám sníží paměť z 32 256 bitů na pouhých 30 720, takže ztratíme skoro 2kB paměti, ale u menších projektů by to neměl být problém. Někdy příště si ukážeme, jak to zprovoznit s krystalem a využít celou paměť.

ATMega 328P

Abychom ale mohli na čip nahrávat programy jako do klasického Arduina, tak do něj budeme muset v první řadě nahrát Arduino Bootloader, bez kterého do něj přes Arduino IDE nic nenahrajeme. Abychom mohli na čip bootloader nahrát, budeme potřebovat alespoň funkční Arduino. A abychom mohli pracovat se samostatným čipem bez krystalu, budeme si do IDE muset přidat další "desku". Takže IDE vypneme (pokud je zapnuté) a do složky pro sketche (C:\Users\Já\Do­cuments\Ardui­no) přidáme složku hardware, v ní složku Breadboard a v ní bude txt soubor. Vše si to můžete stáhnout v souborech tutoriálu níže. Teď Arduino IDE zapneme a v Tools -> Board by se nám měla na konci objevit nová možnost - ATMega328 on a breadboard (8MHz internal clock). Na tu ještě nepřepneme! Zvolíme si takovou desku, se kterou budeme chtít ATMegu naprogramovat a v examples si otevřeme Arduino ISP. To do Arduina nahrajeme a přesuneme se k připojování čipu.

ATMega má 28 nožiček. Ty nejsou popsané, takže si doporučuji na čip nalepit nálepku s popiskem pinů. Mně se povedlo najít tyto od Adafruitu,, které si jen vytisknete a nalepíte (nejlépe oboustrannou izolepou).

Čip pootočíme zoubkem doleva a podíváme se na něj z vrchu a vysvětlíme si jednotlivé nožičky.

ATMega 328P polepka

V horní řadě máme zleva:

  • 6 analogových pinů A6-A0
  • GND je zem
  • AREF a AVCC jsou vstup 5V
  • D13-D9 jsou digitální piny
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!

V dolní poté:

  • RST je resetující pin
  • RX a TX jsou pro sériovou komunikaci a zároveň piny 0 a 1
  • D2-D4 jsou další digitální piny
  • V+ je vstup 5V
  • GND jde na zem
  • XTL 1 a 2 jsou pro připojení krystalu. Ty nás nezajímají.
  • D5-D8 jsou poslední digitální piny

Zpátky k nahrávání bootloaderu. Ve sketchi Arduino ISP máme na začátku část:

// pin name:    not-mega:         mega(1280 and 2560)
// slave reset: 10:               53
// MOSI(11):    11:               51
// MISO(12):    12:               50
// SCK(13):     13:               52

Jsou zde popsány piny - kam které připojit. Takže připojíme piny reset a D11-D13 na čipu k Arduinu. U MEGA dle pravého sloupce, u ostatních dle levého. Tyto 4 ale nestačí! Čip má dvakrát GND, tu na zem a na V+, AREF a AVCC připojíme 5V. Nyní by čip měl být připojen nějak takto:

Připojení čipu ATmega 328p

Jelikož na schématu nejsou popsané piny, doporučuji držet se raději popisu v kódu. Takže máme čip připojený, v Arduinu je nahrán sketch ISP a můžeme jít nahrávat. V Tools -> Board zvolíme poslední položku ATMega328 on a breadboard (8MHz internal clock). Dále si v Tool -> Programmer zvolíme Arduino as ISP. Sériový port zvolíme takový, na jakém je připojeno Arduino, kterým budeme nahrávat bootloader. V kódu se pod popisy pinů doporučuje připojit na piny 7,8 a 9 LEDky, které budou informovat o stavu nahrávání. Já je ale nepoužívám, všechno potřebné je v IDE. Nyní v Tools zvolíme Burn Bootloader. Začne se vypalovat bootloader, toto může chvilku trvat (prý až několik minut), takže se nelekněte, že se IDE seklo. Pokud bude vypalování úspěšné, tak se nám v IDE napíše "Done burning bootloader". Pokud k tomu nedojde, zkontrolujte, zda máte vše správně. Pokud je i toto v pořádku, tak je čip asi vadný. Takže na čipu máme bootloader, ale jak do něj nahrát kód?

Pokud máme Arduino s odnímatelným čipem (UNO, Duemilanove,..), tak stačí z Arduina vyndat čip, náš nový připojíme na napájení a piny RX a TX připojíme na piny RX a TX na desce Arduina bez čipu. Tady se RX a TX neprohazuje! Potom můžeme nahrávat jako normálně (ale stále musíme mít jako board zvoleno ATmega328 on a breadboard) . Pokud se nám čip odendávat nechce, nebo to na Arduinu prostě nejde (MEGA, ...), tak potřebujeme sériový převodník. Ten má USB pro připojení k počítači a alespoň 4 piny - VCC, GND, TX, RX. Pokud jich je více, tak nás momentálně nezajímají. VCC a GND je napájení, to normálně připojíme, ale TX připojíme na RX a RX připojíme na TX! Je to tím, že RX je příjem, a TX odesílání, takže nemůžeme připojit vstup do vstupu a výstup do výstupu. Pokud budeme používat sériový převodník, tak to znamená další COM port, na který budeme muset přepnout v IDE (Tools -> Serial Port), ale stále zůstává deska ATmega 328 on a breadboard. Z dřívějška již umíme používat DHT11, takže si čip naprogramujeme, aby po sériové lince posílal teplotu.

K čipu připojíme sériový převodník (popřípadě Arduino bez čipu), připojíme napájení, sériovou komunikaci (pamatujte na prohození RX a TX) a dht11 na pin 8.

Schéma zapojení Arduina

Pak si v IDE napíšeme tento kód:

#include <dht11.h>

dht11 cidlo;

void setup()
{
  Serial.begin(9600);
}

void loop()
{
  cidlo.read(8);
  Serial.print("Teplota: ");
  Serial.println(cidlo.temperature);
  delay(1000);
}

V Tools -> Board se ujistíme, že máme ATmega328 on a breadboard. V Serial ports si zvolíme port, na kterém je převodník Arduino bez čipu a sketch nahrajeme jako do normálního Arduina. Otevřeme serial monitor a uvidíme výpis teploty. Někdy se nahrávání nepovede napoprvé, někdy trvá déle a někdy se odmítá sketch nahrát i po několikátém pokusu. Nevím, v čem je problém, ale když se sketch odmítá nahrát, tak znovu vypálím do čipu bootloader a pak jde vše zas nějakou dobu bez problémů.

Použití samotného čipu z Arduina

Při používání samostatného čipu je třeba dbát na to, že je to jen čip a nic víc. To, že do MEGA můžete pustit podle dokumentace až 12 V, tak zde to prostě NELZE. Je to jen čip bez všech regulátorů a dalších věcí jak jsou na desce. Pokud bychom chtěli jako napájení použít 9V baterii, kterou lze k Arduinu normálně připojit, budeme muset použít nějaký regulátor napětí. U projektů s nízkým odběrem stačí regulátor LM7805, který přebytečnou energii mění na teplo.

LM7805

Takto LM7805 vypadá. Na vstup(pin 1) se připojí vstupní napětí 9V (zvládá i 12) a na zem (2) se připojí zem baterie. Pak na výstupu (3) je 5V, pro které je zem také pin 2, tudíž je zem společná.

Pokud bychom ale měli projekt s větší spotřebou, tak bychom jím spíše topili a to se hodí použít 5V convertory, které mají 2 vstupní piny a 2 výstupní a jsou schopny držet stálých 5V bez velkých ztrát. Některé zvládají fungovat už od 3V do 30V.

To by bylo pro dnešní díl vše, příště bude nejspíše 7-segmentový display.


 

Stáhnout

Staženo 780x (1.02 kB)
Aplikace je včetně zdrojových kódů

 

Předchozí článek
Arduino - Spínání velké zátěže
Všechny články v sekci
Arduino
Článek pro vás napsal Adam Ježek
Avatar
Jak se ti líbí článek?
7 hlasů
Autor se převážně věnuje Arduinu a psaní tutoriálů z této oblasti, občas napíše příležitostně nějakou tu zprávičku. Většinu svého volného času momentálně věnuje Linuxu a/nebo Raspberry Pi. Také umí C#, HTML, CSS, PHP a Python.
Aktivity (2)

 

 

Komentáře

Avatar
Petr Domes (petrds):29.8.2014 14:21

není lepší už rovnou koupit Arduino NANO ? http://www.ebay.com/…131278764259?…

 
Odpovědět
29.8.2014 14:21
Avatar
Odpovídá na Petr Domes (petrds)
Michal Žůrek - misaz:29.8.2014 16:30

jestli jde o ten procesor, tak nejjednodušší je koupit onen procesor a napsat to v C.

 
Odpovědět
29.8.2014 16:30
Avatar
Adam Ježek
Redaktor
Avatar
Odpovídá na Petr Domes (petrds)
Adam Ježek:29.8.2014 16:44

to možná i jo, ale tohle je tutoriál jak pouřívat samostatnej čip. Navíc NANO taky nemá převodník (a myslím že ani regulátor napětí)

Odpovědět
29.8.2014 16:44
Počkej chvíli, poradím se s křišťálovou koulí.
Avatar
youtubak777
Člen
Avatar
youtubak777:6.10.2014 21:09

Nebylo by jednodušší si koupit čip i s nahraným boot loaderem ?
http://www.gme.cz/…328-p772-010

 
Odpovědět
6.10.2014 21:09
Avatar
Adam Ježek
Redaktor
Avatar
Odpovídá na youtubak777
Adam Ježek:6.10.2014 21:12

a když už máš arduino, není levnější si koupit prázdnej čip, na kterej se dá bez sebemenších problémů nahrát bootloader?

Odpovědět
6.10.2014 21:12
Počkej chvíli, poradím se s křišťálovou koulí.
Avatar
youtubak777
Člen
Avatar
Odpovídá na Adam Ježek
youtubak777:7.10.2014 0:26

Aha, až teď jsem našel prázdný čip a zjistil jsem že je o dost levnější :D

 
Odpovědět
7.10.2014 0:26
Avatar
youtubak777
Člen
Avatar
youtubak777:22.11.2014 15:38

Jaký krystal je k tomu potřeba (abych si ho když tak hned koupil :D)
Myslím to verzi s krystalem :)

 
Odpovědět
22.11.2014 15:38
Avatar
Ridge
Člen
Avatar
Odpovídá na youtubak777
Ridge:22.11.2014 17:26

Najdi a přečti si datasheet daného mikroprocesoru na stránce výrobce.

Odpovědět
22.11.2014 17:26
use brain.
Avatar
youtubak777
Člen
Avatar
Odpovídá na Ridge
youtubak777:22.11.2014 19:23

Už jsem si našel jiný tutoriál i s krystalem (je to 16MHz) :)

 
Odpovědět
22.11.2014 19:23
Avatar
youtubak777
Člen
Avatar
youtubak777:30.11.2014 15:52

Ahoj, dá se nějak na tento čip připojit I2C sběrnice jako je to u normálního Arduina ? Potřeboval bych připojit expander :) Nebo je nějaký jiný způsob jak připojit 15 tlačítek a tři diody ?

Editováno 30.11.2014 15:53
 
Odpovědět
30.11.2014 15:52
Avatar
Adam Ježek
Redaktor
Avatar
Odpovídá na youtubak777
Adam Ježek:30.11.2014 16:17

se samotnym sem to ještě nezkoušel, ale myslim, že by to mělo jít

Odpovědět
30.11.2014 16:17
Počkej chvíli, poradím se s křišťálovou koulí.
Avatar
youtubak777
Člen
Avatar
Odpovídá na Adam Ježek
youtubak777:30.11.2014 20:09

Díky za odpověď, teď mě ale napadlo že vlastně mohu 15 tlačítek připojit pouze pomocí 8mi nožiček pomocí zapojení které ukazuješ v návodu na klávesnici (jako klávesnici 5x3)

 
Odpovědět
30.11.2014 20:09
Avatar
Otakar Matěj:31.3.2015 10:48

Stabilizítor doporučuji mírně chladit a dát blokovací kondenzátory - stačí 1OOnF na vstup i výstup. Škoda, že autor se již nevěnuje těmto stránkám, jsou nesmírně užitečné a asi nejlepší. Jsou i jiné, ale tyto jsou prostě nej. Měl bych jinak desítky dotazů :(
jinak je tu uveden odkaz na GME, ale tam jsou bohužel téměř nejdražší, většinu součástek i věcí lze koupit jinde i o více jak 50% levněji.

Editováno 31.3.2015 10:49
 
Odpovědět
31.3.2015 10:48
Avatar
Otakar Matěj:31.3.2015 10:59

Vhodné by bylo pokračovat lekcí další vzájemné komunikace mezi dvěma arduiny. Já třeba pracuji na zařízení, které vyžaduje 2 procesy a dva procsory a někde jsem četl, že po vzájemné komunikaci a přenosu dat po RX se arduino restartuje. Nevím, co je na tom pravdy.

 
Odpovědět
31.3.2015 10:59
Avatar
Adam Ježek
Redaktor
Avatar
Odpovídá na Otakar Matěj
Adam Ježek:31.3.2015 11:01

snaží se věnovat, jen neni čas, články sou rozepsané, snad brzo budou další

Odpovědět
31.3.2015 11:01
Počkej chvíli, poradím se s křišťálovou koulí.
Avatar
Otakar Matěj:2.4.2015 11:28

Neopomeňme také super maličké Atmely : ATtiny 45 a 85
Na jednoduché věci, jako řízení motorků či jiné naprosto postačuje. Já bych ho uživil pro řízení impulsů-ale nevím jak z něho pak dostávat data, která buddou v něm uložena. :(

 
Odpovědět
2.4.2015 11:28
Avatar
Jirka Vavřík:21.5.2015 17:29

Článek je moc pěkný, ještě bych ale měl jeden dotaz:
Bude fungovat sériová komunikace přes toto?

http://www.aliexpress.com/…2031703.html

popřípadě jenom pomocí tohoto čipu?

http://www.gme.cz/…p16-p329-036

Díky za odpovědi ;)

Odpovědět
21.5.2015 17:29
Inteligentní nemá čas si pamatovat, inteligentní musí vymýšlet.
Avatar
Adam Ježek
Redaktor
Avatar
Odpovídá na Jirka Vavřík
Adam Ježek:21.5.2015 17:32

To druhé by mělo (jestli ti jde o to připojit Arduino k RS232), MAX232 jsem jednou použil a fungoval, jenom se k němu musej připojit nějaký kapacitory. To první by mělo být ten čip + kapacitory + konektor, takže vpodstatě to samé a fungovat by to mělo taky.

Odpovědět
21.5.2015 17:32
Počkej chvíli, poradím se s křišťálovou koulí.
Avatar
Odpovídá na Adam Ježek
Jirka Vavřík:21.5.2015 17:38

Díky za odpověď,
datasheet MAX232 jsem proletěl a o kondenzátorech jsem tam něco četl, takže s tím počítám.
Nakonec tedy zvolím druhou variantu :-)

Odpovědět
21.5.2015 17:38
Inteligentní nemá čas si pamatovat, inteligentní musí vymýšlet.
Avatar
CZkiniCZ
Člen
Avatar
CZkiniCZ:1.6.2015 20:09

Je možné použít toto řešení i na jiné čipy, nebo pouze na čipy, které používá Arduino?

Odpovědět
1.6.2015 20:09
Age of the geek.
Avatar
Odpovídá na CZkiniCZ
Neaktivní uživatel:1.6.2015 20:10

Ano, musíš pouze sehnat devicefile pro daný čip, zkus pogooglit pro daný čip.

Odpovědět
1.6.2015 20:10
Neaktivní uživatelský účet
Avatar
Neaktivní uživatel:13.9.2015 16:33

Výborný návod, velké díky za něj. Ten soubor boards.txt se ale musí (alespoň u mne) umístit ještě do podsložky AVR. Jinak bude IDE hlásit po spuštění spoustu chyb. Chtěl bych se ale zeptat - mám atmega328p koupený už s bootloaderem, mohu ho pomocí výše uvedené propojení přes UNO smazat a nahrát si do Atmega328p svůj program bez bootloaderu? A jde později případně bootloader opět nahrát? Jde mi o to, abych mohl atmega328p nahrávat přes UNO stejně, jako attiny85, čili používat pro nahrávání UNO jako ISP, abych nemusel používat převodník USB-UART (i když s ním je to asi pohodlnější).

Odpovědět
13.9.2015 16:33
Neaktivní uživatelský účet
Avatar
Adam Ježek
Redaktor
Avatar
Odpovídá na Neaktivní uživatel
Adam Ježek:13.9.2015 17:44

Jo, to de taky, rozklikneš File a pod upload je ještě upload using programmer. Arduino zůstává zapojený stejně jako při vypalování bootloaderu.

Odpovědět
13.9.2015 17:44
Počkej chvíli, poradím se s křišťálovou koulí.
Avatar
Michal Žůrek - misaz:13.9.2015 18:04

ATMega má 28 nožiček. Ty nejsou popsané ...

zatím jsem neviděl čip, kde by byli popsané nožičky.... Na to existuje datasheet.

 
Odpovědět
13.9.2015 18:04
Avatar
Adam Ježek
Redaktor
Avatar
Odpovídá na Michal Žůrek - misaz
Adam Ježek:13.9.2015 18:13

Hele, tohle je pro začátečníky, tak nerej, když zmiňuju něco, co zdatnějším uživatelům je naprosto jasné. :P

Odpovědět
13.9.2015 18:13
Počkej chvíli, poradím se s křišťálovou koulí.
Avatar
Odpovídá na Adam Ježek
Michal Žůrek - misaz:13.9.2015 18:57

Jasně, ale podle mě by I začátečníci myli vědět, že existuje datasheet a je to na 3 straně....

 
Odpovědět
13.9.2015 18:57
Avatar
Adam Ježek
Redaktor
Avatar
Odpovídá na Michal Žůrek - misaz
Adam Ježek:13.9.2015 19:30

Arduino je navržené tak, aby lidi (aspoň zezačátku) ušetřilo od datasheetů. Dost často to sou dokumenty o desítkách stránek, kde půl hodiny hledáš jedno číslo.

Odpovědět
13.9.2015 19:30
Počkej chvíli, poradím se s křišťálovou koulí.
Avatar
Ondra Gottwald:17.9.2015 13:39

Adame, píšeš
cituji:"Někdy se nahrávání nepovede napoprvé, někdy trvá déle a někdy se odmítá sketch nahrát i po několikátém pokusu. Nevím, v čem je problém, ale když se sketch odmítá nahrát, tak znovu vypálím do čipu bootloader a pak jde vše zas nějakou dobu bez problémů."

Problém není v bootloaderu, ale v zapojení. Chybí tam signál reset. Pokud používáš desku Arduina jako programátor, tak je potřeba propojit kolík RESET arduina s kolíkem RST na "ATMega328 on a breadboard (8MHz internal clock)". Pokud to programuješ převodníkem, tak o reset se postará signál DTR. Bohužel, ne všechny převodníky mají signál DTR vyvedený.

 
Odpovědět
17.9.2015 13:39
Avatar
Odpovídá na Ondra Gottwald
Ondra Gottwald:17.9.2015 16:11

Zapojení s Arduinem bez čipu

 
Odpovědět
17.9.2015 16:11
Avatar
Ondra Gottwald:22.9.2015 16:19

Tady musí být Rx/Tx křížem.

 
Odpovědět
22.9.2015 16:19
Avatar
Tomáš N.
Člen
Avatar
Tomáš N.:26.9.2015 11:13

Mě to hází error při nahrávání programu do čipu :(

ERROR:

avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x1c

Jestli někdo ví co s tím tak napište děkuju.

 
Odpovědět
26.9.2015 11:13
Avatar
Neaktivní uživatel:27.9.2015 15:48

Dortíku, více informací. Jaký čip ti nejde nahrát, jakým způsobem ho nahráváš (namísto čipu UNA, pomocí UNO, nebo pomocí převodníku USB? Má čip bootloader?), třeba i přidej schéma a fotky. Právě jsem po dni marného snažení rozběhal nahrávání atmega328 přes USB převodník včetně předchozího vypalování bootloaderu pomocí UNO a čipu na breadboardu, takže vím, jaké je to často martýrium a zoufalství. Nakonec jsem chybu našel ve špatně zapojeném tlačítku u pinu Reset (vím, nemuselo tam být, ale bylo a trvale přizemňovalo Reset). Nicméně je dobře, že tam bylo, skvěle mne to vyškolilo. :-)

Odpovědět
27.9.2015 15:48
Neaktivní uživatelský účet
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Tomáš N.
Člen
Avatar
Odpovídá na Neaktivní uživatel
Tomáš N.:27.9.2015 19:19

Vše jsem dělal podle tutoriálu, programoval jsem ATmega328P-PU, který jsem si koupil na gme bez nahraného bootloaderu.

MŮJ POSTUP:

  1. Přidal jsem si do Arduino IDE čip ATmega328
  2. Nahrál jsem do Arduina ArduinoISP
  3. Připojil jsem čip podle obrázku jak připojit čip do Arduina UNA
  4. V Tools->Boards jsem zvolil ATmega328 a v Tools -> Programmer jsem zvolil Arduino as ISP
  5. Dal jsem burn bootloader a po 9 sekundách bylo hotovo už to mě přišlo divný, když v článku bylo napsáno několik minut.
  6. Vyndal jsem čip z Arduina a propojil TX na TX | RX na RX | 5V na +V
  7. Nahrál jsem kód a najednou error:
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x1c

To je vše jestli budeš mít nějakou radu tak budu rád.
Předem všem děkuji za odpověď ;)

 
Odpovědět
27.9.2015 19:19
Avatar
Odpovídá na Tomáš N.
Neaktivní uživatel:28.9.2015 4:47

Jak to tak čtu, máš s čipem propojenou i zem? Píše to chybu synchronizace Já zatím vždy programoval bootloader do atmega328 s ext.krystalem 16MHz, takže jsem volil v IDE volbu "Arduino Duemilanove or Diecimila". Nahrávání bootloaderu mi ale trvalo taky krátce, zhruba těch 10 sekund, nakonec to napsalo konec nahrávání, tak doufám, že to bylo OK, že se před přehráním bootloaderu nemusí provádět vysokonapěťové mazání. Pro nahrání programu do atmega328 jsem nevyndaval čip z UNA, ale na breadboardu postavil základ a připojil k němu "jednodolarový" převodník z Číny USB na UART. Takže jsem to dělal trochu jinak, než ty. Měl bych ale otázku - využiješ nahraný bootloader? Stará se o to, abys mohl čip programovat přes UART (skrze signály TxD a RxD). Nebylo by pro tebe jednodušší nahrát pomocí UNA do atmega328 přímo program?

Odpovědět
28.9.2015 4:47
Neaktivní uživatelský účet
Avatar
Tomáš N.
Člen
Avatar
Odpovídá na Neaktivní uživatel
Tomáš N.:28.9.2015 16:14

No jsem začátečník, nejsem žádnej borec. Ale ta tvoje poslední věta:
Nebylo by pro tebe jednodušší nahrát pomocí UNA do atmega328 přímo program?
Bohužel ale nevím jak. Zkoušel jsem všechno....

 
Odpovědět
28.9.2015 16:14
Avatar
Odpovídá na Tomáš N.
Jirka Vavřík:28.9.2015 16:25

TX a RX zapojíš opačně, (TX--RX a RX--TX), protože:
TX == odesílání dat, RX == příjem dat.

Takže z TX, kde se data odesílají, musí vždy jít signál do RX, kde se data přijímají.

Odpovědět
28.9.2015 16:25
Inteligentní nemá čas si pamatovat, inteligentní musí vymýšlet.
Avatar
Tomáš N.
Člen
Avatar
Odpovídá na Jirka Vavřík
Tomáš N.:28.9.2015 17:36

Tohle to napíše při nahrávání:

avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x1c
 
Odpovědět
28.9.2015 17:36
Avatar
Odpovídá na Jirka Vavřík
Neaktivní uživatel:28.9.2015 17:37

Jirko, pokud programuješ atmega pomocí UNA bez čipu, tak se signály neprohazují. Tímto způsobem využíváš převodník USB-UART v UNU a je to to stejné, jako bys namísto originálního "UNO čipu" vložil svůj.

Odpovědět
28.9.2015 17:37
Neaktivní uživatelský účet
Avatar
Odpovídá na Tomáš N.
Neaktivní uživatel:28.9.2015 17:46

Co znamená kód 1C netuším, ale jde o to, že počítač nekomunikuje s atmega čipem. Důvodů může být spousta. V tomto případě bych to viděl na špatně nahraný bootloader, ale je to jen odhad. Mi jde spíše o to, že bootloader v tvém případě možná není potřeba. Zkus do atmega328 pomocí UNA (dle zapojení pro nahrávání bootloaderu) nahrát program a nikoliv bootloader. Pokud se ti to podaří, program se hned rozběhne, netřeba ani měnit zapojení. Ale jsem v tomto začátečník, rád se nechám poučit někým znalým, pokud radím špatně. Také můžeš zkusit vložit do UNA svůj čip namísto originálního. Pokud je bootloader nahraný správně, budeš s UNEM moci normálně pracovat.

Odpovědět
28.9.2015 17:46
Neaktivní uživatelský účet
Avatar
Odpovídá na Tomáš N.
Jirka Vavřík:28.9.2015 17:54

Aha, tak to asi budeš potřebovat připojit z UNA do ATMegy resetovací signál, nedávno se to tu řešilo:

http://www.itnetwork.cz/…7782_image_0

Já mám ATMega připojený přes RS232 (diskuze výše) a před nahráním musím manuálně mačkat tlačítko, připojené na resetovací pin, jinak mi to taky nejde.

Neaktivní uživatel Pardon, nějak jsem vypustil, že Dortík používá připojení přes UNO.

Odpovědět
28.9.2015 17:54
Inteligentní nemá čas si pamatovat, inteligentní musí vymýšlet.
Avatar
kelley
Člen
Avatar
kelley:29.9.2015 7:34

Nezaručuju, že je to stejný problém, ale psal jsem to na už na e-bastlírnu a tady by se to taky mohlo hodit: Pokud se vám podařilo koupit na dx.com nebo na ebay Arduino s falešným FT232 a divíte se jako já, proč to na některém počítači funguje a na jiném obdržíte "slavnou" hlášku: "avrdude: stk500_getsync() attempt X of X: not in sync: resp=0x00" - klíč je ve verzi ovladače FTDI. Funguje mi to s verzí ovladače FTDI 2.8.24.0 (viz Ovládací panely - Správce zařízení - Porty - Verze ovladače), starší by měly taky funovat. Novější verze ovladače už tyhle fake čipy nepodporuje, takže ji na webu FTDI nenajdete a pokud se budete držet oficiálního návodu pro Arduino a nainstalujete ovladače nejnovější, tak neuspějete.
Hledejte v nezávislých zdrojích (uloz.to "CDM20824_Setup­.exe"). Platí pro Windows XP i Windows 7, Linuxu se to netýká, pokud vím.

 
Odpovědět
29.9.2015 7:34
Avatar
Odpovídá na kelley
Neaktivní uživatel:29.9.2015 16:18

Ohledně tohoto doporučuji koupit převodník s čipem CP2102 a s vyvedeným DTR signálem (jsou šestipinové). Ovladače si Windows nainstaluje samo (funguje i ve Win10) a vše perfektně funguje.

Odpovědět
29.9.2015 16:18
Neaktivní uživatelský účet
Avatar
Tomáš N.
Člen
Avatar
Tomáš N.:29.9.2015 16:46

Děkuju všem za rady ale ať skouším vše tak nic.... Pokaždé nějaká chyba nejčastěji:

avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x1c
 
Odpovědět
29.9.2015 16:46
Avatar
Odpovídá na Tomáš N.
Neaktivní uživatel:29.9.2015 17:15

A nepomohlo ani když jsi svůj čip vyměnil za originální v UNU?

Odpovědět
29.9.2015 17:15
Neaktivní uživatelský účet
Avatar
Tomáš N.
Člen
Avatar
Odpovídá na Neaktivní uživatel
Tomáš N.:1.10.2015 17:16

Zkoušel jsem dát koupený čip do Arduina a vše v pořádku fungovalo.

 
Odpovědět
1.10.2015 17:16
Avatar
Neaktivní uživatel:1.10.2015 17:39

Takže si to shrňme. V UNU tvůj čip funguje, ale pokud je UNO bez čipu a svůj čip máš s prázdnou paticí propojený dráty, tak do něj nejde nahrávat, je to tak? Takže buď máš propojených málo drátů (podle mne nutné jsou Tx, Rx, Ucc, GND a Reset - nezapomeň na to, že čip má dvojí napájení, piny 7,8 a 20, 22). Pak zbývá jediné, krystal. Máš ve svém čipu určitě bootloader s pojistkami nastavený tak, že podporuje vnitřních 8MHz? Protože pokud ne, budeš muset dát k čipu na vývojové desce i 16MHz krystal s kondenzátory. Anebo piny 9 a 10 propojit na čip z patice (ale nejsem si jistý, jestli tak dlouhé dráty od krystalu mohou vůbec být).

Odpovědět
1.10.2015 17:39
Neaktivní uživatelský účet
Avatar
danik.devbook:18.12.2015 17:57

Při nahrávání mi to napíše, že chybí konfigurační parametr 'upload.tool'.

 
Odpovědět
18.12.2015 17:57
Avatar
Jaroslav Fojtík:12.1.2016 7:43

Ahoj
dovoluji požádat o pomoc. Začínám s Arduinem UNO. Zakoupil jsem i samotné čipy ATMEGA328P-PU s bootloaderem. Měl jsem za to , že čip mohu pouze vrazit do desky UNO a bude fungovat, ale nefunguje. Zkoušel jse výše popsaný postup, ale zkončil jsem na tom, že se mi v tools neukázala nová deska i když jsem použil přesně popsaný postup. Mám IDE 1.6.7 a píše mi že ve složce hardware je chyba :

ARNING: Error loading hardware folder C:\Users\jarda_NB\Do­cuments\Ardui­no\hardware\Bre­adboard
V adresáři Breadboard byla nalezena neplatná definice hardware.

Díky za jakoukoliv pomoc

 
Odpovědět
12.1.2016 7:43
Avatar
1mlrek11
Člen
Avatar
1mlrek11:20.1.2016 1:51

Dobrý Večer mohu vas poprosit o pomoc mam aduino 2560 a při zavadění bootloaderu na chyp mě hlasí arduini tento problem avrdude: Error: Could not find USBtiny device (0x2341/0x49) moc díky za pomoc

 
Odpovědět
20.1.2016 1:51
Avatar
Adam Ježek
Redaktor
Avatar
Odpovídá na 1mlrek11
Adam Ježek:20.1.2016 7:52

A mate zvoleny spravny typ desky, port a nastaveno arduino as ISP?

Odpovědět
20.1.2016 7:52
Počkej chvíli, poradím se s křišťálovou koulí.
Avatar
1mlrek11
Člen
Avatar
1mlrek11:24.1.2016 18:31

ano mám

 
Odpovědět
24.1.2016 18:31
Avatar
1mlrek11
Člen
Avatar
1mlrek11:24.1.2016 18:32

ale v mega 2560není uveden čip at mega 328

 
Odpovědět
24.1.2016 18:32
Avatar
ostrozan
Redaktor
Avatar
Odpovídá na 1mlrek11
ostrozan:24.1.2016 21:05

Nějak se v tom neorientuju - tak jaký máš vlastně chip? ATmega 2560,nebo ATmega 328? Je v nich totiž docela podstatný rozdíl.

 
Odpovědět
24.1.2016 21:05
Avatar
Odpovídá na ostrozan
Michal Žůrek - misaz:24.1.2016 22:29

tak se podívej na čip, je to na něm napsané.

 
Odpovědět
24.1.2016 22:29
Avatar
ostrozan
Redaktor
Avatar
Odpovídá na Michal Žůrek - misaz
ostrozan:24.1.2016 22:48

To asi nebylo na mně, že?

 
Odpovědět
24.1.2016 22:48
Avatar
1mlrek11
Člen
Avatar
1mlrek11:24.1.2016 22:52

na mega 2560je 16AU 1520 a arduino IDE tam u teto deseky nema čip 328 tak nevím jak ten bootloaderr nahrat

 
Odpovědět
24.1.2016 22:52
Avatar
1mlrek11
Člen
Avatar
1mlrek11:24.1.2016 22:53

tady další obrazek

 
Odpovědět
24.1.2016 22:53
Avatar
Adam Ježek
Redaktor
Avatar
Odpovídá na 1mlrek11
Adam Ježek:25.1.2016 7:02

Tutoriál je pro ATmega 328P, čip z Arduina UNA. 2560 ti s tím opravdu fungovat nebude.

Odpovědět
25.1.2016 7:02
Počkej chvíli, poradím se s křišťálovou koulí.
Avatar
Odpovídá na ostrozan
Michal Žůrek - misaz:25.1.2016 14:44

ne to bylo na autora dotazu.

 
Odpovědět
25.1.2016 14:44
Avatar
1mlrek11
Člen
Avatar
1mlrek11:25.1.2016 19:42

A sčím tedy bude fungovat

 
Odpovědět
25.1.2016 19:42
Avatar
Adam Ježek
Redaktor
Avatar
Odpovídá na 1mlrek11
Adam Ježek:25.1.2016 19:47

Překvapivě s čipem ATmega 328p, o kterém je tento tutoriál.

Odpovědět
25.1.2016 19:47
Počkej chvíli, poradím se s křišťálovou koulí.
Avatar
lelixus
Člen
Avatar
lelixus:13.6.2016 23:22

Zkoušel jsem podle návodu, abych využil vnitřní krystal a nejde to. V nabídce nemám možnost ATMega328 on a breadboard (8MHz internal clock), když tedy přidám externí krystal, tak se bootloader normálně nahraje. Jak v novým IDE nastavím, abych mohl použít vnitřní krystal ?

 
Odpovědět
13.6.2016 23:22
Avatar
karbos166
Člen
Avatar
karbos166:20.7.2016 0:29

Zdravím potřeboval bych poradit objednal jsem si na ebay samotné čipy udajně měli být s bootloaderem jen když ho hodím do desky ( Arduino uno) tak to chvíli něco dělá pak to vyhodí tohle

Projekt zabírá 2 276 bytů (7%)  úložného místa pro program. Maximum je 32 256 bytů.
Globální proměnné zabírají 236 bytů (11%)  dynamické paměti, 1 812 bytů zůstává pro lokální proměnné. Maximum je 2 048 bytů.
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xca
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xca
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xca
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0xca
Problém s přenosem dat na vývojovou desku (board). Na http://www.arduino.cc/en/Guide/Troubleshooting#upload naleznete další doporučení.
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0xca
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0xca
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xca
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0xca
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0xca
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xca

z čehož soudím že tam asi teda jako není bootloader jenže když to dělám podle návodu abych ho nahrál tak furt ten stejný problém už si vubec nevím rady byl bych rád za jakýkoliv nápad nebo zkušenost.

PS: odzkoušeno na 2 čipech od jiného "prodejce". A klasický minulý čip funguje jak má

 
Odpovědět
20.7.2016 0:29
Avatar
Vladimir Dubec:1.11.2017 19:31

Zdravim vas pani a prajem prijemny vecer,
niekde tu na tomto fore som sa docital ze pomocou arduina UNO sa da nahrat program do cipu aj bez bootloaderu. Presne tento pripad by som velmi surne potreboval. Potrebujem pomocou arduina UNO nahrat program do Atmegy8 s iternym oscilatorom 8MHz. Program mam odladeny a plne funkcny na Arduine UNO (A328), ale s oscilatorom 16MHz.... Ma s tym naozaje niekto nejake prakticke skusenosti??
Dakujem Vladimir

 
Odpovědět
1.11.2017 19:31
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 64 zpráv z 64.