Portál AbcLinuxu, 14. května 2025 00:36

Dotaz: Arduino Uno, sériový port

29.12.2016 22:28 František
Arduino Uno, sériový port
Přečteno: 641×
Odpovědět | Admin
Je možné v programu pro Arduino Uno používat sériový port? Když do funkce setup() přidám řádku Serial.begin(9600); a pokusím se naprogramovat, tak mi to selže po verifikaci s chybou avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51. Pokud před Serial.begin(9600); dám ještě delay(100);, tak programování neselže, ale když pak dále vypisuji něco pomocí Serial.println(), tak se to vůbec neukazuje v sériové konzoli, jako kdyby to vůbec nekomunikovalo. Je ta sériová linka vyhrazená jen pro programování? V kódu bootloaderu vidím, že to používá funkce getchr(), putchr() při komunikaci mezi arduinem (což je sériová linka?).
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

29.12.2016 23:20 NN
Rozbalit Rozbalit vše Re: Arduino Uno, sériový port
Odpovědět | | Sbalit | Link | Blokovat | Admin
Chyba v komunikaci. Muze to byt spatne zvoleny board v IDE, nastaveny COM port, baudrate, praskly kabel, zapojeni RX/TX, FTDI ovladac.. Muzes detailneji popsast situaci(OS,HW,zapojeni,SW..)?
29.12.2016 23:56 František
Rozbalit Rozbalit vše Re: Arduino Uno, sériový port
To je nastavené dobře. Problém dělá ta inicializace sériové linky, řádek Serial.begin(9600);. Pokud ho zakomentuju, nebo před něj dám onen delay(100), tak programování se zdá být ok (nebo to alespoň zahlásí arduino). Jakoby se ta sériová linka tloukla právě s tím, jak funguje bootloader (který podle mě kominukuje přes tu samou linku pro naprogramování procesoru, je to tak?)
Jendа avatar 30.12.2016 01:33 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Arduino Uno, sériový port
Odpovědět | | Sbalit | Link | Blokovat | Admin
Plácni sem verbose výpis nahrávání a hlavně parametry avrdude. Případně to spusť z terminálu stylem
/usr/share/arduino/hardware/tools/avrdude -C/usr/share/arduino/hardware/tools/avrdude.conf -v -v -v -v -patmega328p -carduino -P/dev/ttyUSB0 -b115200 -D -Uflash:w:/tmp/build3009144612131232095.tmp/Blink.cpp.hex:i 
(tj. bez parametru -V)
30.12.2016 22:23 Technik
Rozbalit Rozbalit vše Re: Arduino Uno, sériový port
Odpovědět | | Sbalit | Link | Blokovat | Admin
A zkoušel jste Examples - Communication - ASCIITable ? Vypadá to, že opravdu máte špatně nastavený typ desky nebo problém v komunikaci. UNO používá pro komunikaci s PC samostatný čip ATmega 8u2 nebo 16u2. Tady píšou, že pro starší desky je třeba nahrát nový firmware tohoto čipu a jak postupovat:

http://www.arduino.org/learning/tutorials/hackings/updating-the-atmega-8u2-and-16u2-on-an-uno-or-mega-using-dfu

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.