Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
04.08.2010, 16:19
|
|
Прохожий
Регистрация: 27.12.2007
Сообщений: 2
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
PIC18F252 и режим SLEEP
Доброе время суток! МК PIC18F252. Есть такая задача - нужно МК вводить в SLEEP и затем выводить по изменению уровня на выводе контроллера (в часности - RB5), и включить режим "мигания" светодиода. Написал на асме.
Светодиод на вывод RA2, T0CKI подключен на массу, кнопка на RB5 и массу, работает от кварца 4 Мгц.
;************************************************* ******************************
*************
LIST P=18F252
#include ‹P18F252.INC› ;ПОДКЛЮЧЕНИЕ ФАЙЛА С ОПИСАНИЕМ ПЕРЕМЕННЫХ И СИСТЕМНЫХ РЕСУРСОВ PIC18F252
radix dec
;************************************************* ******************************
*************
#define Led2 PORTA,2
; ================= задаем биты конфигурации : =================
CONFIG OSC = HS
CONFIG WDT = OFF ; сторожевой таймер выключить
CONFIG LVP = OFF ; запретить низковольтное программирование
BODEN = 0
; ================================================== ============
Reg_1 EQU 0x039
Reg_2 EQU 0x040
;************************************************* *******************************************
ORG 0x0000 ; Вектор сброса процессора, начальный адрес
;************************************************* *******************************************
goto Start
Start:
clrf INTCON ; запрещаем все прерывания
clrf INTCON2
clrf INTCON3
clrf PIE1
clrf PIE2
clrf PIR1
clrf PIR2
clrf RCON
clrf SSPCON2
clrf SSPSTAT
clrf SSPBUF
clrf SSPADD
clrf T0CON
clrf T1CON
clrf T2CON
clrf T3CON
clrf CCP1CON ; Выкл. модули сравнения.
clrf CCP2CON
clrf SSPCON1
clrf RCSTA ; Выкл. посдедовательные порты.
clrf ADCON0 ; Выкл. АЦП
movlw B'00000110'
movwf ADCON1
clrf LATA
clrf LATB
clrf LATC
setf TRISA
setf TRISB
setf TRISC
movlw B'00100000'
movwf TRISB ;RB5 будет на вход
bcf TRISA,2 ; Порт на выход (светодиод)
bcf INTCON2, NOT_RBPU ; ВКЛ. ПОДТЯГ. РЕЗ. PORTB
bcf INTCON2, RBIP ; обработчик прерываний по изменению уровня на PORTB на ? приоритет
bsf INTCON, RBIE ; Разрешить прерывания по изменению уровня на PORTB
loop:
btfss PORTB,5
bra Start
rcall Pause02
clrf LATB
movf PORTB, W
bcf INTCON, RBIF
;bsf INTCON2, NOT_RBPU ; ВЫКЛ. ПОДТЯГ. РЕЗ. PORTB
sleep
nop
Skaniruem_knopku:
btfss PORTB,5
bra Skaniruem_knopku
btfss PORTB,5
bra $-2
migalka:
bsf Led2 ; Зажечь Svetodiod 2
rcall Pause02 ; Время = 0,2 с
btfss PORTB,5
bra Start
bcf Led2 ; Потушить Svetodiod 2
rcall Pause02 ; Время = 0,2 с
btfss PORTB,5
bra Start
bra migalka
; ================================================== ============
Pause02:
movlw .197
movwf Reg_1
paus_ clrf Reg_2
paus__
nop
decfsz Reg_2, F
bra paus__
decfsz Reg_1, F
bra paus_
return
; ================================================== ============
END
Вопрос в том что в режима сна МК потребляет 100 мкА. Не много ли потребляет? Например недавно "изучал" Pic12F629/675 - там ток потребления "во сне" менее 1 мкА.
P.S. Так же заметил странное влияние: если приблизить руку к мк, то ток возрастает до 1 мА
Пробовал питание от АКБ (U=4,2 В) ток потребления = 40 -50 мкА. Хотя в даташите на МК: I = 0,11 - 20 мкА.
Тут же достаю такой же "макет н а воздухе" на 12F675, те же условия (БП, тестер), "слип" работает как часы. Не понимаю в чем дело?
|
|
|
|
04.08.2010, 16:41
|
|
Гражданин KAZUS.RU
Регистрация: 08.07.2006
Сообщений: 583
Сказал спасибо: 76
Сказали Спасибо 90 раз(а) в 66 сообщении(ях)
|
Re: PIC18F252 и режим SLEEP
brownout детектор и прочую лабуду отключить. Сторожевой таймер отключить. Неиспользуемые выводы перевести в определенное состояние.
__________________
Sex, Druggs, Rock&Roll
|
|
|
|
04.08.2010, 19:02
|
|
Гражданин KAZUS.RU
Регистрация: 17.08.2008
Сообщений: 770
Сказал спасибо: 52
Сказали Спасибо 450 раз(а) в 202 сообщении(ях)
|
Re: PIC18F252 и режим SLEEP
На офф сайте PIC18F252 не рекомендуют для новых разработок, наверное не зря
|
|
|
|
04.08.2010, 19:09
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
|
Re: PIC18F252 и режим SLEEP
Гыыы... ![Рот до ушей](images/smilies/icon_doushei.gif)
На офф сайте даже PDF убрали.
|
|
|
|
04.08.2010, 20:13
|
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,530
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 810 сообщении(ях)
|
Re: PIC18F252 и режим SLEEP
Хоть он уже и устаревший, у меня во сне потребляет 0,1-0,2 мкрА.
|
|
|
|
05.08.2010, 00:09
|
|
Прописка
Регистрация: 25.11.2006
Адрес: Харьков
Сообщений: 295
Сказал спасибо: 25
Сказали Спасибо 71 раз(а) в 60 сообщении(ях)
|
Re: PIC18F252 и режим SLEEP
Сообщение от sheff2441
|
Так же заметил странное влияние: если приблизить руку к мк, то ток возрастает до 1 мА
|
Сообщение от sheff2441
|
setf TRISA
setf TRISB
setf TRISC
|
У Вас же порты A и C настроены на вход и висят в воздухе. Потому и такой ток, и возрастает от руки.
Сообщение от XoDoK11
|
На офф сайте PIC18F252 не рекомендуют для новых разработок, наверное не зря
|
Это не значит, что он плохой, просто есть более современные варианты. Но у кого их завалялось ...штук, то почему бы не применить.
|
|
|
|
05.08.2010, 10:18
|
|
Прохожий
Регистрация: 27.12.2007
Сообщений: 2
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: PIC18F252 и режим SLEEP
Спасибо всем за помощь!
setf TRISA
setf TRISB
setf TRISC - эти строчки убрал
и перевел PORTA и PORTC на выход:
movlw B'00000000'
movwf TRISA
movlw B'00000000'
movwf TRISC
получил ток 39 мкА, и ни какого влияния руки!
После отключил детектор снижежения напряжения питания:
CONFIG BOR = OFF
, и ларчик открылся, I‹1 мкА !
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 20:17.
|
|