Raspberry PI , UART a RS485

Jan Matuška hw na starhill.org
Pátek Březen 7 09:05:02 CET 2014


Zdravím,

chtěl bych připojit Raspberry PI na RS485 sběrnici. Po HW stránce je to 
snadné a zdá se, že vše funguje. Nicméně narazil jsem na problém v 
Raspberry..

Mám v něm Raspbian a ovládání píšu v Pythonu (pyserial). Využívám 
klasický UART + jeden GPIO na přepínání TX/RX převodníku 75176.

# RS485 TX
GPIO.output(12, 1)
# posle data na port
port.write("AHOJSVETE\n\r")
# time.sleep(0.1)
# RS485 RX
GPIO.output(12, 0)

Problém je v tom, že metoda write odešle data do nějakého lowlevel 
bufferu UARTu a tím skončí. Poté ihned následuje přepnutí převodníku do 
režimu příjmu a tím pádem neodvysílání části dat. Nejprimitivnější 
řešení je zařazení nějaké prodlevy, během které se stihnou data odeslat 
- nicméně tato prodleva neřeší délku dat, vytížení OS a vůbec je to 
takto špatně. Hledal jsem v dokumentaci pyserialu nějakou metodu nebo 
atribut, který by mě řekl, že odesílání již skončilo, avšak bez výsledku 
- jediný kandidát outWaiting() v pyserialu v Raspbery není.

Nemáte, prosím, někdo nápad, jak z tohho ven?

Děkuji



Další informace o konferenci Hw-list