ATtiny2313: UART в VMLAB работает, в железе нет

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Аватара пользователя
danger3466
Встал на лапы
Сообщения: 135
Зарегистрирован: Ср дек 21, 2011 12:18:39

ATtiny2313: UART в VMLAB работает, в железе нет

Сообщение danger3466 »

Кварц 20Mhz, проверял при помощи _delay_mc и светодиода
Компилятор avr-gcc в коде F_CPU нет, он в Makefile
Сие безобразие работает в VMLAB, но в железе в терминал приходят "вопросительные знаки в ромбиках"
Уровни преобразовываются на max232cpe подключенного по даташиту, проверял закорачивая Tx и Rx за max232cpe.
UBRR высчитал по даташиту и перевел в hex.

Есть мысли?

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

#include <avr/io.h> // ввод-вывод
#include <util/delay.h>

//#define BAUD 9600
#define UBRR_VAL 0x81
//#include <util/setbaud.h>

void UART_Init(void)
{
	UBRRL = (unsigned char) UBRR_VAL;
	UBRRH = (unsigned char) (UBRR_VAL>>8);
	UCSRB = (1 << TXEN) | (1 << RXEN);
	UCSRC = (1<<USBS)|(3<<UCSZ0);
}

int main(void)
{
	UART_Init();
	DDRB |= _BV(PB0);
	PORTB &= ~_BV(PB0); // Уст 0
	while(1){
		while ((UCSRA & (1<<UDRE)) == 0) {}
		UDR = 'w';
		while ((UCSRA & (1<<UDRE)) == 0) {}
		UDR = 'o';
		while ((UCSRA & (1<<UDRE)) == 0) {}
		UDR = 'w';
		while ((UCSRA & (1<<UDRE)) == 0) {}
		UDR = '\n';
	}
	return 0;
}
Реклама
Аватара пользователя
danger3466
Встал на лапы
Сообщения: 135
Зарегистрирован: Ср дек 21, 2011 12:18:39

Re: ATtiny2313: UART в VMLAB работает, в железе нет

Сообщение danger3466 »

Код конечно смешной, особенно момент отправки, но как понимаете это набросок.
Реклама
watchmaker
Поставщик валерьянки для Кота
Сообщения: 2183
Зарегистрирован: Вс ноя 15, 2009 23:13:59
Откуда: Харьков
Контактная информация:

Re: ATtiny2313: UART в VMLAB работает, в железе нет

Сообщение watchmaker »

Программа терминала на компе рабочая? Что там приходит в хексе?
Иногда мой питомец уходит в такую спячку, что разбудить его можно только щелчком по первой ноге...
Аватара пользователя
coredumped
Опытный кот
Сообщения: 838
Зарегистрирован: Вт апр 12, 2011 18:38:19
Откуда: с Земли

Re: ATtiny2313: UART в VMLAB работает, в железе нет

Сообщение coredumped »

1. На терминал ваще ничего не показывает? Или срет?
2. FUSE проверьте. Частая ошибка - CKDIV8 (частота делится на 8 )
3. Осцилом посмотрите сигнал на TX (3-я нога).
4. И еще советую кварц, в случае работы с RS232, применять из ряда на 3.6864, 7.3728, 11.0592, 14.7456 Мгц
Все будет только лучше, в крайнем случае - хуже.
Реклама
Эиком - электронные компоненты и радиодетали
phanis
Вымогатель припоя
Сообщения: 513
Зарегистрирован: Сб фев 19, 2011 18:04:08
Откуда: Татарстан, пос. Актюбинский
Контактная информация:

Re: ATtiny2313: UART в VMLAB работает, в железе нет

Сообщение phanis »

Попробуйте после отправки задержку поставить (секунду). Может программа по таймауту не срабатывает..
Реклама
Аватара пользователя
danger3466
Встал на лапы
Сообщения: 135
Зарегистрирован: Ср дек 21, 2011 12:18:39

Re: ATtiny2313: UART в VMLAB работает, в железе нет

Сообщение danger3466 »

Разобрался, по-умолчанию в фюзах делитель частоты включен был, теперь все работает, всем спасибо :)
А осциллограф для меня роскошь :))
Реклама
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»