USB -> serialTTL

jakvok
Příspěvky: 17
Registrován: 26 zář 2020, 15:07

USB -> serialTTL

Příspěvek od jakvok »

Ahoj,
před lety jsem si zprovoznil malou robotickou ruku ovládanou 4mi servy.
Serva jsou řízena přes <Pololu Micro Serial Servo Controller SSC> (http://www.snailshop.cz/rizeni-serv/676 ... mbled.html).
Kontrolér krmím bajty z PC přímo přes RS-232 pomocí programu v pythonu. Všechno dobře fungule i po letech.
Ale teď bych potřeboval komunikovat i z notebooku přes USB. Našel jsem doma převodník USB->serialTTL podobný tomuto: (http://www.snailshop.cz/usb/706-usbttl- ... -port.html) , ale starší. Nemá CTS a RTS, což nevadí.

To mi ale nefunguje a potřeboval bych poradit.

USB stranu převodníku jsem zapojil podle barev na ucvaklém usb kabelu.
Tx převodníku jsem zapojil na <logic-level serial input> v kontroléru (je jinde než vstup pro RS-232 úrovně.)
Rx převodníku na <logic-level serial output> kontroléru. To by nemuselo být.
Zem je jasná.

Podle stránek výrobce čipu převodníku FTDI (https://www.ftdichip.com/Drivers/VCP.htm) , by se měl převodník objevit jako další COM port a aplikace by k němu měly přistupovat stejným způsobem. Ovladače už jsou obsaženy v linuxovém jádře nad 3.0.0-19, takže bych neměl nic instalovat.
Po připojení k PC se mi převodník objeví jako /dev/ttyUSB0, takže systém ho zná.
Program jsem ponechal stejný až na jméno portu.

Po zapnutí napájení serv i kontroléru se na kontroléru rozsvítí žlutá LED a čeká na komunikaci. Po pokusu o komunikaci z PC sebou cuknou serva, rozbliká se červená LED, žlutá svítí a to je vše.
Pravděpodobně chybný formát na vstupu. Kontrolér rozpozná baudrate automaticky, očekává formát 8N1. Posílám mu 8N1 na 2400Bd, na RS-232 to funguje bezchybně.

Provedl jsem ještě pokus se starším převodníkem RS-232->TTL, podobným tomuto: (https://papouch.com/vestavny-prevodnik-rs232-ttl-p2047/) , který jsem připojil stejným způsobem na TTL vstupy kontroléru a funguje to pěkně.

Nejsem odborník, zabývám se těmito věcmi jen občas pro zábavu.
Co jsem mohl zanedbat při komunikaci přes ten USB->serialTTL převodník?

Díky za radu.
MartinL
Příspěvky: 252
Registrován: 24 úno 2013, 14:13
Kontaktovat uživatele:

Re: USB -> serialTTL

Příspěvek od MartinL »

Dle popisu, když to funguje s převodníkem RS232 - TLL, by to mělo fungovat i s převodníkem USB - serialTLL. Zkusil bych jestli je funkční ten převodník USB - serialTTL. Propojit na něm RX - TX a v nějakém terminálu zkusit posílat nějaké znaky, měly by se ihned přijímat. Pokud toto nebude fungovat, je problém v převodníku nebo ovladači.
jakvok
Příspěvky: 17
Registrován: 26 zář 2020, 15:07

Re: USB -> serialTTL

Příspěvek od jakvok »

MartinL píše: 26 zář 2020, 19:00 Dle popisu, když to funguje s převodníkem RS232 - TLL, by to mělo fungovat i s převodníkem USB - serialTLL. Zkusil bych jestli je funkční ten převodník USB - serialTTL. Propojit na něm RX - TX a v nějakém terminálu zkusit posílat nějaké znaky, měly by se ihned přijímat. Pokud toto nebude fungovat, je problém v převodníku nebo ovladači.
Zkusil jsem tu smyčku a číst z portu pomocí putty.
Přes převodník USB->TTL to nechodí, pomalu se načítá jen nějaký šum.
usb0.png
usb0.png (6.98 KiB) Zobrazeno 4430 x
Na rs-232 přes loopback konektor to jde dobře.
S0.png
S0.png (6.5 KiB) Zobrazeno 4430 x
Zkoušel jsem to na dvou strojích, je to stejné.
Asi to bude chtít vyzkoušet jiný převodník.
DavidO
Příspěvky: 1133
Registrován: 01 kvě 2013, 21:27

Re: USB -> serialTTL

Příspěvek od DavidO »

Nepíšeš konkrétní označení čipu převodníku, tak můžeme jen hádat.
Nejsou ta data invertovaná?
Zkusil jsi i jiné Baudrate?
Nikoho plánovaně neurážím. Jestli se Vám nelíbí co píšu, tak to nečtěte. A ostatně, třeba za to nemůžu - Researchers believe that dark humor can be a significant symptom of dementia.
jakvok
Příspěvky: 17
Registrován: 26 zář 2020, 15:07

Re: USB -> serialTTL

Příspěvek od jakvok »

Na čipu je napsáno:
FTDI
1220-C
G0050411
FT232-RL
Podobný převodník je na odkazu v prvním příspěvku. Ten můj jsem koupil tamtéž pár let nazpět.

Baudrate jsem zkusil několik.

V návodu ke kontroléru píšou, že na TTL vstupu chce non-inverted signál.
A taky se tam píše, že na rs-232 vstup je možné přivést invertovaný vstup jakýchkoli úrovní.
Takže jsem tam připojil výstup z převodníku a nic se nedělo. Při pokusu o komunikaci na vstupu TTL úrovní alespoň serva cuknou a rozbliká se červená led.

DSC_1245.jpeg
DSC_1242.jpeg
Screenshot_20200927_151525.png
jakvok
Příspěvky: 17
Registrován: 26 zář 2020, 15:07

Re: USB -> serialTTL

Příspěvek od jakvok »

Kdybych mezi Tx a zem zapojil LEDku (s odporem) měla by při konunikaci blikat, když jsou data non-inverted?
Uživatelský avatar
fulda
Příspěvky: 1359
Registrován: 04 led 2016, 17:18

Re: USB -> serialTTL

Příspěvek od fulda »

Jenom tak pro zajímavost - Rx a Tx jsi zkoušel na chvilku prohodit?

Předtím jsi to provozoval z portu RS232 přímo, nebo z převodníku RS232 <-> TTL ???

Oni především požadují, aby klid bylo +5V, takže pokud připojíš ledku mezi Tx a GND (s odporem alespoň 1k), tak má většinu času svítit. To samé pro Rx a GND.
Za pravopisné chyby v této zprávě může moje učitelka češtiny.
jakvok
Příspěvky: 17
Registrován: 26 zář 2020, 15:07

Re: USB -> serialTTL

Příspěvek od jakvok »

Tak jsem si pohrál s tou ledkou.

Nejdřív jsem si ověřil jak to vypadá, když to funguje. Vzal jsem převodník RS-232 na TTL a mezi Tx a GND jsem zapojil LEDku s odporem paralelně k servokontroléru. Ihned po otevření portu v programu se rozsvítila a při přenosu dat poblikávala. To by odpovídalo non-inverted výstupu z převodníku, kdy je idle stav a log1 +5V. To kontrolér na TTL vstupu vyžaduje a pak funguje.

Stejně jsem to zapojil u USB->serialTTL převodníku. Dioda se po ustavení spojení rozsvítila a při komunikaci poblikávala. Odezva od servokontroléru však byla stejná: škubnutí servy a rozblikání červené diody.
Z toho usuzuju, že převodník data posílá a nejsou invertovaná.

Každopádně parametry spojení jako Baudrate, parita, stopbity jsou dané definicí v programu, ten převodník by je nijak neměl měnit, ne?

Snad tedy ten ovladač? Až se dostanu k win10, tak to zkusím tam.
jakvok
Příspěvky: 17
Registrován: 26 zář 2020, 15:07

Re: USB -> serialTTL

Příspěvek od jakvok »

fulda píše: 27 zář 2020, 20:37 Jenom tak pro zajímavost - Rx a Tx jsi zkoušel na chvilku prohodit?

Předtím jsi to provozoval z portu RS232 přímo, nebo z převodníku RS232 <-> TTL ???

Oni především požadují, aby klid bylo +5V, takže pokud připojíš ledku mezi Tx a GND (s odporem alespoň 1k), tak má většinu času svítit. To samé pro Rx a GND.
Prohodit jsem to zkoušel

Obojí, přímo RS-232 na příslušný vstup, i RS-232->TTL na příslušný vstup
jakvok
Příspěvky: 17
Registrován: 26 zář 2020, 15:07

Re: USB -> serialTTL

Příspěvek od jakvok »

Teď jsem ještě vyzkoušel proměřit napětí Tx proti GND na převodníku. Dokud nepřipojím servokontrolér, tak je 0V. Bez připojeného kontroléru tím pádem ani nesvítí LEDka mezi Tx a GND, i když do převodníku posílám data.
Jakmile připojím kontrolér, objeví se 1.83V a při komunikaci se naměří lehce nižší. Měřím to přímo na desce
Mezi Rx a zemí je 1.8V.
Odpovědět