USB "összeakadás"

Processing/Wiring (illetve C) nyelvű programozási fogások, tippek. (AVR-Duino, Arduino, EthDuino, Diecimila, Severino, Nano, LilyPad)
Válasz küldése
airween
Újonc
Újonc
Hozzászólások: 8
Csatlakozott: 2015. április 7. kedd, 22:10

USB "összeakadás"

Hozzászólás Szerző: airween »

Sziasztok,

egy Arduino Uno boldog tulajdonosa vagyok, pár napja kezdtem el a programozását. A PC-n Linux fut. A gépen van egy USB-soros átalakító, amin egy rövidhullámú amatőr rádió van, ezen a porton keresztül vezérlem a PTT-t és távíró esetében a billentyűzést. A PTT a soros port RTS-e, a CW a DTR.

Az a gondom, hogy ha be van kapcsolva a RIG, és ilyenkor csatlakoztatom az Arduinot, akkor a másik USB port RTS-e átbillen magas jelszintre, és meghúz a PTT. Ha nincs bekapcsolva a RIG, és előtte csatlakoztatom az Arduinot, akkor bekapcsoláskor egyből TX-en van a RIG. Ha elindítom az Arduino IDE-t, akkor is meghúz a PTT. Ha feltöltök egy sketch-et, szintén. Ha elindítom a soros port monitort az IDE-n belül, szintén. A Linuxon fut egy "cwdaemon" nevü progi, ami a PTT-t és a CW-t vezérli, ha ezt újraindítom, a PTT elenged. Hogy lehetne ezt megszüntetni, ill mi lehet az oka ennek? Az IDE-ben be van állítva az USB port (egyébként gondolom nem tudnám feltölteni a sketch-et).

A másik kérdés: összeraktam egy kis panelra 3 opto csatolót, amit az Arduino D2/D3/D4 kimenetei vezérelnek. Írtam egy programot Arduinora, ami az amatőr rádiót FSK módban modulálja. A D2 az FSK, a D3 a PTT, a D4 majd a CW lesz, később. (Ha a PTT és az FSK optók nincsenek rákötve a RIG-re, akkor is csinálja a fent említett USB-s "összeakadást".) Tegnap elkészült a sketch, feltöltöttem, próbáltam, láttam hogy működött, így tudtam aludni :). Ma ismét kipróbáltam, immár "élesben", és a progi nem modulálta az adót. Ismét feltöltöttem a sketch-et, semmi változás. Ha elindítom a soros port monitorát, amire egyáltalán nem jön semmi az Arduinótól, akkor működik, egyébként nem - miért kell neki a soros monitor? (A soros portról olvasom a szöveget, de csak egy Serial.available() van, és egy Serial.read(), "visszirány" nincs.)

Köszönöm a segítséget,


a.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Re: USB "összeakadás"

Hozzászólás Szerző: Robert »

A reset jumpert vágd át. Vagy a Crst / Creset kondit forraszd ki.
Sorosport megnyitása: DTR láb szintváltozása (ez megy aRESETre)

Sorosport: Tx és Rx részből áll. ja és ezen át töltöd fel a programodat is! A bootloaderen át....
airween
Újonc
Újonc
Hozzászólások: 8
Csatlakozott: 2015. április 7. kedd, 22:10

Re: USB "összeakadás"

Hozzászólás Szerző: airween »

Kedves Róbert,

köszönöm válaszod,
Robert írta:A reset jumpert vágd át.
Ezt nem igazán értem. Miért kell átvágni? Nem egyszerűbb lehúzni (ha fent van), vagy rátenni (ha nincs fent)?
Robert írta:Vagy a Crst / Creset kondit forraszd ki.
Inkább nem forrasztanék ott semmit :)
Robert írta:Sorosport megnyitása: DTR láb szintváltozása (ez megy aRESETre)
Ezt értem, de ha az egyik soros porton akar kommunikálni a rendszer, akkor mindegyik port DTR-ét felhúzza?
Robert írta:Sorosport: Tx és Rx részből áll. ja és ezen át töltöd fel a programodat is! A bootloaderen át....
Ezt tudom, hogy két részből áll, de miért kell a soros porti monitort elindítani ahhoz, hogy tudjon olvasni a rendszerből. Linux alatt így írok a soros portra:

Kód: Egész kijelölése

echo "CQ CQ ..." > /dev/ttyUSB1
Kipróbálom majd úgy is, hogy megnyitom a portot, és "rendes" soros porti kommunikációval küldöm be az adatot.

Köszi,
a.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Re: USB "összeakadás"

Hozzászólás Szerző: Robert »

Átvágás: gyárilag egy forraszjumper, ami össze van kötve, hogy autoreset meglegyen a bootloaderes feltöltéshez.

Ha a sorosportot megnyitod: az lehet akár írás, akár olvasás.
A megnyitáskor fut le a DTR jelszintváltozás.
Ha többvezetékes kézfogásos kapcsolat van, akkor előbb az eszközlétezésnek, majd a kommunikációkészségnek kell visszajelezve lennie. Csak utáa indul meg az adatáramlás.
airween
Újonc
Újonc
Hozzászólások: 8
Csatlakozott: 2015. április 7. kedd, 22:10

Re: USB "összeakadás"

Hozzászólás Szerző: airween »

Csak érdekesség képp: Linux alatt van egy ún. "udev" eszköz. Ennek segítségével egy tetszőleges perifériát akármilyen csatolóval csatlakoztatva minden esetben ugyanolyan névvel lehet elérni. Az (eddig :)) egyetlen Arduino lapkára beállítottam, hogy csatlakoztatás után /dev/ardu0 néven lehessen elérni, és ezzel úgy néz ki megszüntek az összeakadások.
Válasz küldése