Re: Hybrid ΣΔ a PWM -> Pasivni propust vyssiho radu
Miroslav Mraz
mrazik na volny.cz
Úterý Březen 21 09:10:18 CET 2017
Víte co, tady je to celé, můžete to zkoumat do libosti.
http://mujweb.cz/mrazik/tmp/gsm.zip
Jen jak to vzniklo - kamarád chtěl něco jako mají radioamatéři
automatizovaný CQ, prostě opakovat jednu blbou větu když je potřeba. Měl
jsem hotový přehrávač mp3 na F4 Discovery, ale bylo mi toho líto. Zbylo
několik modulů s STM32F051 (64KB flash), tak jsem zkoumal jak do toho
dostat tu větu a pak jí přehrát. Protože se věta v PCM do 64KB nevešla,
použil jsem gsm full rate kompresi - mp3 soft by se tam nevešel a pro
řeč gsm stačí. Původně byl výstup na DAC, ale pak jsem si řekl, že když
už je to napsané, tak to zrecykluji a udělám si z toho kukačkové hodiny.
A protože se mi nechtělo patlat zesilovač, zkouším výstup PWM a nějaký H
můstek jako zesilovač. Ale kukačky z toho nebudou, to děsí kocoura a mě
nakonec taky. Už trochu chápu, proč se na webu moc konstrukcí kukaček
nenachází.
K tomu timeru. Já to moc do hloubky nepitvám. Tady by asi šlo s výhodou
použít DMA, ono přece jen přerušovat s frekvencí desítek kHz zatíží i
výkonný procesor. Ale mě 16kHz stačí (kocourovi ne) a chodí to, tak už
to předělávat nebudu. Disasm sem dávat nebudu, je použit timer2 s
bázovou adresou 0x40000000 a tak je ten překlad hodně divný, protože
místo aby si to vzalo adresu z paměti, tak jí to počítá bitovými posuny.
Mrazík
Dne 20.3.2017 v 22:39 Jan Waclawek napsal(a):
>> ©lo mi o to jak poèítat právì to, co tam mám
>> zapsat. To jsem vymý¹lel (a testoval) celé odpoledne. Je to sice jen pár
>> øádek a vypadá to primitivnì ale fakt to funguje.
>
> No, ano, paci sa mi to. A ocenujem vybrusenych par riadkov programu. To som
> nenapisal ale v robote bol fakt fofr.
>
> Teda ten callback sa mi nepaci ale to suvisi s Vasim versus mojim pristupom
> k veciam, to je tiez pre danu temu irelevantne.
>
> Zrejme sa da okolo samotneho delta spekulovat aj ovela dalej ako je 2x
> oversampling; ale cele je to vec, ktoru som si nastudoval uz niekolkokrat
> a kedze to nepouzivam tak to vzdy znova uspesne do par mesiacov cele
> zabudnem...
>
>
>> Ano, STM32F051, já jsem si ty registry nakonec udìlal po svém. Nastavení
>> timeru zde neøe¹ím, to ¾e nìkam zapí¹u ¹íøku pulsu by mìlo být z té
>> druhé øádky snad jasné.
>
> To je jasne, len som chcel podotnkut, ze v tych timeroch je mechanizmus
> buffrovania novej hodnoty pre PWM ktora sa uplatni az pri nasledujucom
> update, takze ten zapis do CC registra vobec netreba odkladat do dalsieho
> cyklu.
>
>
>> Kdy¾ tam pí¹ou, ¾e by software, tak ho fakt nuluju.
>
> Nie, to je v poriadku, ak by ste ho nenulovali tak zostanete trcat v tom
> preruseni donekonecna, to by si asi vsimli aj tie ozajstne netopiere.
>
> Mozete prosim ukazat disasm relevantny k tomuto riadku, prip. aj definiciu
> tych flagov? Ano, je to OT k vlaknu.
>
> Dakujem,
>
> wek
>
>
>
> ----- Original Message ---------------
>> UIF: Update interrupt flag
>> This bit is set by hardware on an update event. It is cleared by software.
>>
>> Kdy¾ tam pí¹ou, ¾e by software, tak ho fakt nuluju.
>>
>> Mrazík
>>
>> Dne 20.3.2017 v 18:57 Jan Waclawek napsal(a):
>>> Ozaj,
>>>
>>>> gTim.SR.BIT.UIF = RESET; // nuluj pøeru±ení
>>>
>>> toto je co, a ako sa to prelozi?
>>>
>>> wek
>
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
Další informace o konferenci Hw-list