www.kn34pc.com

Форум на силистренските радиолюбители
Дата и час: 01 Мар 2024, 00:55

Часовете са според зоната UTC + 2 часа [ DST ]




Напиши нова тема Отговори на тема  [ 7 мнения ] 
Автор Съобщение
 Заглавие: Sleep в PIC
МнениеПубликувано на: 17 Яну 2023, 08:59 
Offline
Аватар

Регистриран на: 07 Дек 2006, 18:24
Мнения: 1454
Местоположение: Силистра
How to get the lowest power consumption out of a 16-bit PIC microcontroller?

В тест за конструкция помогна изключването на Brown Out Reset (BOR).

PIC12LF1571, internal = 4 MHz
sleep() -> 6 uA
sleep() и #fuses NOBROWNOUT -> нямам измервателен уред с подходящ обхват за измерване на консумацията. На обхват 2mA: показания .000 mA.


Върнете се в началото
 Профил  
 
 Заглавие: Re: Sleep в PIC
МнениеПубликувано на: 18 Яну 2023, 15:09 
Offline
Аватар

Регистриран на: 07 Дек 2006, 18:24
Мнения: 1454
Местоположение: Силистра
За "дълбок сън" в PIC16F1503 трябваше да установим и бит VREGPM (reg. 0x197 VREGCON bit 1).
И в speep() и при 16F1503 не мога да измеря консумация :smt041.


Върнете се в началото
 Профил  
 
 Заглавие: Re: Sleep в PIC
МнениеПубликувано на: 23 Юни 2023, 17:54 
Offline
Аватар

Регистриран на: 07 Дек 2006, 18:24
Мнения: 1454
Местоположение: Силистра
Sleep и самосъбуждане след голям период? (> 1..2..3 часа).

WDT. В PIC16F18326 Watchdog Timer Period Select максимално е 256 секунди.
Друго не се сещам, освен да се буди, да увеличавам брояч и да сравнявам дали е достигнал крайна стойност,
с два изхода: ново заспиване или извършване на дейност.

Други варианти? Колко е точно времето по WDT?


Върнете се в началото
 Профил  
 
 Заглавие: Re: Sleep в PIC
МнениеПубликувано на: 28 Юни 2023, 15:37 
Offline

Регистриран на: 05 Юни 2020, 16:51
Мнения: 27
To WDT бие ресет.


Върнете се в началото
 Профил  
 
 Заглавие: Re: Sleep в PIC
МнениеПубликувано на: 28 Юни 2023, 15:49 
Offline
Аватар

Регистриран на: 07 Дек 2006, 18:24
Мнения: 1454
Местоположение: Силистра
Да. Ресет след време, определено от WDTPS. Да стане многократно повече.


Прикачени файлове:
Untitled-1.jpg
Untitled-1.jpg [ 134.34 KiB | Прегледано 4426 пъти ]
Върнете се в началото
 Профил  
 
 Заглавие: Re: Sleep в PIC
МнениеПубликувано на: 28 Юни 2023, 16:14 
Offline

Регистриран на: 05 Юни 2020, 16:51
Мнения: 27
Мисълта ми е, че няма да се пази стойноста на брояча след ресет.


Върнете се в началото
 Профил  
 
 Заглавие: Re: Sleep в PIC
МнениеПубликувано на: 28 Юни 2023, 16:29 
Offline
Аватар

Регистриран на: 07 Дек 2006, 18:24
Мнения: 1454
Местоположение: Силистра
Стойността след събуждане по WDT е запазена (освен ако не инициализирам променливата със стойност при инициализацията).
---
Работи. Просто питам има ли друг начин.

По-долу: 12F675 с макс. WDT време: 2304 ms, умножавам по 10 за 23 секунди.
Код за потвърждение:
uint8_t count;

void main() {
  switch (restart_cause()) {
    case NORMAL_POWER_UP: count = 50; break;  // first start
    case WDT_FROM_SLEEP: count++; break;
  }

  if (count > 10) {  // ~23 sec
    count = 0;

    output_high(PIN_A2);
    delay_ms(3000);
    output_low(PIN_A2);
  }

  setup_wdt(WDT_2304MS);
  restart_wdt();

  sleep();
  reset_cpu();

  while (TRUE) {
  }
}


Върнете се в началото
 Профил  
 
Покажи мненията от миналия:  Сортирай по  
Напиши нова тема Отговори на тема  [ 7 мнения ] 

Часовете са според зоната UTC + 2 часа [ DST ]


Кой е на линия

Потребители, разглеждащи този форум: 0 регистрирани и 1 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
cron
Форумът се задвижва от phpBB® Forum Software © phpBB Group
Преведено от yarnaudov.com