реклама на сайте
подробности

 
 
> LPC1768 SLEEP & LPC_PINCON->PINMODE
truebest
сообщение Jul 12 2013, 06:48
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 71
Регистрация: 12-05-10
Пользователь №: 57 214



Пытаюсь добиться от LPC1768 минимального энергопотребления. В аппноте AN10915 говорят что по умолчанию все ноги контроллера являются входами + подключен внутренний pull-up резистор. Рекомендуют сперва на всех GPIO выключить pull-up резисторы. Ок лезем в юзермануал а там...
Там сказано что в карте регистров существует с PINMODE0 - PINMODE7 и PINMODE9. Ок Лезем ниже где расписаны эти регистры, там существует описание только для PINMODE0 - PINMODE4 PINMODE7 PINMODE9.
Лезем в хеадер lpc17xx.h там вообще с PINMODE0 по PINMODE9 все есть ренистры. Что точно нужно менять непонятно..

Минимального энергопотребления удалось добиться когда я на всех GPIO включаю только pull-down резисторы в режиме котроллера power down моя плата потребляет 330микроампер(реально из них контроллер потребляет около 150мка что много для этого режима сна). Если я все gpio настраиваю как non-pull-up non-pull-down и отправляю котроллер в power down то моя плата потребляет 1.1ма.
Перед сном отключаю все то можно деинициализирую UARTты ADC и прочее.


Собственно вопросы, сколько существует реально PINMODE регистров?
Что нужно сделать чтобы добиться минимального энергопотребления?

Сообщение отредактировал truebest - Jul 12 2013, 06:48
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
truebest
сообщение Jul 12 2013, 09:02
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 71
Регистрация: 12-05-10
Пользователь №: 57 214



Решение типа:
CODE
LPC_PINCON->PINSEL0 = 0x00000000;
LPC_PINCON->PINSEL1 = 0x00000000;
LPC_PINCON->PINSEL2 = 0x00000000;
LPC_PINCON->PINSEL3 = 0x00000000;
LPC_PINCON->PINSEL4 = 0x00000000;
LPC_PINCON->PINSEL5 = 0x00000000;
LPC_PINCON->PINSEL6 = 0x00000000;
LPC_PINCON->PINSEL7 = 0x00000000;
LPC_PINCON->PINSEL8 = 0x00000000;
LPC_PINCON->PINSEL9 = 0x00000000;
LPC_PINCON->PINSEL10 = 0x00000000;

/*Выключаем Pull-up*/
LPC_PINCON->PINMODE0 = 0xAAAAAAAA;
LPC_PINCON->PINMODE1 = 0xAAAAAAAA;
LPC_PINCON->PINMODE2 = 0xAAAAAAAA;
LPC_PINCON->PINMODE3 = 0xAAAAAAAA;
LPC_PINCON->PINMODE4 = 0xAAAAAAAA;
LPC_PINCON->PINMODE5 = 0xAAAAAAAA;
LPC_PINCON->PINMODE6 = 0xAAAAAAAA;
LPC_PINCON->PINMODE7 = 0xAAAAAAAA;
LPC_PINCON->PINMODE8 = 0xAAAAAAAA;
LPC_PINCON->PINMODE9 = 0xAAAAAAAA;

/*Все GPIO как выходы*/
LPC_GPIO0->FIODIR = 0xFFFFFFFF;
LPC_GPIO1->FIODIR = 0xFFFFFFFF;
LPC_GPIO2->FIODIR = 0xFFFFFFFF;
LPC_GPIO3->FIODIR = 0xFFFFFFFF;
LPC_GPIO4->FIODIR = 0xFFFFFFFF;

/*Все GPIO в 0*/
LPC_GPIO0->FIOCLR = 0xFFFFFFFF;
LPC_GPIO1->FIOCLR = 0xFFFFFFFF;
LPC_GPIO2->FIOCLR = 0xFFFFFFFF;
LPC_GPIO3->FIOCLR = 0xFFFFFFFF;
LPC_GPIO4->FIOCLR = 0xFFFFFFFF;

Позволило снизить до 250микроампер. Все равно много.
Внутренне отключение всяких блоков в LPC_SC->PCONP не дает никаких результатов.

Сообщение отредактировал IgorKossak - Jul 12 2013, 13:03
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!!!
Go to the top of the page
 
+Quote Post
Terminator
сообщение Jul 16 2013, 02:20
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 209
Регистрация: 7-12-04
Из: Томск
Пользователь №: 1 382



Цитата(truebest @ Jul 12 2013, 16:02) *
...
Позволило снизить до 250микроампер. Все равно много.
Внутренне отключение всяких блоков в LPC_SC->PCONP не дает никаких результатов.

В еррате написано что при переходе в deep sleep, pll не выключается. Может это ваш случай?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 01:18
Рейтинг@Mail.ru


Страница сгенерированна за 0.01377 секунд с 7
ELECTRONIX ©2004-2016