Seriova komunikace RS485
Jirka Mww
jirka.mww na gmail.com
Středa Listopad 22 18:13:56 CET 2023
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
> 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/61c20c7b/attachment-0001.htm>
Další informace o konferenci Hw-list