Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.76/21: Рейтинг темы: голосов - 21, средняя оценка - 4.76
0 / 0 / 0
Регистрация: 24.02.2013
Сообщений: 25
1

PIC24FJ64. Режим сна

24.02.2013, 01:26. Показов 4174. Ответов 33
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
а подскажите как отправить pic24 в сон по изменению уровня сигнала CN а потом по его изменению проснутся...т.е. надо при исчезновении напряжения питания уйти в сон, и питаться от батарейки , а при появлении проснутся.использую внутренний генератор с PLL. прерывание есть по CN - использую для опроса книпок...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.02.2013, 01:26
Ответы с готовыми решениями:

FT2232D и режим сна
Делаю 2-канальный конвертер USB-COM на FT2232D. Надо обеспечить корректное отключение внешних...

Матрица и режим сна ?
К мк подключена матрица как здесь, за одним исключением: сканирующий порт выдает 1 на каждый из...

Режим сна stm32l151
Хочу сделать устройство с максимально экономичным режимом сна. Исходя из даташитов понял, что...

Режим сна АЦП.
Всем привет. Возникла необходимость просыпаться по прерыванию, после окончание преобразования ацп....

Любимый usb 3 :) Режим сна
Доделываю вроде уже проект, последние штрихи остались.Проект - клавиатура обычная . Короче не...

33
97 / 92 / 0
Регистрация: 24.04.2010
Сообщений: 275
24.02.2013, 09:35 2
Не указан контроллер.
Надо прерывание настраивать по изменению уровня на CN.
При выходе из sleep ждать 1-2мс для разгона внутреннего генератора.
1
0 / 0 / 0
Регистрация: 24.02.2013
Сообщений: 25
24.02.2013, 17:23  [ТС] 3
pic24fj64ga004

Добавлено через 27 минут
pic24fj64ga004
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
sub procedure CNInt() iv IVT_ADDR_CNINTERRUPT '
    CNIF_bit = 0
    if (PORTB.15 = 0) or (PORTB.14 = 0) then 'прерывание по кнопкам
       flag_Key = 1
    end if
    if PORTB.5 = 0 then 'прерывание по изменению уровня...стоит резистор на VDD
       flag_Sleep = 1
       TRISA = 0
       TRISB = 0 'KEY1 'KEY2 ,ÒÅÑÒ,ÊÍ1,ÊÍ2
       TRISC = 0 'INT1 RC6
       LATA = 0
       LATB = 0
       LATC = 0
       flag_Sleep = 1
       T1CON.TON = 0  '
       T2CON.TON = 0  '
       T4CON.TON = 0  '
       INT1IE_bit = 0 '
       T1IE_bit = 0   '
       T2IE_bit = 0   '
       T4IE_bit = 0   '
       VREGS_bit = 0
       CLRWDT
 
       asm
          PWRSAV #1
       end asm
 
    else
 
        if Sleep_bit = 1 then 'если порт = 1 и был сон вкл переферию
           met2:
                if (OSCCON.OSWEN = 1) then ' Wait until switchover is completed
                   goto met2 'проверка на старт генератора
                end if
           flag_Sleep = 0
          
           TRISA = 0
           TRISB = $C02C 'KEY1 'KEY2 ,ÒÅÑÒ,ÊÍ1,ÊÍ2
           TRISC = $0040  'INT1 RC6
           'RCON.SWDTEN = 1
'           RCON.SLEEP = 0
           INT1IE_bit = 1 'ïðåðûâàíèå ïî ñèíóñîèäå
           T1IE_bit = 1   'òàéìåð 1
           T2IE_bit = 1   'Enable Timer2 interrupt ,
           T4IE_bit = 1   'òàéìåð ñèíóñîèäû
           T3CON.TON=1      'ñòàðò âåíòèëÿòîðà
           T1CON.TON = 1  'ñòàðò LCD
        end if
    end if
    end if
0
97 / 92 / 0
Регистрация: 24.04.2010
Сообщений: 275
24.02.2013, 21:06 4
А где сама команда "спааать" ?
Зачем в прерывании направления портов менять
Assembler
1
2
3
TRISA = 0
TRISB = 0 'KEY1 'KEY2 ,ТЕСТ,КН1,КН2
TRISC = 0 'INT1 RC6
а потом защелки обнулять
Assembler
1
2
3
LATA = 0
LATB = 0
LATC = 0   ?
В прерывании все пины делаем выходами и мы уже не проснемся, т.к. все ноги это выходы.

Зачем ватчдог включен, если мы засыпать будем?

По куску кода сложно гадать.
В чем отлаживаем?
В протеусе?
Тогда всю папку проэкта в студию с симулятором.
1
0 / 0 / 0
Регистрация: 24.02.2013
Сообщений: 25
24.02.2013, 22:19  [ТС] 5
отладка на готовом устройстве... терморегулятор. команда спать IDLE
Assembler
1
2
3
4
5
6
asm
          PWRSAV #1
          nop
          nop
          nop
       end asm
 Комментарий модератора 
Используем теги.
Миниатюры
PIC24FJ64. Режим сна   PIC24FJ64. Режим сна  
0
0 / 0 / 0
Регистрация: 24.02.2013
Сообщений: 25
25.02.2013, 11:01  [ТС] 6
это кусок кода прерывания...CN . PORTB.5 - пин который читаем. 1- есть питание VDD через резистор. 0 - нет питания. при исчезновении питания МК питается от батарейки через диод. вот и хочу отловить исчезновение питания и перевести на пониженное потребление. только вот непонятка. по прерыванию CN проверяем порт PORTB.5 - если "0" то PWRSAV 1 - IDLE. направление выводов МК менять надо? прерывания все запрещаю. что дальше? просыпаемся где? программа написана на микробейсике...могу выложить всю но там больше 3000 строк

Добавлено через 12 часов 34 минуты
а может так: в обработчике выставляю флаг события - нет питания! в основной программе проверяю этот флаг. если выставлен то отключаю все прерывания и запускаю вачдог. по его сбросу проверяю наличие уровня 1 на входе порта. если 0 опять спать если 1 то проснуться.только вот по вачдогу произойдет сброс счетчика программ на 0? и надо проверку ставить в начале программы?
0
97 / 92 / 0
Регистрация: 24.04.2010
Сообщений: 275
25.02.2013, 18:16 7
В прерывании направления портов не менять.
Для уменьшения токопотребления порты должны быть сконфигурированы на вход.
Команда спать это

PWRSAV #SLEEP_MODE ; Put the device into SLEEP mode

пункт 8.2 документации на контроллер

Уходить в сон лучше в основной программе.
1
0 / 0 / 0
Регистрация: 24.02.2013
Сообщений: 25
25.02.2013, 23:06  [ТС] 8
нашел проблему... батарейка просаживается до 1,95 вольта....
0
97 / 92 / 0
Регистрация: 24.04.2010
Сообщений: 275
26.02.2013, 11:27 9
Цитата Сообщение от Dtolok Посмотреть сообщение
нашел проблему... батарейка просаживается до 1,95 вольта....
Через диод шотки батарейка должна питать только контроллер и силовая часть отделена от питания контролера также через диод. Померить ток потребления от батарейки.

Также у контроллера выставить детектор понижения питания на минимум.
1
0 / 0 / 0
Регистрация: 24.02.2013
Сообщений: 25
26.02.2013, 12:24  [ТС] 10
так и сделал в чем причина непонятна....
0
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
26.02.2013, 12:27 11
так и сделал
покажите схему.
0
0 / 0 / 0
Регистрация: 24.02.2013
Сообщений: 25
27.02.2013, 23:49  [ТС] 12
VDD - питание МК, +3.3в питание всей платы. выход тест - тот самый тест питания МК. на сброс тоже идет от батарейки.
Миниатюры
PIC24FJ64. Режим сна   PIC24FJ64. Режим сна   PIC24FJ64. Режим сна  

PIC24FJ64. Режим сна  
0
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
28.02.2013, 08:21 13
...на первый взгляд ничего криминального. Ток потребления уже промеряли, как указал выше russo turisto?

И какой емкости батарею поставили?
Не CR2032 модель?
0
1976 / 1275 / 130
Регистрация: 04.01.2010
Сообщений: 4,607
28.02.2013, 11:07 14
...имхо использовать шоттки при питании от батарейки по сути зло. Потому что вы получаете потерю 0.4-0.5В просто так, в погоне только за тем, чтобы разъединить батарею и внешнее питание. Если хотите питание от батарейки либо внешнего - используйте джек для ввода питания с коммутацией. то есть вставил джек - питание снаружи. Вытащил - питание перекоммутировалось на батарейное.

Цитата Сообщение от raxp Посмотреть сообщение
Ток потребления уже промеряли
у меня, кстати, к этому тоже вопрос. Контроллер во сне (правильном) иногда кушает до 1мкА (кстати, для чипа ТС ток потребления во сне - 30нА). А при работе может не то что кушать - "жрать" до 20-30мА. То есть в 20-1000тыс. раз больше по сравнению со спящим режимом. И сложность в том, как это померять. Китайский прибор при переключении на макс.чувствительность (предел до 2мА) не дает контроллеру стартовать - напряжение на нем просаживается, а на бОльших диапазонах измерения не видно какой конкретно ток кушает контроллер во сне. Как победить?

Dtolok, задача отправлять в сон регулятор мощности сама по себе странная . Вы хотите сделать так, чтобы прибор мог еще что-то померять без внешнего питания, без функций управления? Тогда вам надо предусмотреть еще отдельный пин для контроля внешнего питания, чтобы не расходовать лишнюю энергию для управления потребителями. Как вы определите, что напряжения уже нет? А в остальном - можно сохранять настройки в non-volatile memory, то есть в EEPROM или пишущемся FLASH, что удобнее и если есть.
0
0 / 0 / 0
Регистрация: 24.02.2013
Сообщений: 25
28.02.2013, 14:28  [ТС] 15
да в том то и вся беда что сразу не предусмотрел внешнюю память... только вот мне надо чтобы при отключении питания шли часы в пике.
0
1976 / 1275 / 130
Регистрация: 04.01.2010
Сообщений: 4,607
28.02.2013, 15:00 16
Цитата Сообщение от Dtolok Посмотреть сообщение
только вот мне надо чтобы при отключении питания шли часы в пике
DS1307 вам в помощь. И не надо никаких лишних снов.
ЗЫ: надо было "человеческий" контроллер выбирать .
0
0 / 0 / 0
Регистрация: 24.02.2013
Сообщений: 25
28.02.2013, 16:44  [ТС] 17
а в чем его не человечность? вот не досмотрел с диодом... сам виноват
0
1976 / 1275 / 130
Регистрация: 04.01.2010
Сообщений: 4,607
28.02.2013, 16:58 18
Цитата Сообщение от Dtolok Посмотреть сообщение
а в чем его не человечность?
да вроде и контроллер, как контроллер... но RTC у него нет, в память как писать - вы, наверное, еще не нашли - городите внешнюю... Спрашивается: чем он вам-то так понравился? ).
0
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
28.02.2013, 17:26 19
вот не досмотрел с диодом
не такая уж и беда с диодом, батарея садится не от него в итоге. Не хочется потерь на диоде, используем полевик, на нем падать будет менее 0.1-0.2В.

DS1307 вам в помощь
а это да, RTC никто не мешал (да и не мешает) поставить.
0
0 / 0 / 0
Регистрация: 24.02.2013
Сообщений: 25
28.02.2013, 17:58  [ТС] 20
RTCC в нем есть ,зачем ставить DS1307... а что такое RTC? о! о полевике я как то не задумывался...спасибо за подсказку! единственное чего не хватает так встроенной EEPROM
0
28.02.2013, 17:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.02.2013, 17:58
Помогаю со студенческими работами здесь

Помогите побороть режим сна AVR
Помогите выйти из сна. Проц ATMiko8A Логика работы простая. На INT0 (порт D вывод 2) висит...

Планшет на Windows пробуждается через 2 секунды после перехода в режим сна/ждущий режим
Здравствуйте. Имеется планшет на Windows 10 - Prestigio MultiPad PMP880TD (штатно должна стоять...

Режим сна
Ребята значит проблема такая. Купил лаптоп asus n53sv i7 8GB RAM - это я написал потомучто там...

Режим сна windows 10
При попытке разбудить компьютер из режима "Сон",он мгновенно выключается,далее при первой попытке...

Режим сна windows 10
При попытке разбудить компьютер из режима "Сон",он мгновенно выключается,далее при первой попытке...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru