Seriova komunikace RS485
Petr Labaj
labaj na volny.cz
Středa Listopad 22 20:34:36 CET 2023
Mně se zdálo, že jste psal, že to Arduino nevyšle. Nikoli že by něco
nepřijalo.
Vysílání je v knihovnách Arduino dělané jako neblokující, přes nějaký
buffer?
Pak by se zřejmě dalo použít i nějaké blokující, kde by jiné IRQ neměly
vliv na funkci.
PL
********************
Dne 22.11.2023 v 20:21 Jirka Mww napsal(a):
> Pane Zárubo,
> přivedl jste mne na jednu myšlenku, kterou zítra vyzkoušim. Mám tam
> přerušení 4mS, opsané z jiného projektu, ale v podstatě to tak často
> nepotřebuju, počítám ta přerušení do 250 a hlavní smyčku pouštím po
> sekunde. Nějak jsem na to zapomněl, že to tak je, dělám na tom je po
> chvilkach.
> Zitra to přerušení přepisu na delší interval a uvidím, jestli to bude
> mít efekt. Ještě jednou díky za nakopnuti. Pokud neuspěji, vyndáme ten
> osciloskop..
>
>
> Dne st 22. lis 2023 19:07 uživatel Martin Záruba <swz na volny.cz> napsal:
>
> Mám podezření, že to bude souviset s ne plnohodnotnou obsluhou
> přerušení. Tedy to, co jsem sám nevěděl, že pokud nastane více
> přerušení současně, priority pouze určují pořadí spuštění rutin,
> ale neznamená to, že jestliže běží rutina s nižší prioritou a
> vznikne vyšší přerušení, že se ta nižší přeruší, obslouží se ta
> výšší, pak pokračuje ta nižší a pak hlavní program. Jinak
> řečeno... Neumí vnořovat přerušení.
>
> Mám podobný problém, kde, přerušení časovačem mám každých 50uS.
> Ono to není v mém případě důležité, aby to bylo přesně 50uS. Pokud
> nenastává jiné přerušení, vidím na osciloskopu, že to sedí. Pokud
> ale nastává přerušení od seriového portu, interval 50uS není přesný.
>
> Nevím, zda to nemůže být Váš případ, kdy dojde k tak zásadní
> deformaci šířku pulzu na seriovém portu, že se data přenesou
> špatně. Takže se přikláním k tomu, co napsal pan Labaj.
>
> Martin Záruba
>
> Dne 22.11.2023 v 18:36 Petr Labaj napsal(a):
>> Přiznávám, že by mě to zajímalo.
>> Tedy pro obecnou osvětu a poučení, i když ve Vašem konkrétním
>> případě to dokážete ošéfovat pomocí SW.
>>
>> Připojil bych na ten převodník jen osciloskop a kontrolní PC, nic
>> jiného. Na druhé straně by nikdo neodpovídal.
>> A do Arduina dát jednoduchý program, který bude vysílat stále
>> dokola třeba po 2 sekundách ten string.
>>
>> Pokud to tady bude OK (na osciloskopu i přijetím na na kontrolním
>> PC), tak nechat HW stejně, ale posílat to Vašim původním
>> programem, pokud umí posílat výzvy i bez odpovědi.
>> Pokud to opět bude OK, tak teprve pak připojit ten odpovídač a
>> hledat tam.
>>
>> Máte 4-kanál, tak by asi nebyl problém ho odpíchnout od Tx dat,
>> která by byla vstupem pro ten převodník (tj. výstupní drát z
>> Arduina).
>>
>> PL
>>
>> **********************
>>
>> Dne 22.11.2023 v 18:13 Jirka Mww napsal(a):
>>> Dobrý den,
>>> To s tím rozdělením jsem zkoušel, nebyla tam žádná změna i když
>>> jsem tam dal ještě navíc delay. Osciloskop mám, 4 kanál
>>> paměťový, ale nevím, na co ho synchronizovat. Necháme to být, SW
>>> to řeší
>>>
>>> Dne st 22. lis 2023 18:05 uživatel Petr Labaj <labaj na volny.cz>
>>> napsal:
>>>
>>> Myslel jsem, že se Vám to s těmi odpory spravilo. A ono ne.
>>> Tak to je skoro čas na plán B.
>>> Máte osciloskop? Pokud je to jeden ze 40 pokusů, tak tohle
>>> chytnout by měla být brnkačka. A zřejmě budou "načaté" i
>>> ostatní přenosy, jen budou ještě v toleranci.
>>>
>>> Co by udělalo Serial2.print("X1A") a pak Serial2.println("")
>>> nebo jak se ty funkce na Arduinu jmenují? Prostě poslat to
>>> CR dalším voláním.
>>>
>>> PL
>>>
>>> ********************
>>>
>>> Dne 22.11.2023 v 17:42 Jirka Mww napsal(a):
>>>> Díky za další rady, on ale bude problém asi jinde. Po
>>>> doplnění těch opěrných odporů na A+ a B- se to začalo
>>>> chovat o dost líp, ale po dopsání nějakých dalších řádků do
>>>> Arduina ATMEGA se to zase trochu zhoršilo.
>>>> Mám podezření, že ty procedury Arduina pro obsluhu
>>>> sériových portů nejsou asi úplně nezávislé, nebo tomu vadí
>>>> něco jiného z mého SW. V podstatě s tím můžu žít, ty
>>>> posílané povely se dají opakovat, když nepřijde včas
>>>> relevantní odpověď. Schema těch převodníků nemám, je to z
>>>> Ali, drát na řízení směru toku nemají, to co poslu se
>>>> zároveň zpětně načte. Ten co komunikuje s měničem GOODWE
>>>> problémy nemá, komunikace 100% chodí včetně CRC. Vyhození
>>>> převodníků je trochu problém, relova deska pro obsluhu je
>>>> SMD , musel bych tam okolo převodníku RS485 škrbat spoje,
>>>> to se mi nechce. Raději budu řešit ty výpadky přes úpravu
>>>> SW a už se tím dál nebudu zabývat
>>>>
>>>> Zdravi
>>>> Jirka Sloupenský OK1MWW
>>>>
>>>>
>>>> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
>>>> Neobsahuje žádné viry.www.avast.com
>>>> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
>>>>
>>>>
>>>>
>>>> út 21. 11. 2023 v 20:28 odesílatel Dodo Racek
>>>> <dodoracek na gmail.com> napsal:
>>>>
>>>> Tazko hadat, malo vstupnych informacii.
>>>>
>>>> Obe strany su v istej chvili prepnute na vysielanie ?
>>>>
>>>> Pri riadenom prepinani mozete prepnut na prijem skor
>>>> ako je odoslany posledny znak.
>>>> Niektore obsluhy seriovej linky povazuju odoslanie za
>>>> skoncene, ked je posledny byte vo vysielacom registri
>>>> (ale este neodisiel po seriovej linke )
>>>>
>>>> Automaticke prepinania sa robia rozne, od detekcie
>>>> startbitu hrubym casovanim MKO, niektore sa snazia
>>>> detekovat rychlost vysielania a nastavit cas prepnutia
>>>> podla casu vyslania bytu a odhadnutej rychlosti... byva
>>>> to rozne.
>>>>
>>>> Mate linku zakoncenu na oboch stranach prislusnou
>>>> zatazou ? Napr 120R + 1n
>>>>
>>>> Mate definovane urovne linky, ked su obe strany na prijme ?
>>>> Niektore prevodniky to robia "automaticky" a u
>>>> niektorych je potrebne jeden vodic potiahnut odporom na
>>>> zem a druhy vodic na +5v.
>>>>
>>>> Niektore zapojenia prevodnikov 422/485 umoznuju zaroven
>>>> citat, co sa lokalne vysiela a napr. detekovat chybu
>>>> vysielania, ked sa iny vysielac na linke namontuje do
>>>> komunikacie....
>>>>
>>>> Chcelo by to ozajstne schemy tych prevodnikov.
>>>> Ci mate chybu v prograne mozete overit tak, ze vyhodite
>>>> prevodniky a pojdete Rx-Tx priamo na TTL urovniach.
>>>>
>>>> Dodo
>>>>
>>>>
>>>> Dňa ut 21. 11. 2023, 15:31 Jirka Mww
>>>> <jirka.mww na gmail.com> napísal(a):
>>>>
>>>> Dobrý den,
>>>> ladím tady komunikaci mezi dvěma Arduiny, jedno je
>>>> Arduino Nano a druhé je Arduino Mega , příslušný
>>>> seriový kanál je na Mega serial2. Na Nano používám
>>>> HW seriový kanál. SW seriový kanál není vůbec
>>>> využit. Na Arduinu Nano je modul RS485, který má
>>>> externí vstup pro přepínání směru přenosu, ten
>>>> obsluhuji svým SW a vše zdá se funguje správně. Na
>>>> Arduinu Mega mám nějaký čínský modul RS485, který
>>>> takový vstup nemá , přepíná se sám, posílám jen
>>>> čtyři znaky pomocí funkce Serial2.println("X1A")
>>>> t.j. včetně CR na konci, většinou to funguje, ale
>>>> ten koncový znak, na který protistrana čeká, aby
>>>> příkaz provedla, se občas ( cca 1 x za 40 přenosů )
>>>> nepošle. Linku monitoruji přes externí převodník a
>>>> PC ale efekt je stejný, jak na straně Arduino Nano,
>>>> tak na straně PC. Prostě ten koncový znak nepřijde
>>>> tam ani tam. Komunikace s FVE měničem Goodwe přes
>>>> další port toho Arduino Mega mi funguje normálně.
>>>> Je tam podobný modul RS485 opět bez řízení směru
>>>> přenosu, je jenom galvanicky oddělený. Nemáte
>>>> nějaký nápad, na co se zaměřit ? Vkládání zpoždění
>>>> do různých relevantních částí programu nepomáhá.
>>>>
>>>> Zdravi
>>>> Jirka Sloupenský OK1MWW
>>>>
>>>
>>> _______________________________________________
>>> HW-list mailing list - sponsored by www.HW.cz
>>> <http://www.HW.cz>
>>> Hw-list na list.hw.cz
>>> http://list.hw.cz/mailman/listinfo/hw-list
>>>
>>>
>>> _______________________________________________
>>> HW-list mailing list - sponsored bywww.HW.cz <http://www.HW.cz>
>>> Hw-list na list.hw.cz
>>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>>
>> _______________________________________________
>> HW-list mailing list - sponsored bywww.HW.cz <http://www.HW.cz>
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz <http://www.HW.cz>
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
>
> _______________________________________________
> HW-list mailing list - sponsored bywww.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20231122/2abc9a3f/attachment.htm>
Další informace o konferenci Hw-list