Здравствуйте! имеется контроллер Atmega32, в нем программа которая каждые полсекунды посылает символ по UART, который затем успешно принимается компьютером с помощью преобразователся USB-TTL на микросхеме PL-2303. Все бы ничего, если бы не одно НО: после выключения питания контроллера (GND остается) при подключенном UART (только TX) контроллер продолжает работать!!!! То есть по сути питается от UART!! Для наглядности даже подлючены светодиоды на порт B, которые продолжают мигать, но уже с меньшей яркостью.
Кто может объяснить такое явление? в чем проблема? в неправильной настройке UART или может с преобразователем USB-TTL что-то не то?
#define F_CPU 8000000UL
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
void send_char(char data)
{
while(!(UCSRA & (1<<UDRE)));
UDR = data;
}
int main(void)
{
/*PORTB на выход*/
DDRB = 0xFF;
PORTB = 0x00;
/*настройка UART*/
UBRRL = 0x33; //0x33 - Baud Rate = 9600 (при fosc = 8MHz)
UCSRB = 0b00011000; //бит4 - RXEN, бит3 - TXEN
UCSRC = 0b10000110; //бит7 - URSEL (Register Select: если 1 то UCSRC), бит2,1 - UCSZ1,UCSZ0 (формат кадра)
PORTB |= (1<<PORTB2);
while(1)
{
PORTB ^= (1<<PORTB2);
PORTB ^= (1<<PORTB3);
send_char('A');
_delay_ms(500);
}
}