RS485 na Linuxu

Měřáky, automatizační technika, regulační technika

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
JirkaRCK
Příspěvky: 248
Registrován: 25 dub 2010, 00:00
Bydliště: Olomouc/Brno
Kontaktovat uživatele:

RS485 na Linuxu

#1 Příspěvek od JirkaRCK »

Zdravím,
rád bych se zeptal, zdali jste někdy na Linuxu používali TTL UART nebo RS232 přes převodník na RS485 a jak jste případně u převodníku řešili ovládání binárního výstupu pro flow-control. Zkoušel jsem čekat, až funkce ioctl(TIOCOUTQ) vrátí 0 prvků v bufferu sériové linky, ale zřejmě tu jde o softwarový buffer jádra, nikoliv o TX buffer portu, jelikož se takto několik posledních znaků neodešle i poté, co je už prázdný. Další možnost je pevně daná anebo z baud ratu a počtu znaků spočítaná delay. To mi však přijde jako velice neefektivní cesta...

Existuje tedy nějaká možnost, jak v Linuxu efektivně zjistit, zdali je dokončen transmitt a linka se může přepnout pro příjem? Neexistuje případně i nějaký automatický režim 232ky, kdy k tomuto účelu slouží některý z handshake pinů portu?
Uživatelský avatar
Zmije
Příspěvky: 1691
Registrován: 30 čer 2005, 00:00
Bydliště: Pardubický kraj

#2 Příspěvek od Zmije »

Třeba takto

Kód: Vybrat vše

int status;
char buf[20];

// flow ctrl

write(fd, buf, sizeof(buf));
while (1)
{
  ioctl(fd, TIOCSERGETLSR, &status);
  if (status & TIOCSER_TEMT)
    break;

  usleep(100);
}
// flow ctrl
Uživatelský avatar
JirkaRCK
Příspěvky: 248
Registrován: 25 dub 2010, 00:00
Bydliště: Olomouc/Brno
Kontaktovat uživatele:

#3 Příspěvek od JirkaRCK »

Díky moc, vyzkouším.
Uživatelský avatar
JirkaRCK
Příspěvky: 248
Registrován: 25 dub 2010, 00:00
Bydliště: Olomouc/Brno
Kontaktovat uživatele:

#4 Příspěvek od JirkaRCK »

Tak potvrzuji, že registr, který radil Zmije, funguje perfektně. Díky moc za radu! 8-)

Ještě bych měl menší dotaz, tak trochu offtopic, doporučili byste někdo nějakou dobrou literaturu, případně seriál na webu, který se C pro Linux z hlediska přistupování k hardwaru, embedded aplikací atd hlouběji zabývá? Rád bych se o tom dozvěděl více.
Uživatelský avatar
Zmije
Příspěvky: 1691
Registrován: 30 čer 2005, 00:00
Bydliště: Pardubický kraj

#5 Příspěvek od Zmije »

Bohužel, nenapadá mě konkrétní literatura, od věci by nebylo třeba Jádro systému Linux, ale je to spíš ryze ze sw. pohledu. Co se týče embeded, tak nejlépe studovat projekty kolem Raspberry Pi, případně dalších desek. Pak samozřejmě ruzná how to, miniseriály a diskuse rozeseté po Internetu.
Uživatelský avatar
berk
Příspěvky: 109
Registrován: 07 úno 2014, 00:00

#6 Příspěvek od berk »

Ahoj,

zadej do googlu:
Raspberry Pi Hardware Reference PDF

Myslím že je to kniha kterou hledáš (popis hw příslušenství a příklady v c).
Odpovědět

Zpět na „Měření, regulace a automatizace“