Autor Téma: RS-232 komunikace s aruinem  (Přečteno 2972 krát)

Offline tomajstr

  • Nováček
  • *
  • Příspěvků: 4
    • Zobrazit profil
RS-232 komunikace s aruinem
« kdy: 27. 09. 2015, 14:18:30 »
Dobrý den, nevíte jak nastavit sériový port abych z něj mohl posílat data do arduina? mám převodník z RS-232 na TTL a má to snahu i něco posílat, bohužel ale text
Kód: [Vybrat]
"hello, world!" vypadá jako
Kód: [Vybrat]
©::
:ű‹!'7˝ĺë
nevíte někdo kde je chyba? přenosová rychlost je stejná 9600, počet bitů je 8 a parita je vypnutá.

Offline Roman Horník

  • Hlavní moderátor
  • Aktivní­ uživatel
  • *****
  • Příspěvků: 1.326
    • Zobrazit profil
  • Jabber: roman.hornik@jabber.cz
Re:RS-232 komunikace s aruinem
« Odpověď #1 kdy: 27. 09. 2015, 16:06:58 »
No, nevím, jestli tady někdo Arduino používá, spíš bych se obrátil na chlapy v Bastlírně.
Ne, že bych neelektrikařil, ale dávám přednost největší možný jednoduchosti zařízení, čili blikátko si dokážu postavit z 1 tranzistoru, v případě potřeby softwarovýho řízení o to požádám paralelní port (s ním mám ovšem mnohem větší oumysle, bude točit krokáčema). Každopádně Arduino nepotřebuju, ale vím, že leckdo to tam používá, takže ke správnýmu nastavení sériáku se dostaneš snáz a mnohem dřív tam, než tady. A je jedno, na jakým systému se sériová komunikace nastavuje, tomu devítihlavňovýmu kanónu je to šumák. Nicméně linuxáků je v případě nouze na baštírně dost.
Tak hodně štěstí.

P. S.:Vidím, že už to tam máš, ALE ještě můžeš zkusit uložit výstup do souboru a kouknout se na to hexadecimálním editorem. Možná se tam třeba používá ňáká parita: Nebo co stopbity, handshake a podobný oplzlosti? Je těch bitů vážně 8? Co 7, nebo 9?

No, pokud to půjde, zkusil bych tohle: tímhle se vytvoří speciální soubor obsahující posloupnost šestnáctkovejch znaků od andulky po žížalu, čili od 0x00 po 0xFF:
for A in {0..9} {A..F}; do for B in {0..9} {A..F}; do echo -ne "\x$A$B" >> 0x00-0xFF; done; done
nebo 0x0 po 0xF:
for A in {0..9} {A..F}; do echo -ne "\x$A" >> 0x0-0xF; done
256x zdrávas v nulách:
for A in {0..255}; do echo -ne "\x00" >> 0x00; done
... a v jedničkách:
for A in {0..255}; do echo -ne "\xFF" >> 0xFF; done
Nebo "šachovnice" 0x0F:
for A in {0..255}; do echo -ne "\x0F" >> 0x0F; done
Nebo "šachovnice" nejjemnější, binární (01010101):
for A in {0..255}; do echo -ne "U" >> 0x0F; done
Pokud by se tyhle soubory daly catnout přes sériovou linku z jednoho zařízení do druhýho a surovej výsledek tam uložit do souborů, ty pak otevřít v hexaeditoru, dalo by se zjistit, jestli tam jsou paritní bity, stopbity a další.
« Poslední změna: 27. 09. 2015, 17:15:08 od Roman Horník »
Debian Sid 64bit + Mate Desktop Environment
* CPU: Intel Pentium G2020
* GPU: NVIDIA GTX650 1GD5
* MB: LenINovo IH61M
* RAM: 8GiB Deutsche Demokratische Republik 3

Offline tomajstr

  • Nováček
  • *
  • Příspěvků: 4
    • Zobrazit profil
Re:RS-232 komunikace s aruinem
« Odpověď #2 kdy: 27. 09. 2015, 17:01:40 »
to prozatím nepůjde, můj převodník úrovní zatím umí jen RS232->UART

Offline tomajstr

  • Nováček
  • *
  • Příspěvků: 4
    • Zobrazit profil
Re:RS-232 komunikace s aruinem
« Odpověď #3 kdy: 27. 09. 2015, 17:30:23 »
že prej tam je 1 start bit, pak 8bit data a pak 1 stop bit, no ale teď jak to nastavit. počet bitů mám nastavenej, stopbit taky, takže jediný co mě napadá je chyba se startbitem (jestli je možný na tom něco měnit), nebo že se to tam snaží cpát HW řízení.

Offline Roman Horník

  • Hlavní moderátor
  • Aktivní­ uživatel
  • *****
  • Příspěvků: 1.326
    • Zobrazit profil
  • Jabber: roman.hornik@jabber.cz
Re:RS-232 komunikace s aruinem
« Odpověď #4 kdy: 27. 09. 2015, 18:18:32 »
Pokud na tom grafu máš logický úrovně, kde log. 1 je nahoře a log. 0 dole, ne napěťový úrovně, kde log. 0 má vůči zemi kladnej potenciál a log. 1 zápornej, pak start bit tam vidím - první log. 0 na začátku, pak tam jsou data pozpátku ale nevidím nikde stop bit.
Nevím, jakým způsobem komunikaci se sériovým portem provádíš, ale nastavit to jít musí, stejně jako třeba paritní bity a podobný ptákoviny.

No, koukni třeba sem.
Debian Sid 64bit + Mate Desktop Environment
* CPU: Intel Pentium G2020
* GPU: NVIDIA GTX650 1GD5
* MB: LenINovo IH61M
* RAM: 8GiB Deutsche Demokratische Republik 3

Offline tomajstr

  • Nováček
  • *
  • Příspěvků: 4
    • Zobrazit profil
Re:RS-232 komunikace s aruinem
« Odpověď #5 kdy: 27. 09. 2015, 18:37:05 »
už jsem asi našel chybu, z PC uart převodníku lezou invertovaná data, nejde to nějak invertovat v linuxu?

Offline Roman Horník

  • Hlavní moderátor
  • Aktivní­ uživatel
  • *****
  • Příspěvků: 1.326
    • Zobrazit profil
  • Jabber: roman.hornik@jabber.cz
Re:RS-232 komunikace s aruinem
« Odpověď #6 kdy: 27. 09. 2015, 19:02:16 »
Jestli to je tak, že na RS-232 je -něco voltů a na TTL le +5V, na RS-232 je +něco voltů a na TTL 0V, pak je to v pořádku.
Jestli je to obráceně, tak proč to řešit složitě softwarově, když někdy od 70. let máme TTL invertory, např. 7404? 6 invertorů v jednom DIL-14 pouzdře, napájení 5V, spotřeba zanedbatelná. Nebo se to dá udělat z 7400 (4x NAND), nebo 7402 (4x NOR).
Na tak malý přenosový rychlosti by mohly stačit starý teslácký brouci, třeba MH74xx (nebo 54xx, 84xx), mezi 74 a něco může bejt třeba S, LS, ALS, HC, HCT,... prodává se to i za korunu, 14 vývodů, žádný součástky kolem, jen 5V napájení (většinou piny 7 (-) a 14(+)), např. u 7404 nebo 7406 (verze s otevřeným kolektorem) jsou inventory na pinech (vstup>výstup) 1>2, 3>4, 5>6, 9>8, 11>10, 13>12.
Z takovejch se dá udělat ledacos, "náramně" stabilní kruhovej oscilátor (závislej jen na napájení, teplotě čipu, radiaci, elektrickýmu šumu a blbýmu pohledu), astabilní klopnej obvod, ale třeba i rádio. Cokoliv, a to bez potřeby programování.

Invertor z NAND i NOR uděláš tak, že oba vstupy spojíš, u XOR (7486) na jeden ze vstupů přivedeš permanentně +5V (když se totiž uzemní, nebude invertovat; stačí juknout na pravdivostní tabulky).




Z takovejch a podobnejch brouků jsem dělal leccos, časovače, běhající světlo, čítač, jednoduchej jednokanálovej logickej analyzátor s pamětí 16 bitů, ovšem s nutným hodinovým signálem na vstupu :D (původně jsem chtěl osciloskop mající 16×16 LED, ale neměl jsem 256 LEDek, tak jsem si ho udělal z přenosky Tesla Pluto), různý sirény... dělaly se z toho i "počítače".
« Poslední změna: 27. 09. 2015, 20:14:27 od Roman Horník »
Debian Sid 64bit + Mate Desktop Environment
* CPU: Intel Pentium G2020
* GPU: NVIDIA GTX650 1GD5
* MB: LenINovo IH61M
* RAM: 8GiB Deutsche Demokratische Republik 3