Страница 1 из 1

ATmega48: питание от USART0

Добавлено: Вт фев 09, 2010 18:44:03
antonydublin
Привет всем.
Нужен совет: использую в связке несколько микроконтроллеров.
Обмен - по последовательному каналу. Снимаю + питания с ATmega48 (всё: VCC, AVCC, AREF), а он остаётся запитанным и работает. Выяснил - от ножки PD0 (RXD). На этой линии высокий уровень, что понятно. В datasheet ничего нашёл.
Подскажите в чём дело.

Может, в инициализации:

Код: Выделить всё

UBRR0H=(unsigned char)(UBRR_value>>8);
UBRR0L=(unsigned char)UBRR_value;
UCSR0B=(1<<RXEN0)|(1<<TXEN0)|(0<<UCSZ02)|(1<<RXCIE0);
UCSR0C=(0<<USBS0)|(0<<UMSEL01)|(0<<UMSEL00)|(1<<UCSZ00)|(1<<UCSZ01);   

Добавлено: Вт фев 09, 2010 19:09:28
DrWatson
Это называется паразитное питание - через защитный диод на входе RXD плюс попадает на шину питания МК - смотри в даташите эквивалентную схему порта стр 51.
Чтобы предотвратить это, вместе с питанием, в простейшем случае, разрывай цепь RXD.
Кстати, это будет наблюдаться и с любыми другими портами (кроме входа RESET), если источники сигнала на порты не отключаются при отключении питания МК, и выдают лог. "1" (т.е. на них присутствует некоторое напряжение, достаточное для питания МК).

Добавлено: Вт фев 09, 2010 20:07:17
antonydublin
Спасибо. Буду внимательнее.