[Atmega 128] не работает UART с выключенным фьюзбитом M103C

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Count_enable
Первый раз сказал Мяу!
Сообщения: 29
Зарегистрирован: Ср дек 02, 2009 12:06:46

[Atmega 128] не работает UART с выключенным фьюзбитом M103C

Сообщение Count_enable »

Здравствуйте! Проблема как в заголовке, есть новая атмега на фабричной отладочной плате. Пишу простейшую программу- эхо на UART. В Atmega103 compatibility mode- работает, как только сниму галку- перестает ;(. Программатор AVR Dragon по ISP.
Код почти из даташита. Кварц 12 мега, на старой плате все работало. Уже который час курю маны и без толку.

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

#include <stdint.h>
#include <avr/io.h>
// Define baud rate
#define USART_UBBR_VALUE 38 //12 meg quartz - speed 19200 baud
void USART_vInit(void)
{
// Set baud rate
   UBRR0H = (uint8_t)(USART_UBBR_VALUE>>8);
   UBRR0L = (uint8_t)USART_UBBR_VALUE;
// Set frame format to 8 data bits, no parity, 1 stop bit
   UCSR0C = (0<<USBS0)|(1<<UCSZ01)|(1<<UCSZ00) | (1<<UMSEL0);;
// Enable receiver and transmitter
   UCSR0B = (1<<RXEN0)|(1<<TXEN0);
}

void USART_vSendByte(uint8_t u8Data)
{
// Wait if a byte is being transmitted
   while((UCSR0A&(1<<UDRE0)) == 0);
// Transmit data
   UDR0 = u8Data;
}

uint8_t USART_vReceiveByte()
{
// Wait until a byte has been received
   while((UCSR0A&(1<<RXC0)) == 0);
// Return received data
   return UDR0;
}

int main(void)
{
uint8_t u8Data;
// Initialise USART
USART_vInit();
DDRA=0xFF;
PORTA=0x00;
// Send string
USART_vSendByte('A');
// Repeat indefinitely
for(;;)
{
// Echo received characters
u8Data = USART_vReceiveByte();
USART_vSendByte(u8Data);
}
}
Shplv
Первый раз сказал Мяу!
Сообщения: 28
Зарегистрирован: Пт июн 04, 2010 19:24:26

Re: [Atmega 128] не работает UART с выключенным фьюзбитом M1

Сообщение Shplv »

Count_enable писал(а): В Atmega103 compatibility mode- работает, как только сниму галку- перестает

Возможно, что транслятор (какой используете?) не знает о конкретном типе Вашего МК, и пытается разместить некие данные с адреса ОЗУ = 60h и выше, в то время как в m128 (со снятой галкой М103С) память начинается с адреса 100h.
Count_enable
Первый раз сказал Мяу!
Сообщения: 29
Зарегистрирован: Ср дек 02, 2009 12:06:46

Re: [Atmega 128] не работает UART с выключенным фьюзбитом M1

Сообщение Count_enable »

Спасибо за совет, проблема была чисто хардварная: когда перешил фьюзы на минимальной скорости, все заработало.
Закрыто

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