STM32F103 UART DMA

V P vvitty01 na seznam.cz
Úterý Prosinec 26 13:23:30 CET 2023


Tak preruseni od USARTu po kazdem znaku a po detekci startovaciho patternu 
toto preruseni vypnout, nastavit DMA a nechat to na nem ?



Samozrejme to ma nejake chybky, jako treba desynchronizaci pokud nejaky znak
v prijmu vypadne a nebo naopak dojde na falesnou detekci.

-- 
-----------------------------------------
Pokud máte zájem, navštivte naši stránku o mašinkách - http://www.pojezdy.eu

---------- Původní e-mail ----------
Od: Martin Locker <locker na vosrk.cz>
Komu: HW-news <hw-list na list.hw.cz>
Datum: 26. 12. 2023 13:16:55
Předmět: Re[2]: STM32F103 UART DMA
"

Ten packet má vždy 48B, takže jsem si udělal kruhový buffer na 96B.

S tím, že po přerušení zpracuji ten přijatý packet. Jen jak to 
zasynchronizovat?

Průběžné zpracování jsem měl, ale chtěl jsem zkusit

trochu odlehčit procesoru (aby nebylo přerušení po každém znaku).





Martin







----- Původní zpráva -----
----------------------------------------------------------------------------
Odesilatel: Jaroslav Buchta (jaroslav.buchta na hascomp.cz
(mailto:jaroslav.buchta na hascomp.cz))
Datum: 26/12/2023 13:05
Příjemce: hw-list na list.hw.cz(mailto:hw-list na list.hw.cz)
Předmět: Re: STM32F103 UART DMA



No to bude tim, ze je to cpp a funkce musi byt pojmenovana podle "C"




Prijem pres DMA moc nejde, pokud to neni pevne dany pocet B.

Ja si delam kruhovy buffer, preruseni v pulce a celem rozsahu a navic to 
ocmuchavam periodicky, znaky postupne stavovym automatem zpracovavam, jak 
prichazeji.




Dne 26.12.2023 v 13:00 Martin Locker napsal(a):
"


Tak už se mi to podařilo rozjet. Někde jsem vygůglil, že je nutné přidat:

extern "C" void DMA1_Channel6_IRQHandler(void);


Sice nechápu proč, ale už to běží.




Tak teď už jen vyřešit "zásadnější" problém. Jak se zachytit na začátek 
paketu.

Zařízení (lidar) kontinuálně odesílá data po paketech začínajících 0x54 0x2
C.

Tak bych potřeboval odstartovat ten DMA přenos se začátkem packetu. 

Abych po dokončení přenosu, měl vždy jeden celý packet.





Martin Locker







----- Původní zpráva -----
----------------------------------------------------------------------------
Odesilatel: Jaroslav Buchta (jaroslav.buchta na hascomp.cz
(mailto:jaroslav.buchta na hascomp.cz))
Datum: 26/12/2023 12:13
Příjemce: hw-list na list.hw.cz(mailto:hw-list na list.hw.cz)
Předmět: Re: STM32F103 UART DMA



Podival bych se, jestli neni nejaka zakernost v DigitalRead/Write v 
preruseni (nebo to rovnou nahradil)

A jestli neni potreba nulovat neco dalsiho v ISR, ze by se to v preruseni 
zacyklilo...

A nebo ladit v debuggeru.




Dne 26.12.2023 v 12:08 Martin Locker napsal(a):
"

>> tak to v obsluze přerušení zatuhne 

>Odial viete, ze to zatuhne *v* obsluhe prerusenia?

Po přijetí nastaveného počtu znaků se rozsvítí led, první příkaz v obsluze 
přerušení. 

Z toho vyvozuji, že se do obsluhy přerušení skočí. 




>Co presne znamena *zatuhne*?
Periodický výpis běžící v hlavní smyčce po rozsvícení led už nepokračuje. 

Když neposílám data (která by se přijala), tak periodický výpis běží.


>Dalo by sa zbavit veci z toho arduina?
Asi budu muset. To jsem použil abych nemusel ručně řešit ten seriák pro 
debug.




Martin








On 26 December 2023 10:34:47 CET, Martin Locker <locker na vosrk.cz
(mailto:locker na vosrk.cz)> wrote:
"

Zdravím a přeji krásné pohodové svátky.




Zbylo mi i trochu času, a tak jsem si zase začal hrát s STM32, ale trochu 
jsem se zasekl.

Řeším příjem dat na Uartu, chtěl jsem to vyzkoušet přes DMA. Vypadá to, že 
to funguje, ale

pokud nechám generovat přerušení na konci přenosu, tak to v obsluze 
přerušení zatuhne 

(mám tam pro test rozsvícení led, jednou se do obsluhy IRQ skočí).

Když to nechám bez přerušení a testuji pouze příznak dokončení DMA přenosu, 
tak to běží.




Pokud by se někdo také "nudil", tak zdroják je:

https://robotika.vosrk.cz/_soubory/main.cpp
(https://robotika.vosrk.cz/_soubory/main.cpp)




Díky za případné nakopnutí (správným směrem).





Martin Locker


"
----------------------------------------------------------------------------

_______________________________________________

HW-list mailing list  -  sponsored by www.HW.cz(http://www.hw.cz)

Hw-list na list.hw.cz(mailto:Hw-list na list.hw.cz)

http://list.hw.cz/mailman/listinfo/hw-list
(http://list.hw.cz/mailman/listinfo/hw-list)






_______________________________________________<br>HW-list mailing list  -  sponsored by <a href='http://www.hw.cz' class='-wm-moz-txt-link-abbreviated'>www.HW.cz</a><a href='mailto:Hw-list na list.hw.cz' class='-wm-moz-txt-link-abbreviated -wm-moz-txt-link-freetext'>Hw-list na list.hw.cz</a><a href='http://list.hw.cz/mailman/listinfo/hw-list' class='-wm-moz-txt-link-freetext'>http://list.hw.cz/mailman/listinfo/hw-list</a>
"


----------------------------------------------------------------------------
_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz(http://www.hw.cz)
Hw-list na list.hw.cz(mailto:Hw-list na list.hw.cz)
http://list.hw.cz/mailman/listinfo/hw-list
(http://list.hw.cz/mailman/listinfo/hw-list)







_______________________________________________<br>HW-list mailing list  -  sponsored by <a href='http://www.hw.cz' class='-wm-moz-txt-link-abbreviated'>www.HW.cz</a><a href='mailto:Hw-list na list.hw.cz' class='-wm-moz-txt-link-abbreviated'>Hw-list na list.hw.cz</a><a href='http://list.hw.cz/mailman/listinfo/hw-list' class='-wm-moz-txt-link-freetext'>http://list.hw.cz/mailman/listinfo/hw-list</a>
"


----------------------------------------------------------------------------
_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz(http://www.hw.cz)
Hw-list na list.hw.cz(mailto:Hw-list na list.hw.cz)
http://list.hw.cz/mailman/listinfo/hw-list
(http://list.hw.cz/mailman/listinfo/hw-list)


_______________________________________________ 
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/20231226/8a3999a8/attachment-0001.htm>


Další informace o konferenci Hw-list