PIC16F15323 / ADC / sleep

Jindrich Fucik fulda na seznam.cz
Pondělí Srpen 12 21:16:49 CEST 2019


Tak nějak jsem i postupoval. Tedy s tím rozdílem, že jsem nepoužíval 
ledky a osciloskop, ale Saleae Logic přímo na pinech. mám to tak raději.
Jak říkám, celé to fungovalo celkem dobře. do té doby, než jsem smazal 
PIE4.TMR2IF. (tedy timer 2 neprobudí procesor)
Pokud ho tam mám, klidně mohu dát dva sleep za sebou a funguje to. Ale 
když timer2 neprobudí procesor, jen spustí ADC, tak už se mi procesor 
nikdy neprobudil.

Ale v mém případě je to stejně jen takové hraní. Z hlediska spotřeby 
energie je to mimo, samotné odpory v tom joysticku mají větší spotřebu 
než běžící procesor.

Vlastně ještě jedna drobnost - já nemám povolené GIE. Prostě používám 
PIEx k probuzení procesoru, ale nepoužívám přerušení, všechno obsluhuji 
v mainu. Stejně je to jen pár instrukcí. (vezmi horní 4 bity z ADC a 
pokud se liší od minule, tak je odešli na výstup). Jen dálkové ovládání, 
nic složitého.

Dne 12.8.2019 v 16:48 Jan Waclawek napsal(a):
> [preposielam]
> 
> 
> Ahoj,
> 
> ked uz teda riesime ten aj sleep s ADC, tak som si pozrel datasheet od
> tej 16f15313. A kupodivu periferie to ma skoro rovnake ako ta
> 18...k42. Takze zase by som poradil napisat si ten isty soft ako som
> doporucil p.Vicekovi s timerom 2, 250us a LED1,LED2. Napisat si to bez
> sleepu, normalne za plneho chodu mcu. Tim2 by mal mat hw-reload, takze
> LED1 by mala sama blikat v nastavenom intervale. Potom pustat ADC. V
> dalsom kroku pouzit auto-triger Mali by blikat LED1 a LED2. Potom uz
> vypnut int od timera a nechat len ten LED2. A ked bude toto vsetko
> fungovat tak to prepnut na spravne oscilatory a pridat sleep. Ten
> sleep je dobre mat osetreny nop-mi nejako takto
> nop(),nop(),sleep(),nop(),nop(). Podla datasheetu by malo vsetko
> fungovat.
> 
> A este ma napadla jedna moznost inspiracie, stiahnut si demo-kod pre
> periferie zo stranky microchipu. On sa sice potom bude na vas stale
> usmievat taky maly sikmooky cinan s velkym klobukom, ale snad nebude
> velmi otravny.
> 
> p.s.: Bonusova otazka: preco treba osciloskop, 250us a tim2?
> 
> A.
> 
> ---
> 
> Ahoj,
> 
> Budu reagovet jen na ten sleep.
> 
> Ano, to že Fosc není k dispozici to vím, respektive došlo mi to
> relativně brzo a v dokumentaci jsem si dohledal jak používat periferie
> bez něj.
> Právě ten PIC16F153xx má k dispozici větší množství hodin. Je k
> dispozici jak LFINTOSC (31kHz), tak MFINTOSC 31,25kHz/500kHz a nebo
> HFINTOSC 1-32MHz, které mohu používat pro timery a mohu jim zakázat
> spánek (nebo ho regulovat)
> 
> Já mám použitý Timer2 poháněný tím LFINTOSC. Timer běží a přetéká jak
> má, to se chová naprosto mravně.
> 
> Pak mám ten AD převodník, který má svůj ADRC oscilátor, který ho
> pohání a také se chová celkem mravně. Tedy chová se jak je popsáno -
> měření probíhá a pokud při něm CPU usne, tak to nevadí a na konci
> měření je probuzen.
> 
> Jediné co nefunguje je spouštění ADC měření na spícím procesoru.
> Pravděpodobně to má něco společného s tím, že není k dispozici system
> bus a neprobíhá komunikace mezi periferiemi, které "nespí". Což je
> pravda, že dokumentace ani nijak nepopisuje. u AD převodníku je
> napsáno, že měření "doběhne", ale nic o tom, že "začne nové".
> 
> (je pravda, že mám vypnuté téměř všechny periferie, včetně "rozvodu hodin")
> 
> Jindra
> _______________________________________________
> 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