PIC16F15323 / ADC / sleep

Jindrich Fucik fulda na seznam.cz
Úterý Srpen 13 21:57:39 CEST 2019


Uff, asi tomu nerozumím.
Ale mohu napsat, co mám nastavené

; Timer2 management			; 100ms for AD conversion
T2CLKCON_INI	equ 0x04    ; T2CS LFINTOSC;
T2HLT_INI   equ 0x00    ; T2PSYNC Not Synchronized; T2MODE Software 
control; T2CKPOL Rising Edge; T2CKSYNC Not Synchronized;
T2RST_INI   equ 0x00	; T2RSEL T2INPPS pin;
T2PR_INI    equ d'193'	; T2PR 194 (0.C2); = 193*16 = 3088; 31000Hz / 
3088 = cca 10Hz read frequency (100ms)
;T2TMR = 0x00; TMR2 0;
T2CON_INI   equ 0xC0	; T2CKPS 1:16; T2OUTPS 1:1; TMR2ON on;

; Analog to digital converter
ADCON0_INI   equ	b'01000001'	; input is RC0, AD is enabled
ADCON1_INI   equ	b'01110000'	; Right justified, ADCRC oscillator, Vdd = Vref
ADACT_INI    equ	0x04		; Match between Timer2 postscaled value and PR2

Tedy timer2 přetéká cca jednou za 100ms a to má spustit ADC. Nezdá se mi 
na tom moc složitého.

K tomu jsou dvě kombinace PIE - první funguje, ale budí procesor 2x, 
druhá nefunguje

První:
PIE1_INI	equ 0x01	; analog to digital converter enabled to wake up
PIE4_INI	equ 0x02	; timer2 to wake up
INTC_INI	equ 0x40	; no interrupt enabled (PIE is enabled to wake up only)

Druhá:
PIE1_INI	equ 0x01	; analog to digital converter enabled to wake up
PIE4_INI	equ 0x00	; no timer to wake up
INTC_INI	equ 0x40	; no interrupt enabled (PIE is enabled to wake up only)


Ještě pro zvídavé čtenáře doplním PMD, mám skoro vše vypnuté:
PMD0_INI	equ	b'11000111'	; CLKRMD CLKR disabled; SYSCMD SYSCLK enabled; 
FVRMD FVR disabled; IOCMD IOC disabled; NVMMD NVM disabled;
PMD1_INI	equ	b'10000011'	; TMR0MD TMR0 disabled; TMR1MD TMR1 disabled; 
TMR2MD TMR2 enabled; NCOMD DDS(NCO) disabled;
PMD2_INI	equ	b'01000111'	; ZCDMD ZCD disabled; CMP1MD CMP1 disabled; 
ADCMD ADC enabled; CMP2MD CMP2 disabled; DAC1MD DAC1 disabled;
PMD3_INI	equ	b'00111111'	; CCP2MD CCP2 disabled; CCP1MD CCP1 disabled; 
PWM4MD PWM4 disabled; PWM3MD PWM3 disabled; PWM6MD PWM6 disabled; PWM5MD 
PWM5 disabled;
PMD4_INI	equ	b'01010001'	; CWG1MD CWG1 disabled; MSSP1MD MSSP1 disabled; 
UART1MD EUSART disabled;
PMD5_INI	equ b'00011110'	; CLC3MD CLC3 disabled; CLC4MD CLC4 disabled; 
CLC1MD CLC1 disabled; CLC2MD CLC2 disabled;

a naopak OSCEN má vynuceně zapnuté LFOEN a ADOEN, to ale asi není nutné. 
Zase to moc nevadí:
OSCEN_INI   equ 0x14	    ; MFOEN disabled; LFOEN enabled; ADOEN enabled; 
EXTOEN disabled; HFOEN disabled;

Přiznám se, že jsem moc dlouho ne-experimentoval. Mohl bych se pokusit 
probudit převodník ještě TMR1 v 8 bit režimu, nebo NCO1, v obou 
případech by to bylo hodně podobné.

Dne 13.8.2019 v 20:57 Jan Waclawek napsal(a):
> [preposielam]
> 
>   Ahoj,
> 
>   mam este par poznamok pre p.Fucika, kedze aspon tusi, co som mal na
>   mysli vcera a co som chcel povedat tym kratkym programom s dvoma
>   preruseniami.
> 
>   Ja sice pouzivam na debugovanie osciloskop a dve LED-ky, ale logicky
>   analyzator sa da uplne plnohodnotne debugovanie a ladenie pouzit tiez.
> 
>   P.Fucik spravne zistil, ze problem je s nastavenim TMR2. Myslel som
>   si, ze ked ma v AR clanky s 16f628, tak ten problem s TMR2 najde velmi
>   rychlo. Ale asi som sa zmylil. To je totizto ta cast odpovede
>   bonusovej otazky preco pouzit prave TMR2. Ked zoberiete datasheet
>   16f628, tak zistite, ze ked budete chciet generovat periodicky
>   interrupt povedzme 250usec., ano to dalsia cast odpovede bonusovej
>   otazky, tak mate dve moznosti. Bud budete v preruseni od TMR2
>   programom zapisovat periodu do TMR2, alebo si nastavite periodu do
>   registra PR2 a hardware TMR2 si ju nastavi sam. A toto musite nastavit
>   aj na tom novom cipe 16f15313. A potom ostava urobit vsetky ostatne
>   kroky, ktore som uz napisal skor.
> 
>   Ako pedagog som sa velmi neosvedcil, ale aspon som snad niekomu trochu
>   pomohol.
> 
>   Prajem pekny den a vela uspesnych krocikov pri debugovani. :)
> 
>   A.
> 
> _______________________________________________
> 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