Portál AbcLinuxu, 26. dubna 2024 22:24


Dotaz: RS232 - LCD TV

12.3.2007 10:39 BBaron
RS232 - LCD TV
Přečteno: 256×
Odpovědět | Admin
Potreboval by som trocha poradit. Mam Samsung Speed Master 400Tx, ktory ma RS232, cez ktory ho mozem ovladat. Z windows mi to funguje. Aj z linuxu viem prepinat, to co potrebujem, ALE nemam spatnu odozvu z LCD. Neviem co robim zle.

Nastavenie rs232 pod winodws: 9600,8,N,1

pod linuxom stty -F /dev/ttyS0 9600 cs8 -parenb -cstopb (predpokladam, ze toto je presne to iste nastavenie, ktore je i pod win.) Zistil, som, ze musim este zapnut aj "echo" + pre istotu som vypol strip takze potom moj prikaz vyzeral takto: stty -F /dev/ttyS0 9600 cs8 -parenb -cstopb echo -istrip - bez odpovede. ak som prepojil dva porty na linuxu, tak mi to islo a dostaval som odpoved, takze to mam dufam dobre nastavene.

ako som posielal prikazy/ako som cital odpoved

posielanie: (mam len prikazy v hexa) echo -en "\\xAA\\x13\\xFE\\x01\\x01\\x13" > /dev/ttyS0

citanie: cat /dev/ttyS0 | while read res; do echo $res ; done - toto mi bezalo na druhej konzole, aby som videl co prislo.

pripadne som to skusal takto: echo -en "\\xAA\\x13\\xFE\\x01\\x01\\x13\\x0D\\x0A" > /dev/ttyS0 | read dd < /dev/ttyS0 ; echo "[$dd]" bez vysledku

Pod windows mi to komunikovalo, ale pod linuxom zial nie. Uz som z toho celkom hotovy. Vie mi niekto poradit? Toto je moja prva skusenost s rs232, takze ani poriadne neviem co co znamena. cital som si aj serial na tomto webe, pomohlo mi to, ale neporiesil som to.
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

12.3.2007 12:14 Jan Bláha
Rozbalit Rozbalit vše Re: RS232 - LCD TV
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zatim jsem nikdy nepouzival RS232 pod linuxem, ale mam pocit, ze to mas spatne nastavene. Dva porty linuxu ti chodily, protoze mely proti sobe stejne nastaveni. Pod windows 9600 8,N,1 znamena rychlost 9600baudu, 8 bitu na znak, no parity (zadny paritni bit), jeden stop bit. A man stty pod linuxem vypisuje pro -parenb generate parity bit in output and expect parity bit in input tedy nikoliv zadny paritni bit a take prepinac -cstopb use two stop bits per character (one with â-â) tedy opet myslim neco jineho nez Woknova 1. Neumim poradit, co je spravne, ale tohle urcite ne. Zkus google :-)
12.3.2007 12:23 BBaron
Rozbalit Rozbalit vše Re: RS232 - LCD TV
mam tam "-", co podla mna znamena ze to vypinam. Takze by to malo byt vypnute. "stty -F /dev/ttyS0 9600 cs8 -parenb -cstopb" som nasiel niekde tu na webe a bolo tam to moje nastavenie: 9600 8,N,1
12.3.2007 12:27 Jan Bláha
Rozbalit Rozbalit vše Re: RS232 - LCD TV
Uz jsem take zjistil, ze ten "-" to vypina a tudiz by to melo byt spravne. Asi bych zkusil, zda prectes port zapisovany na Linuxu na portu nastavenem pod windows. Nejpravdepodobnejsi totiz stale je, ze ti ten monitor nerozumi a je nutne jeste nastavit neco.
12.3.2007 12:37 Jan Bláha
Rozbalit Rozbalit vše Re: RS232 - LCD TV
Mozna bych zkusil jeste tyto tri parametry: cread -clocal -crtscts. Urcite nic nezkazi. -clocal vypina rizeni modemu, -crtscts vzpina hardwareove rizeni toku a cread umoznuje cist vstup.
12.3.2007 12:45 BBaron
Rozbalit Rozbalit vše Re: RS232 - LCD TV
ked som vypol -clocal, tak mi to vobec neslo. (televizor nereagoval)
12.3.2007 12:50 Jan Bláha
Rozbalit Rozbalit vše Re: RS232 - LCD TV
Jeste by mohl byt rozdil v posilani koncu radku. Az ted jsem pochopil, ze ono to funguje, jen nedostavas po rs232 odpovedi.Je to tak? No aspon se poucuji o 232 pod linuxem, chystam se s nim neco programovat. Tak se na me nezlob, ze asi pisu cos uz vyzkousel...
12.3.2007 12:58 BBaron
Rozbalit Rozbalit vše Re: RS232 - LCD TV
nezlobim se, som rad, ze sa tu niekto snazi pomoct.
12.3.2007 12:45 BBaron
Rozbalit Rozbalit vše Re: RS232 - LCD TV
Televizor mi reaguje, zial nedostanem ziadnu odpoved.
16.3.2007 12:46 BBaron
Rozbalit Rozbalit vše Re: RS232 - LCD TV
Odpovědět | | Sbalit | Link | Blokovat | Admin
len tak pre istotu davam este cele nastavenie ttyS0:
#stty -aF /dev/ttyS0 
speed 9600 baud; rows 0; columns 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = ^M; eol2 = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O;
min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke
Nastavoval som aj EOL parameter (k prikazu som potom pridal: \\x0d\\x0a /^M/ pripadne som skusal len \\x0a alebo len \\x0d). Dufal som, ze tam moze byt problem, ale aj tak sa nic nedeje. S windowsom mi to ale stale reaguje. Len s tym Linuxom nic. :-(

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.