PIC16F15323 / ADC / sleep

Jan Waclawek konfera na efton.sk
Pondělí Srpen 12 16:48:11 CEST 2019


[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


Další informace o konferenci Hw-list