<div><br></div><div dir="auto">Ja jsem zatim nemel nikdy potrebu studovat detaily, jak ty rutiny pro seriove porty funguji, krome snad sw serial na arduinu Nano, kde je hw jen jeden seriovy port. Tam jsem do toho trochu pronikal, ale my skleroticti duchodci si stejne nic nepamatujeme....</div><div dir="auto"><br><div class="gmail_quote" dir="auto"><div dir="ltr" class="gmail_attr">st 22. 11. 2023 v 20:34 odesílatel Petr Labaj <<a href="mailto:labaj@volny.cz">labaj@volny.cz</a>> napsal:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>
Mně se zdálo, že jste psal, že to Arduino nevyšle. Nikoli že by něco
nepřijalo.<br>
Vysílání je v knihovnách Arduino dělané jako neblokující, přes
nějaký buffer?<br>
Pak by se zřejmě dalo použít i nějaké blokující, kde by jiné IRQ
neměly vliv na funkci.<br>
<br>
PL<br>
<br>
********************<br>
<br>
<div>Dne 22.11.2023 v 20:21 Jirka Mww
napsal(a):<br>
</div></div><div>
<blockquote type="cite">
<div dir="auto">Pane Zárubo,
<div dir="auto">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.</div>
<div dir="auto">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.. </div>
<div dir="auto"><br>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">Dne st 22. lis 2023 19:07
uživatel Martin Záruba <<a href="mailto:swz@volny.cz" target="_blank">swz@volny.cz</a>>
napsal:<br>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>
<p><font face="Arial">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í.</font></p>
<p><font face="Arial">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ý.</font></p>
<p><font face="Arial">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.</font><br>
</p>
<pre cols="72">Martin Záruba</pre>
<div>Dne 22.11.2023 v 18:36 Petr Labaj napsal(a):<br>
</div>
<blockquote type="cite"> Přiznávám, že by mě to zajímalo.<br>
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.<br>
<br>
Připojil bych na ten převodník jen osciloskop a kontrolní
PC, nic jiného. Na druhé straně by nikdo neodpovídal.<br>
A do Arduina dát jednoduchý program, který bude vysílat
stále dokola třeba po 2 sekundách ten string.<br>
<br>
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.<br>
Pokud to opět bude OK, tak teprve pak připojit ten
odpovídač a hledat tam.<br>
<br>
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).<br>
<br>
PL<br>
<br>
**********************<br>
<br>
<div>Dne 22.11.2023 v 18:13 Jirka Mww napsal(a):<br>
</div>
<blockquote type="cite">
<div dir="auto">Dobrý den,
<div dir="auto">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ší </div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">Dne st 22. lis 2023
18:05 uživatel Petr Labaj <<a href="mailto:labaj@volny.cz" rel="noreferrer" target="_blank">labaj@volny.cz</a>>
napsal:<br>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div> Myslel jsem, že se Vám to s těmi odpory
spravilo. A ono ne.<br>
Tak to je skoro čas na plán B.<br>
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.<br>
<br>
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.<br>
<br>
PL<br>
<br>
********************<br>
<br>
<div>Dne 22.11.2023 v 17:42 Jirka Mww napsal(a):<br>
</div>
<blockquote type="cite">
<div dir="ltr">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.
<div>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</div>
<div><br>
</div>
<div>Zdravi</div>
<div>
<div>
<div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature">Jirka
Sloupenský OK1MWW</div>
</div>
<br>
</div>
</div>
<div id="m_-3650429912725126218m_5964203665931629451m_-155959138218532413DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2"><br>
<table style="border-top:1px solid #d3d4de">
<tbody>
<tr>
<td style="width:55px;padding-top:13px"><a href="https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail" rel="noreferrer noreferrer" target="_blank"><img src="https://s-install.avcdn.net/ipm/preview/icons/icon-envelope-tick-round-orange-animated-no-repeat-v1.gif" alt="" style="width:46px;height:29px" width="46" height="29"></a></td>
<td style="width:470px;padding-top:12px;color:#41424e;font-size:13px;font-family:Arial,Helvetica,sans-serif;line-height:18px">Neobsahuje
žádné viry.<a href="https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail" style="color:#4453ea" rel="noreferrer noreferrer" target="_blank">www.avast.com</a></td>
</tr>
</tbody>
</table>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">út 21. 11.
2023 v 20:28 odesílatel Dodo Racek <<a href="mailto:dodoracek@gmail.com" rel="noreferrer noreferrer" target="_blank">dodoracek@gmail.com</a>>
napsal:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="auto">
<div dir="auto">Tazko hadat, malo
vstupnych informacii.</div>
<div dir="auto"><br>
</div>
Obe strany su v istej chvili prepnute na
vysielanie ?
<div dir="auto"><br>
</div>
<div dir="auto">Pri riadenom prepinani
mozete prepnut na prijem skor ako je
odoslany posledny znak. </div>
<div dir="auto">Niektore obsluhy seriovej
linky povazuju odoslanie za skoncene,
ked je posledny byte vo vysielacom
registri (ale este neodisiel po seriovej
linke )</div>
<div dir="auto"><br>
</div>
<div dir="auto">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.</div>
<div dir="auto"><br>
</div>
<div dir="auto">Mate linku zakoncenu na
oboch stranach prislusnou zatazou ? Napr
120R + 1n</div>
<div dir="auto"><br>
</div>
<div dir="auto">Mate definovane urovne
linky, ked su obe strany na prijme ?</div>
<div dir="auto">Niektore prevodniky to
robia "automaticky" a u niektorych je
potrebne jeden vodic potiahnut odporom
na zem a druhy vodic na +5v.</div>
<div dir="auto"><br>
</div>
<div dir="auto">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....</div>
<div dir="auto"><br>
</div>
<div dir="auto">Chcelo by to ozajstne
schemy tych prevodnikov. </div>
<div dir="auto">Ci mate chybu v prograne
mozete overit tak, ze vyhodite
prevodniky a pojdete Rx-Tx priamo na TTL
urovniach.</div>
<div dir="auto"><br>
</div>
<div dir="auto">Dodo</div>
<br>
<br>
<div class="gmail_quote" dir="auto">
<div dir="ltr" class="gmail_attr">Dňa ut
21. 11. 2023, 15:31 Jirka Mww <<a href="mailto:jirka.mww@gmail.com" rel="noreferrer noreferrer" target="_blank">jirka.mww@gmail.com</a>>
napísal(a):<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">Dobrý den,
<div>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 <span style="font-family:Consolas,"Courier New",monospace;font-size:14px;white-space:pre-wrap;color:rgb(211,84,0)">Serial2</span><span style="color:rgb(78,91,97);font-family:Consolas,"Courier New",monospace;font-size:14px;white-space:pre-wrap">.</span><span style="font-family:Consolas,"Courier New",monospace;font-size:14px;white-space:pre-wrap;color:rgb(211,84,0)">println</span><span style="font-family:Consolas,"Courier New",monospace;font-size:14px;white-space:pre-wrap;color:rgb(67,79,84)">(</span><span style="font-family:Consolas,"Courier New",monospace;font-size:14px;white-space:pre-wrap;color:rgb(0,92,95)">"X1A"</span><span style="font-family:Consolas,"Courier New",monospace;font-size:14px;white-space:pre-wrap;color:rgb(67,79,84)">) </span><span style="font-family:Consolas,"Courier New",monospace;font-size:14px;white-space:pre-wrap"><font color="#4e5b61"> t.j. </font></span>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á. </div>
<div><br clear="all">
<div>
<div dir="ltr" class="gmail_signature">Zdravi<br>
Jirka Sloupenský OK1MWW</div>
</div>
</div>
</div>
<br>
</blockquote>
</div>
</div>
</blockquote>
</div>
</blockquote>
<br>
</div>
_______________________________________________<br>
HW-list mailing list - sponsored by <a href="http://www.HW.cz" rel="noreferrer noreferrer
noreferrer" target="_blank">www.HW.cz</a><br>
<a href="mailto:Hw-list@list.hw.cz" rel="noreferrer
noreferrer" target="_blank">Hw-list@list.hw.cz</a><br>
<a href="http://list.hw.cz/mailman/listinfo/hw-list" rel="noreferrer noreferrer noreferrer" target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
</blockquote>
</div>
<br>
<fieldset></fieldset>
<pre>_______________________________________________
HW-list mailing list - sponsored by <a href="http://www.HW.cz" rel="noreferrer" target="_blank">www.HW.cz</a>
<a href="mailto:Hw-list@list.hw.cz" rel="noreferrer" target="_blank">Hw-list@list.hw.cz</a>
<a href="http://list.hw.cz/mailman/listinfo/hw-list" rel="noreferrer" target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a>
</pre>
</blockquote>
<br>
<br>
<fieldset></fieldset>
<pre>_______________________________________________
HW-list mailing list - sponsored by <a href="http://www.HW.cz" rel="noreferrer" target="_blank">www.HW.cz</a>
<a href="mailto:Hw-list@list.hw.cz" rel="noreferrer" target="_blank">Hw-list@list.hw.cz</a>
<a href="http://list.hw.cz/mailman/listinfo/hw-list" rel="noreferrer" target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a>
</pre>
</blockquote>
</div>
_______________________________________________<br>
HW-list mailing list - sponsored by <a href="http://www.HW.cz" rel="noreferrer noreferrer" target="_blank">www.HW.cz</a><br>
<a href="mailto:Hw-list@list.hw.cz" rel="noreferrer" target="_blank">Hw-list@list.hw.cz</a><br>
<a href="http://list.hw.cz/mailman/listinfo/hw-list" rel="noreferrer noreferrer" target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
</blockquote>
</div>
<br>
<fieldset></fieldset>
<pre>_______________________________________________
HW-list mailing list - sponsored by <a href="http://www.HW.cz" target="_blank">www.HW.cz</a>
<a href="mailto:Hw-list@list.hw.cz" target="_blank">Hw-list@list.hw.cz</a>
<a href="http://list.hw.cz/mailman/listinfo/hw-list" target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a>
</pre>
</blockquote>
<br>
</div>
_______________________________________________<br>
HW-list mailing list - sponsored by <a href="http://www.HW.cz" rel="noreferrer" target="_blank">www.HW.cz</a><br>
<a href="mailto:Hw-list@list.hw.cz" target="_blank">Hw-list@list.hw.cz</a><br>
<a href="http://list.hw.cz/mailman/listinfo/hw-list" rel="noreferrer" target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
</blockquote></div></div>