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

 
 
> USART на АTmega48, не работает
NikitoS-86
сообщение Dec 9 2008, 16:27
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 28
Регистрация: 22-09-08
Пользователь №: 40 380



Доброго времени суток. Значит так, собрал платку на 48 Атмеге, работает, необходимо отправлять данные на ПК... Как топорный вариант выбрал COM-порт. Для этого была взята схемка MAX232, ну вобщем всё по книжке... Однако, не получается даже сделать простешего зеркала=/. При этом ситуация следующая:
- Атмега работает от внешнего кварца в 20 МГц;
- скорость - не важно, пробовал на многих, ни на одной не работает...
- МАХ рабочий, тупо закорачивал ноги - сигнал возвращался тут же...
- если оциллографом смотреть на ногах самой Атмеги, то приходит всегда то, что нужно, а в ответ уходит какая-то ересь... (в моём случае это 0x80)

Ну вот собственно код:
Код
#include <avr/io.h>
#include <avr/interrupt.h>

#define FOSC 20000000 // Clock Speed
#define BAUD 2400
#define MYUBRR FOSC/16/BAUD-1

void USART_Init (unsigned int);

volatile unsigned char buff;

ISR (USART_RX_vect, ISR_BLOCK)
{
    buff=UDR0;
    while ( !( UCSR0A & (1<<UDRE0)) );
    
    UDR0 = buff;    
}

ISR (USART_TX_vect, ISR_BLOCK)
{
    buff=0;
}



void main( void )
{
    sei();
    USART_Init(MYUBRR);
    for(;;);
}

void USART_Init(unsigned int ubrr)
{
UBRR0H = (unsigned char)(ubrr>>8);            
UBRR0L = (unsigned char)ubrr;

UCSR0B |= (1<<RXCIE0);            
UCSR0B |= (1<<TXCIE0);

UCSR0B |= (1<<RXEN0)|(1<<TXEN0);            

UCSR0C = (1<<USBS0)|(3<<UCSZ00);            
}



Может быть кварц слишком быстрый? Но по даташиту ограничения нету на его частоту никаких...
Спасибо.

Сообщение отредактировал NikitoS-86 - Dec 9 2008, 16:29
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- NikitoS-86   USART на АTmega48   Dec 9 2008, 16:27
- - Палыч   Вы уверены что вот это будет подсчитано правильно ...   Dec 9 2008, 16:36
|- - NikitoS-86   Цитата(Палыч @ Dec 9 2008, 19:36) Вы увер...   Dec 9 2008, 16:43
|- - Палыч   Цитата(NikitoS-86 @ Dec 9 2008, 19:4...   Dec 9 2008, 16:49
|- - NikitoS-86   Цитата(Палыч @ Dec 9 2008, 19:49) Ну, поч...   Dec 9 2008, 16:53
- - Сергей Борщ   Цитата(NikitoS-86 @ Dec 9 2008, 18:2...   Dec 9 2008, 16:54
|- - Палыч   Может fuse CKDIV8 остался запрограммирован? С заво...   Dec 9 2008, 17:01
|- - Палыч   Цитата(Сергей Борщ @ Dec 9 2008, 19:54) С...   Dec 9 2008, 17:07
|- - NikitoS-86   Цитата(Сергей Борщ @ Dec 9 2008, 19:54) С...   Dec 9 2008, 17:10
||- - Сергей Борщ   Цитата(NikitoS-86 @ Dec 9 2008, 19:1...   Dec 9 2008, 17:44
|- - gormih   Цитата(Сергей Борщ @ Dec 9 2008, 19:54) А...   Dec 9 2008, 17:37
|- - Сергей Борщ   Цитата(gormih @ Dec 9 2008, 19:37) А если...   Dec 9 2008, 17:49
|- - gormih   Цитата(Сергей Борщ @ Dec 9 2008, 20:49) И...   Dec 9 2008, 18:13
- - man with no name   попробуйте uart включать после окончательной иници...   Dec 9 2008, 17:04
- - gormih   AVR CALCULATOR Хватит уже п**у мучать, товарищи...   Dec 9 2008, 17:46
- - =GM=   Цитата(NikitoS-86 @ Dec 9 2008, 16:2...   Dec 9 2008, 19:01
- - NikitoS-86   Значится так... 1) Всем спасибо, поскольку полезно...   Dec 10 2008, 09:07
- - Сергей Борщ   Цитата(NikitoS-86 @ Dec 10 2008, 11...   Dec 10 2008, 09:53
- - NikitoS-86   Цитата(Сергей Борщ @ Dec 10 2008, 12:53) ...   Dec 10 2008, 13:11
- - Сергей Борщ   Цитата(NikitoS-86 @ Dec 10 2008, 15...   Dec 10 2008, 13:22


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

 


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


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