Power-down üzemmód

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Avatar
pepe
DrótVégénSzéndarab
Hozzászólások: 17
Csatlakozott: 2008. szeptember 6. szombat, 6:00

Power-down üzemmód

Hozzászólás Szerző: pepe »

Hali Mindenkinek!

Segítséget szeretnék kérni. Nem tudom az Atmega64L IC-t power-down módba tenni. Illetve úgy néz ki, hogy ott van, de a fogyasztása marad 5 mA, ami nekem sok. Adatlap szerint 20uA elég lenne neki 3V-os tápnál. A táp nálam 3.78V. Lehet, hogy ez a baj, és csak 3V-nál kapcsol le? BASCOM-ot használok, de értem a gépi kódot is. Minden megoldás érdekel. Előre is köszönöm a segítséget.
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

Hozzászólás Szerző: kapu48 »

Első kérdés: Csak az IC fogyasztását méred, vagy az egész áramkörét?
Mert a kettő nem ugyanaz!
Avatar
pepe
DrótVégénSzéndarab
Hozzászólások: 17
Csatlakozott: 2008. szeptember 6. szombat, 6:00

Hozzászólás Szerző: pepe »

Csak az IC + kvarc. Tényleg, nem lehet hogy csak a belső kvarcot tudja lekapcsoln?
Avatar
pepe
DrótVégénSzéndarab
Hozzászólások: 17
Csatlakozott: 2008. szeptember 6. szombat, 6:00

Hozzászólás Szerző: pepe »

Próbáltam belső kvarcal. Sajnos nem jött be.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

A Sleep, PowerDown és egyébeket is kipróbáltad?
A lábakat átállítottad bemenetivé? Belső felhúzóellenállások kikapcsolva?
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

Hozzászólás Szerző: kapu48 »

Melyik Bascomot használod?
A régebbi típusok még nem kezelik teljesen az újabb IC-ket.
Tipp: közvetlen regiszteríráshoz még ASM-sem kel!
Keresd ki adatlapon melyik regiszter melyik bitjét kel beírni és rajta!
:arrow:
Avatar
pepe
DrótVégénSzéndarab
Hozzászólások: 17
Csatlakozott: 2008. szeptember 6. szombat, 6:00

Hozzászólás Szerző: pepe »

Bascom 1.11.9.0 -ot használom.

A hatalmas program:

$regfile = "m64def.dat"
$crystal = 3686400

Powerdown
End

Ebből az alábbi gépi kódot generálja a Bascom. Szerintem jó.
Az reset után az I/O lábak nagyinpedanciás bemenetekre állnak.
A memóriatörlés nem másoltam ide.
Az MCUCR (0x35) regiszterben az SE és SM1 biteket H-ba teszi és utána a SLEEP utasítást kiadja.


+00000059: B785 IN R24,0x35 In from I/O location
+0000005A: 7E8F ANDI R24,0xEF Logical AND with mediate
+0000005B: 6380 ORI R24,0x30 Logical OR with immediate
+0000005C: BF85 OUT 0x35,R24 Out to I/O location
+0000005D: 9588 SLEEP Sleep

Elvileg minden jó. Gyakorlatilag ...
Avatar
pepe
DrótVégénSzéndarab
Hozzászólások: 17
Csatlakozott: 2008. szeptember 6. szombat, 6:00

Hozzászólás Szerző: pepe »

Meg van!!!!

Az attiny25 adatlapjában benne van, hogy a tápfeszültség figyelést BOD ki kell kapcsolni, ha power-down-ba akarjuk kapcsolni az IC-t.
Megtettem ezt az Atmega64-ben is. Csökkent is a fogyasztás, de még mindig mA-es tartományban volt. Aztán kikapcsoltam az On-Chip Debug Enabled biztosítékot. Győzelem!! A fogyasztás 12uA-re csökkent 3.7V feszültség mellett. Ezek után tüzetesebben átnéztem az Atmega64L adatlapját, és ezt találtam jól eldugva a "JTAG Interface and On-chip Debug System" címszó alatt:

If the On-chip debug system is enabled by the OCDEN Fuse and the chip enter Power down or Power save sleep mode, the main clock source remains enabled. In these sleep modes, this will contribute significantly to the total current consumption. There are three alternative ways to avoid this:
• Disable OCDEN Fuse.
• Disable JTAGEN Fuse.
• Write one to the JTD bit in MCUCSR.

Köszönöm a segítséget.
ui: Az ördög a kisbetűkben lakik!
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

Hozzászólás Szerző: kapu48 »

Köszi!
Most már ha hasonló problémánk lesz legalább ezt is tudjuk! :D
Talán telefon AKU-ról üzemelteted? :?:
Avatar
SirLeslie
Pákabűvész
Hozzászólások: 247
Csatlakozott: 2005. április 14. csütörtök, 6:00

Hozzászólás Szerző: SirLeslie »

Ha már powerdown... küzdök ATtiny13 kikapcsolásával (pontosabban újra BEkapcsolásával):
- Powerdown kivételével az összes módból fel tudom ébreszteni INT0-val a procit... Mcucr.se/sm1 természetesen beállítva.
Van valakinek kipróbált/bevált rutinja erre?
(már próbáltam pár google-találat asm részlettel is...hiába)

Kód: Egész kijelölése

Set Mcucr.se              ' adatlap 26.oldal szerint beállítva                         
Mcucr.sm1 = 1             ' adatlap 26.oldal szerint beállítva                  
Powerdown
Reset Mcucr.se                             
Avatar
SirLeslie
Pákabűvész
Hozzászólások: 247
Csatlakozott: 2005. április 14. csütörtök, 6:00

Hozzászólás Szerző: SirLeslie »

SirLeslie írta:Ha már powerdown... küzdök ATtiny13 kikapcsolásával (pontosabban újra BEkapcsolásával)...
A használható megoldás ez lesz (csak pcint-el lehet - pillanatnyilag)...
Avatar
SirLeslie
Pákabűvész
Hozzászólások: 247
Csatlakozott: 2005. április 14. csütörtök, 6:00

Hozzászólás Szerző: SirLeslie »

Az archivum (és mások idejének felesleges pazarlása) kedvéért:

ATtiny2313 kikapcsolása Bascom 2.0.7.2 alatt:

Kód: Egész kijelölése

do
...
If Kikapcsfeltetel= 1 Then
  Config Int1 = Low Level  ' ha INT1-re ébred, és nem erre lenne állítva 
  Enable Interrupts        ' szükséges berakni, nem ébred nélküle INT1-re
  Power Powerdown          ' áramfogyasztás kisebb, mint 0.00A (műszerem méréshatára kicsi)
End If
...
Loop
Avatar
Theophrast
SzínkódFestő
Hozzászólások: 78
Csatlakozott: 2011. július 17. vasárnap, 6:00

Hozzászólás Szerző: Theophrast »

Szép délutánt
kérdezősködésemet itt folytatom tovább

"Az Idle utasítással, amely leállítja a kontroller órajelét, de az UART, a külső megszakítások és az időzítő/számláló megszakítások tovább funkcionálnak. Bármely megszakítás generálása a kontrollert felébreszti az alvó helyzetéből"

- a nagykönyv szerint
Hogyha viszont megy az UART- akkor ezen keresztül fel lehet a chipet ébreszteni?
Ha igen akkor mi ennek az eljárása?
A bascom súgója nem tul beszédes ezügyben...
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

Hozzászólás Szerző: kapu48 »

Engedélyezed a Serial interupt-ot. Mivel minden megszakítás feléleszti elvileg a Procit.
A mintát megtalálod a Bascom>Samples>Serint.bas fileben.
8)
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Többféle power down/Idle van.
Az adatlapban meg lehet lesni, hogy melyik alvó módból - melyik INT kelthet fel....

Fontos!
Alvó mód előtt a speciális INT -et és a globális is engedélyezd!
És persze legyen ott az "On intnév cimke" sor is....
Válasz küldése