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

 
 
 
Reply to this topicStart new topic
> Как поступать с неиспользуемыми выводами МК
MKdemiurg
сообщение Oct 3 2011, 18:09
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 624
Регистрация: 15-06-10
Из: Россия
Пользователь №: 57 939



Использую в проекте atmega128А

Собственно сабж...
Сейчас все неиспользуемые выводы , а также все остальные во время режима сна - выставляю как высокоомные входы( выходы?). Т.е. DDRx=0 PORTx=0. Последовательные порты выключаю обнулением всех регистров( отдельно TXEN RXEN их почемуто не выключают- тоже непонятно както...) и выставлением портов в "разрыв" .

Правильно ли так делать? Или же нужно подтягивать к "земле" DDRx=1 PORTx=0 ? Но тогда же могут быть утечки изза того что логический ноль это не ноль?

ЗЫ Извиняюсь что так сумбурно, но много непонятных нюансов просто rolleyes.gif
Go to the top of the page
 
+Quote Post
dinam
сообщение Oct 4 2011, 02:11
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 415
Регистрация: 10-06-05
Из: Наукоград Кольцово(Новосибирск)
Пользователь №: 5 898



Уже не помню как там с Atmega, но для всех МК рекомендуется неиспользуемые выводы сделать выходами. Входы посадить на землю или питание.
Go to the top of the page
 
+Quote Post
ae_
сообщение Oct 4 2011, 04:26
Сообщение #3


Участник
***

Группа: Свой
Сообщений: 462
Регистрация: 2-04-07
Из: Иркутск
Пользователь №: 26 695



Цитата(MKdemiurg @ Oct 4 2011, 03:09) *
Сейчас все неиспользуемые выводы , а также все остальные во время режима сна - выставляю как высокоомные входы( выходы?). Т.е. DDRx=0 PORTx=0

Это худший вариант из всех возможных:
- вход без подтяжки работает как антенна, собирая все помехи
- входные транзисторы работают в линейном режиме при VCC/2 на входе, что повышает общее потребление МК, иногда в разы
Лучше выбрать что-нибудь другое - вход с подтяжкой к VCC, вход с подтяжкой к GND внешним резистором, выход "0", выход "1".
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Oct 4 2011, 04:53
Сообщение #4


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(ae_ @ Oct 4 2011, 08:26) *
Это худший вариант из всех возможных:
Подтверждаю.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
MKdemiurg
сообщение Oct 4 2011, 05:51
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 624
Регистрация: 15-06-10
Из: Россия
Пользователь №: 57 939



Угумсь , понял... Сейчас впринципе МК жрёт 16мкА в powerdown c bod . Попробую сделать как выход "0".

И такой вопрос тоже по теме энергосбережения. Как полностью выключить UART ?

Вот так всё выключается ...

UCSR0A=0x00;
UCSR0B=0x00;
UCSR0C=0x00;
UBRR0H=0x00;
UBRR0L=0x00;

UCSR1A=0x00;
UCSR1B=0x00;
UCSR1C=0x00;
UBRR1H=0x00;
UBRR1L=0x00;

А вот такой код...
UCSR1B &=~((1<<4)|(1<<3));
UCSR0B &=~((1<<4)|(1<<3));

Не хочет, остаёться 1.5 мА потребления... Хотя по даташиту именно эти биты отвечают за включение -отключение?
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Oct 4 2011, 06:17
Сообщение #6


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Если мне не изменяет память, то частичное отключение периферии возможно лишь в контроллерах с технологией pico-power (с суффиксом P или PA например mega88PA).
У них есть специальные регистры управления питанием периферии. Гляньте файлик power.h из avr-libc.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post

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

 


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


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