Debian fórum

Dotazy => Hardware => Téma založeno: tomajstr kdy 27. 09. 2015, 14:18:30

Název: RS-232 komunikace s aruinem
Přispěvatel: tomajstr 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 "hello, world!" vypadá jako
©::
:ű‹!'7˝ĺë

nevíte někdo kde je chyba? přenosová rychlost je stejná 9600, počet bitů je 8 a parita je vypnutá.
Název: Re:RS-232 komunikace s aruinem
Přispěvatel: Roman Horník 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ě (http://www.ebastlirna.cz).
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áš (http://www.ebastlirna.cz/modules.php?name=Forums&file=viewtopic&t=71866), 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ší.
Název: Re:RS-232 komunikace s aruinem
Přispěvatel: tomajstr kdy 27. 09. 2015, 17:01:40
to prozatím nepůjde, můj převodník úrovní zatím umí jen RS232->UART
Název: Re:RS-232 komunikace s aruinem
Přispěvatel: tomajstr 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í.
Název: Re:RS-232 komunikace s aruinem
Přispěvatel: Roman Horník 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 (http://www.abclinuxu.cz/clanky/hardware/seriova-komunikace-pod-linuxem-i).
Název: Re:RS-232 komunikace s aruinem
Přispěvatel: tomajstr 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?
Název: Re:RS-232 komunikace s aruinem
Přispěvatel: Roman Horník 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).

(http://www-hiraki.is.s.u-tokyo.ac.jp/lectures/hwex2015/1/1_7400.gif) (http://www-hiraki.is.s.u-tokyo.ac.jp/lectures/hwex2015/1/1_7402.gif)

(http://www-hiraki.is.s.u-tokyo.ac.jp/lectures/hwex2015/1/1_7404.gif) (http://www-hiraki.is.s.u-tokyo.ac.jp/lectures/hwex2015/1/1_7486.gif)

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".