Sida 1 av 2

Försätta 12F1847 i sleep mode

Postat: 6 september 2017, 14:14:05
av newbadboy
http://ww1.microchip.com/downloads/en/D ... 01441F.pdf

Hittar inte riktigt hur jag försätter nämnd krets i sleep mode. Jag trodde det var ngt register som sköter just sleep mode. Men det verkar snarare vara så att man tex ska disabla klocka etc. Stämmer detta?

Re: Försätta 12F1847 i sleep mode

Postat: 6 september 2017, 14:22:38
av lillahuset
Läs databladet du länkar till. Sidan 77 kapitel 9.

Re: Försätta 12F1847 i sleep mode

Postat: 6 september 2017, 14:40:34
av sodjan
Ja, "SLEEP" är en instruktion som ska köras. Den i sin tur
sätter en del register lite hit och dit som behövs...

Re: Försätta 12F1847 i sleep mode

Postat: 6 september 2017, 14:50:11
av newbadboy
Det var just den sidan jag kollat själv på.

Kan jag helt enkelt skriva bara

SLEEP;

känns underligt

Re: Försätta 12F1847 i sleep mode

Postat: 6 september 2017, 15:01:33
av lillahuset
Står det i databladet kan du räkna med att det är så. Gäller i stort sett alltid.

Re: Försätta 12F1847 i sleep mode

Postat: 6 september 2017, 15:11:29
av newbadboy
Haha, jag tyckte bara att det för en gångs skull står för tydligt så jag tänkte, nää så enkelt är det inte :)

Re: Försätta 12F1847 i sleep mode

Postat: 6 september 2017, 15:18:42
av sodjan
Om du kör assembler så är som vilken annan instruktion som helst.
Om du kör C så får du kolla din C-manual hur det är löst. Ofta finns
det en funktion som heter just sleep().

Sök även efter "sleep" i databladet. Det finns många stället som
"xxx operation during sleep" o.s.v.

Re: Försätta 12F1847 i sleep mode

Postat: 6 september 2017, 15:24:57
av newbadboy
Kör c.

Men jag hittade nog nu vad det heter.

asm sleep;

Re: Försätta 12F1847 i sleep mode

Postat: 6 september 2017, 17:53:15
av sodjan
Ja, det går ju också. I XC8 så kan man antingen använde embedded ASM:

#asm
SLEEP
#endasm

Eller använda funktionen:

SLEEP();

Re: Försätta 12F1847 i sleep mode

Postat: 13 september 2017, 09:09:14
av bearing
Dock är det väl inte riktigt så enkelt. Du måste ju ta fram en strategi för hör den ska vakna också! Annars kommer den glatt sova länge =)
Enklast är väl att ha något interrupt som väcker den.

Re: Försätta 12F1847 i sleep mode

Postat: 13 september 2017, 09:12:48
av newbadboy
Jo i detta fallet skall den sova länge. Den ska utföra lite uart grejer när den strömsätts. Sen ska den vara sömnig och sova tills man togglar strömmen.

Men ja annars måste den ju väckas.

Re: Försätta 12F1847 i sleep mode

Postat: 13 september 2017, 09:15:38
av bearing
Aha, ja i så fall kan du ju ställa in så att den stänger av i princip allt. Passa på att stänga av alla periferi-enheter innan, ifall de inte stängs av automatiskt.

Re: Försätta 12F1847 i sleep mode

Postat: 13 september 2017, 09:22:31
av newbadboy
Det var ingen dum ide, ska prova se om det gör ngn skillnad. Just nu drar hela kortet 130uA i sleep.

Re: Försätta 12F1847 i sleep mode

Postat: 13 september 2017, 10:03:35
av Magnus_K
Se om du kan dimensionera om, eller eventuellt deaktivera, pull-ups också.
Kanske självklart, men ville bara nämna det.

Re: Försätta 12F1847 i sleep mode

Postat: 13 september 2017, 10:17:30
av newbadboy
Det finns en spänningsdelare på 2x1Mohm som används för batteristatus, dock bidrar den med rätt lite.

Kortet är mestadels icke strömsatt och då ligger det på ca 5uA förbrukning pga av spänningsdelaren. Vilket ger ca 5 års batteritid. Helt ok