<div class="iw_mail" dir="ltr" style="font-size: 13px;"><div>Tak při dlouhodobějších testech se řešení se synchonizací na idle ukázalo jako nespolehlivé.</div><div>Dost často se to chytlo špatně. Takže jsem udělal tu synchronizaci na ty úvodní znaky packetu</div><div>a zdá se, že to už funguje "spolehlivě".</div><div><br></div><div class=""><div>Martin Locker</div></div><div><br></div><div class="iw-reply-block" dir="LTR" style="font-size: 13px;font-family:Roboto, Tahoma, Helvetica, sans-serif;line-height:normal;"><div style="margin:0;font-family:Roboto, Tahoma, Helvetica, sans-serif;font-size:13px;font-weight:300;line-height:150%;letter-spacing:normal;color:#333333;"><div style="display:none;margin:0;font-family:Roboto, Tahoma, Helvetica, sans-serif;font-size:13px;font-weight:300;line-height:150%;letter-spacing:normal;color:#333333;">----- Původní zpráva -----</div><hr size="1" width="100%" style="width:100%;padding:0;margin:10px 0;color:#888888;background-color:#888888;border-color:#DDDDDD;">Odesilatel: Martin Locker (<a href="mailto:locker@vosrk.cz" style="font-family: Helvetica, sans-serif; font-size: 12px; font-weight: 300; line-height: 150%; color: rgb(0, 136, 204); text-decoration: none;">locker@vosrk.cz</a>)<br>Datum: 26/12/2023 13:41<br>Příjemce: HW-news (<a href="mailto:hw-list@list.hw.cz" style="font-family: Helvetica, sans-serif; font-size: 12px; font-weight: 300; line-height: 150%; color: rgb(0, 136, 204); text-decoration: none;">hw-list@list.hw.cz</a>)<br>Předmět: <span style="font-family:Helvetica, sans-serif;font-size:12px;font-weight:300;line-height:150%;color:#333;text-decoration:none;font-weight:bold;">Re[2]: Re[2]: STM32F103 UART DMA</span></div><br><div><div class="iw_mail" dir="ltr" style="font-size: 13px;"><div>Už jsem to nějak vyřešil.</div><div>Počkám si na nahození příznaku IDLE UARTu (mezi packety je malá prodleva) a spustím DMA. </div><div>V přerušení od DMA zkontroluji jestli první dva znaky jsou začátek packetu.</div><div>Zpracuji, nebo vynutím novou synchronizaci (zastavení DMA, počkání na IDLE a spuštení DMA).</div><div><br></div><div>Díky za tipy a ještě jednou pohodové svátky.</div><div><br></div><div class=""><div>Martin</div></div><div><br></div><div class="iw-reply-block" dir="LTR" style="font-size: 13px;font-family:Roboto, Tahoma, Helvetica, sans-serif;line-height:normal;"><div style="margin:0;font-family:Roboto, Tahoma, Helvetica, sans-serif;font-size:13px;font-weight:300;line-height:150%;letter-spacing:normal;color:#333333;"><div style="display:none;margin:0;font-family:Roboto, Tahoma, Helvetica, sans-serif;font-size:13px;font-weight:300;line-height:150%;letter-spacing:normal;color:#333333;">----- Původní zpráva -----</div><hr style="width:100%;padding:0;margin:10px 0;color:#888888;background-color:#888888;border-color:#DDDDDD;" width="100%" size="1">Odesilatel: V P (<a href="mailto:vvitty01@seznam.cz" style="font-family: Helvetica, sans-serif; font-size: 12px; font-weight: 300; line-height: 150%; color: rgb(0, 136, 204); text-decoration: none;">vvitty01@seznam.cz</a>)<br>Datum: 26/12/2023 13:24<br>Příjemce: HW-news (<a href="mailto:hw-list@list.hw.cz" style="font-family: Helvetica, sans-serif; font-size: 12px; font-weight: 300; line-height: 150%; color: rgb(0, 136, 204); text-decoration: none;">hw-list@list.hw.cz</a>)<br>Předmět: <span style="font-family:Helvetica, sans-serif;font-size:12px;font-weight:300;line-height:150%;color:#333;text-decoration:none;font-weight:bold;">Re: Re[2]: STM32F103 UART DMA</span></div><br><div>Tak preruseni od USARTu po kazdem znaku a po detekci startovaciho patternu toto preruseni vypnout, nastavit DMA a nechat to na nem ?<div><br></div><div>Samozrejme to ma nejake chybky, jako treba desynchronizaci pokud nejaky znak v prijmu vypadne a nebo naopak dojde na falesnou detekci.<br><br>--<br>-----------------------------------------<br>Pokud máte zájem, navštivte naši stránku o mašinkách - <a href="http://www.pojezdy.eu">http://www.pojezdy.eu</a><br><br><aside>---------- Původní e-mail ----------<br>Od: Martin Locker <<a href="mailto:locker@vosrk.cz">locker@vosrk.cz</a>><br>Komu: HW-news <<a href="mailto:hw-list@list.hw.cz">hw-list@list.hw.cz</a>><br>Datum: 26. 12. 2023 13:16:55<br>Předmět: Re[2]: STM32F103 UART DMA</aside><br><blockquote data-email="locker@vosrk.cz"><div class="-wm-iw_mail" dir="ltr" style="font-size:13px;"><div>Ten packet má vždy 48B, takže jsem si udělal kruhový buffer na 96B.</div><div>S tím, že po přerušení zpracuji ten přijatý packet. Jen jak to zasynchronizovat?</div><div>Průběžné zpracování jsem měl, ale chtěl jsem zkusit</div><div>trochu odlehčit procesoru (aby nebylo přerušení po každém znaku).</div><div><br></div><div class=""><div>Martin</div></div><div><br></div><div class="-wm-iw-reply-block" dir="LTR" style="font-size:13px;font-family:Roboto,Tahoma,Helvetica,sans-serif;line-height:normal;"><div style="margin:0;font-family:Roboto,Tahoma,Helvetica,sans-serif;font-size:13px;font-weight:300;line-height:150%;letter-spacing:normal;color:#333333;"><div style="display:none;margin:0;font-family:Roboto,Tahoma,Helvetica,sans-serif;font-size:13px;font-weight:300;line-height:150%;letter-spacing:normal;color:#333333;">----- Původní zpráva -----</div><hr size="1" width="100%" style="width:100%;padding:0;margin:10px 0;color:#888888;background-color:#888888;border-color:#DDDDDD;">Odesilatel: Jaroslav Buchta (<a href="mailto:jaroslav.buchta@hascomp.cz" style="font-family:Helvetica,sans-serif;font-size:12px;font-weight:300;line-height:150%;color:rgb(0,136,204);text-decoration:none;">jaroslav.buchta@hascomp.cz</a>)<br>Datum: 26/12/2023 13:05<br>Příjemce: <a href="mailto:hw-list@list.hw.cz" style="font-family:Helvetica,sans-serif;font-size:12px;font-weight:300;line-height:150%;color:rgb(0,136,204);text-decoration:none;">hw-list@list.hw.cz</a><br>Předmět: <span style="font-family:Helvetica,sans-serif;font-size:12px;font-weight:300;line-height:150%;color:#333;text-decoration:none;font-weight:bold;">Re: STM32F103 UART DMA</span></div><br><div><div class="-wm-moz-cite-prefix">No to bude tim, ze je to cpp a funkce musi byt pojmenovana podle "C"</div><div class="-wm-moz-cite-prefix"><br></div><div class="-wm-moz-cite-prefix">Prijem pres DMA moc nejde, pokud to neni pevne dany pocet B.</div><div class="-wm-moz-cite-prefix">Ja si delam kruhovy buffer, preruseni v pulce a celem rozsahu a navic to ocmuchavam periodicky, znaky postupne stavovym automatem zpracovavam, jak prichazeji.</div><div class="-wm-moz-cite-prefix"><br></div><div class="-wm-moz-cite-prefix">Dne 26.12.2023 v 13:00 Martin Locker napsal(a):</div><blockquote><div class="-wm-iw_mail" dir="ltr" style="font-size:13px;"><div id="-wm-isPasted"><div>Tak už se mi to podařilo rozjet. Někde jsem vygůglil, že je nutné přidat:</div><div>extern "C" void DMA1_Channel6_IRQHandler(void);</div></div><div>Sice nechápu proč, ale už to běží.</div><div><br></div><div>Tak teď už jen vyřešit "zásadnější" problém. Jak se zachytit na začátek paketu.</div><div>Zařízení (lidar) kontinuálně odesílá data po paketech začínajících 0x54 0x2C.</div><div>Tak bych potřeboval odstartovat ten DMA přenos se začátkem packetu. </div><div>Abych po dokončení přenosu, měl vždy jeden celý packet.</div><div><br></div><div class=""><div>Martin Locker</div></div><div><br></div><div class="-wm-iw-reply-block" dir="LTR" style="font-size:13px;font-family:Roboto,Tahoma,Helvetica,sans-serif;line-height:normal;"><div style="margin:0;font-family:Roboto,Tahoma,Helvetica,sans-serif;font-size:13px;font-weight:300;line-height:150%;letter-spacing:normal;color:#333333;"><div style="display:none;margin:0;font-family:Roboto,Tahoma,Helvetica,sans-serif;font-size:13px;font-weight:300;line-height:150%;letter-spacing:normal;color:#333333;">----- Původní zpráva -----</div><hr size="1" width="100%" style="width:100%;padding:0;margin:10px 0;color:#888888;background-color:#888888;border-color:#DDDDDD;">Odesilatel: Jaroslav Buchta (<a class="-wm-moz-txt-link-freetext" href="mailto:jaroslav.buchta@hascomp.cz" style="font-family:Helvetica,sans-serif;font-size:12px;font-weight:300;line-height:150%;color:rgb(0,136,204);text-decoration:none;">jaroslav.buchta@hascomp.cz</a>)<br>Datum: 26/12/2023 12:13<br>Příjemce: <a class="-wm-moz-txt-link-freetext" href="mailto:hw-list@list.hw.cz" style="font-family:Helvetica,sans-serif;font-size:12px;font-weight:300;line-height:150%;color:rgb(0,136,204);text-decoration:none;">hw-list@list.hw.cz</a><br>Předmět: <span style="font-family:Helvetica,sans-serif;font-size:12px;font-weight:300;line-height:150%;color:#333;text-decoration:none;font-weight:bold;">Re: STM32F103 UART DMA</span></div><br><div><div class="-wm-moz-cite-prefix">Podival bych se, jestli neni nejaka zakernost v DigitalRead/Write v preruseni (nebo to rovnou nahradil)</div><div class="-wm-moz-cite-prefix">A jestli neni potreba nulovat neco dalsiho v ISR, ze by se to v preruseni zacyklilo...</div><div class="-wm-moz-cite-prefix">A nebo ladit v debuggeru.</div><div class="-wm-moz-cite-prefix"><br></div><div class="-wm-moz-cite-prefix">Dne 26.12.2023 v 12:08 Martin Locker napsal(a):</div><blockquote><div class="-wm-iw_mail" dir="ltr" style="font-size:13px;"><div dir="auto">>> tak to v obsluze přerušení zatuhne <br><br>>Odial viete, ze to zatuhne *v* obsluhe prerusenia?</div><div>Po přijetí nastaveného počtu znaků se rozsvítí led, první příkaz v obsluze přerušení. </div><div>Z toho vyvozuji, že se do obsluhy přerušení skočí. </div><div><br></div><div>>Co presne znamena *zatuhne*?<br id="-wm-isPasted">Periodický výpis běžící v hlavní smyčce po rozsvícení led už nepokračuje. </div><div>Když neposílám data (která by se přijala), tak periodický výpis běží.</div><div dir="auto"><br>>Dalo by sa zbavit veci z toho arduina?<br>Asi budu muset. To jsem použil abych nemusel ručně řešit ten seriák pro debug.</div><div dir="auto"><br></div><div dir="auto">Martin</div><div><br></div><div><br></div><div class="-wm-gmail_quote"><div dir="auto">On 26 December 2023 10:34:47 CET, Martin Locker <<a class="-wm-moz-txt-link-freetext" href="mailto:locker@vosrk.cz">locker@vosrk.cz</a>> wrote:</div><blockquote class="-wm-gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex;"><div class="-wm-iw_mail" dir="ltr" style="font-size:13px;"><div>Zdravím a přeji krásné pohodové svátky.</div><div><br></div><div>Zbylo mi i trochu času, a tak jsem si zase začal hrát s STM32, ale trochu jsem se zasekl.</div><div>Řeším příjem dat na Uartu, chtěl jsem to vyzkoušet přes DMA. Vypadá to, že to funguje, ale</div><div>pokud nechám generovat přerušení na konci přenosu, tak to v obsluze přerušení zatuhne </div><div>(mám tam pro test rozsvícení led, jednou se do obsluhy IRQ skočí).</div><div>Když to nechám bez přerušení a testuji pouze příznak dokončení DMA přenosu, tak to běží.</div><div><br></div><div>Pokud by se někdo také "nudil", tak zdroják je:</div><div><a class="-wm-moz-txt-link-freetext" href="https://robotika.vosrk.cz/_soubory/main.cpp">https://robotika.vosrk.cz/_soubory/main.cpp</a></div><div><br></div><div>Díky za případné nakopnutí (správným směrem).</div><div><br></div><div class=""><div>Martin Locker</div></div></div></blockquote></div><hr><div>_______________________________________________</div><div>HW-list mailing list - sponsored by <a href="http://www.hw.cz">www.HW.cz</a></div><div><a class="-wm-moz-txt-link-freetext" href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a></div><div><a class="-wm-moz-txt-link-freetext" href="http://list.hw.cz/mailman/listinfo/hw-list">http://list.hw.cz/mailman/listinfo/hw-list</a></div></div><br><div class="-wm-moz-mime-attachment-header"><br></div><pre class="-wm-moz-quote-pre">_______________________________________________<br>HW-list mailing list - sponsored by <a class="-wm-moz-txt-link-abbreviated" href="http://www.hw.cz">www.HW.cz</a><a class="-wm-moz-txt-link-abbreviated -wm-moz-txt-link-freetext" href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a><a class="-wm-moz-txt-link-freetext" href="http://list.hw.cz/mailman/listinfo/hw-list">http://list.hw.cz/mailman/listinfo/hw-list</a></pre></blockquote><p><br></p><hr>_______________________________________________<br>HW-list mailing list - sponsored by <a href="http://www.hw.cz">www.HW.cz</a><br><a class="-wm-moz-txt-link-freetext" href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a><br><a class="-wm-moz-txt-link-freetext" href="http://list.hw.cz/mailman/listinfo/hw-list">http://list.hw.cz/mailman/listinfo/hw-list</a></div></div></div><br><div class="-wm-moz-mime-attachment-header"><br></div><pre class="-wm-moz-quote-pre">_______________________________________________<br>HW-list mailing list - sponsored by <a class="-wm-moz-txt-link-abbreviated" href="http://www.hw.cz">www.HW.cz</a><a class="-wm-moz-txt-link-abbreviated" href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a><a class="-wm-moz-txt-link-freetext" href="http://list.hw.cz/mailman/listinfo/hw-list">http://list.hw.cz/mailman/listinfo/hw-list</a></pre></blockquote><p><br></p><hr>_______________________________________________<br>HW-list mailing list - sponsored by <a href="http://www.hw.cz">www.HW.cz</a><br><a href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a><br><a href="http://list.hw.cz/mailman/listinfo/hw-list">http://list.hw.cz/mailman/listinfo/hw-list</a></div></div></div>_______________________________________________<br>HW-list mailing list - sponsored by <a href="http://www.HW.cz">www.HW.cz</a><br><a href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a><br><a href="http://list.hw.cz/mailman/listinfo/hw-list">http://list.hw.cz/mailman/listinfo/hw-list</a></blockquote></div><hr>_______________________________________________<br>HW-list mailing list - sponsored by <a href="http://www.HW.cz">www.HW.cz</a><br><a href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a><br><a href="http://list.hw.cz/mailman/listinfo/hw-list">http://list.hw.cz/mailman/listinfo/hw-list</a></div></div></div><hr>_______________________________________________<br>HW-list mailing list - sponsored by <a href="http://www.HW.cz">www.HW.cz</a><br><a href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a><br><a href="http://list.hw.cz/mailman/listinfo/hw-list">http://list.hw.cz/mailman/listinfo/hw-list</a></div></div></div>