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

 
 
> Какие есть особенности инициализации UART2 и UART3 в atmega2560?
Oleg_IT
сообщение Feb 23 2011, 20:49
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



UART0, UART1 работают, а у второго и третьего каналов прерывания не идут. Инициализирую UART-ы одинаково, только номера меняю. Пример для UART0

volatile unsigned char FlagTx_0 = 1;
volatile unsigned char FlagTx_1 = 1;
volatile unsigned char FlagTx_2 = 1;
volatile unsigned char FlagTx_3 = 1;
volatile char Buff[10];
void StartTX_0(void)
{
FlagTx_0 = 0;

UCSR0C |= ((1 << UCSZ00) | (1 << UCSZ01));
UBRR0L = 14; // fosc = 13.824 MHz U2X = 0 BR = 57.6k
UBRR0H = 0;
UDR0 = Buff[0];
CountTx_0 = 1;
UCSR0B |= ((1 << TXEN0) | (1 << UDRIE0));
}

ISR (USART0_TX_vect)
{
FlagTx_0 = 1;
UCSR0B &=~ ((1 << TXCIE0) | (1 << TXEN0) | (1 << UDRIE0));
}

ISR (USART0_UDRE_vect)
{
UDR0 = Buff [CountTx_0];

CountTx_0++;
if (CountTx_0 == sizeof(Buff))
{
UCSR0B &=~ (1 << UDRIE0);
UCSR0B |= (1 << TXCIE0);
return;
}
}
Сразу скажу, может не всё запрограммировано строго по правилам, но первые два канала работают, а вторые два нет. Ератта молчит.
Регистры PRR0 и PRR1 проверял.
Что не так делаю. Поделитесь кодом правильной работы с этими каналами.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Juk1976
сообщение Feb 23 2011, 21:40
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 1-08-05
Из: Украина Винница
Пользователь №: 7 258



Цитата(Oleg_IT @ Feb 23 2011, 23:49) *
UART0, UART1 работают, а у второго и третьего каналов прерывания не идут. Инициализирую UART-ы одинаково, только номера меняю. Пример для UART0

В падло разбираться. sm.gif)
Посмотри мой пример.
Работают все КОМы (уже не помню 2 года назад было)


FOSC - частота кварца sm.gif)


Сообщение отредактировал Juk1976 - Feb 23 2011, 21:43
Прикрепленные файлы
Прикрепленный файл  Uart_TX_RX.txt ( 15.88 килобайт ) Кол-во скачиваний: 133
 
Go to the top of the page
 
+Quote Post
Oleg_IT
сообщение Feb 25 2011, 10:01
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



Цитата(Juk1976 @ Feb 24 2011, 00:40) *
В падло разбираться. sm.gif)
Посмотри мой пример.
Работают все КОМы (уже не помню 2 года назад было)


FOSC - частота кварца sm.gif)

Ваш код сейчас попробовать не могу, только вечером, но он очень похож на мой. Проверяю дёрганием пинов.
А Вы для ATMega2560 проверяли?

Цитата(SysRq @ Feb 24 2011, 02:20) *
Ежели вдруг в AVRStudio их ждёте, то и не пойдут - known issue...

Да, у меня AVRStudio+WINAVR. Но прерывания не идут не только в Studio, но и на живой плате.
Где про «known issue...» прочитать?

Может мне битый китаец попался?
Go to the top of the page
 
+Quote Post
Juk1976
сообщение Feb 25 2011, 20:42
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 1-08-05
Из: Украина Винница
Пользователь №: 7 258



Цитата(Oleg_IT @ Feb 25 2011, 13:01) *
Ваш код сейчас попробовать не могу, только вечером, но он очень похож на мой. Проверяю дёрганием пинов.
А Вы для ATMega2560 проверяли?


Да, у меня AVRStudio+WINAVR. Но прерывания не идут не только в Studio, но и на живой плате.
Где про «known issue...» прочитать?

Может мне битый китаец попался?

Я под IARку писал.
Проверка на живом железе sm.gif)
1 uart на комп
2,3 - на измерение/управление (дальше rs485)
4 - на плату индикации (тоже RS485)

Блок на водоканале стоит
На те времена проще было RS нежели USB
sm.gif)

P.S.
Ни на одном камне (почти со всеми атмелами где есть uart работал) проблем со связью не было
особенности были но после скуривания соответствующих страниц даташита они уходили sm.gif)

Сообщение отредактировал Juk1976 - Feb 25 2011, 20:47
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Oleg_IT   Какие есть особенности инициализации UART2 и UART3 в atmega2560?   Feb 23 2011, 20:49
|- - Oleg_IT   У меня тоже ни когда с этим проблем не было. Преды...   Feb 26 2011, 07:12
- - SysRq   Цитата(Oleg_IT @ Feb 23 2011, 23:49) UART...   Feb 23 2011, 23:20
- - SysRq   Цитата(Oleg_IT @ Feb 26 2011, 10:12) Для ...   Feb 26 2011, 12:13
|- - demiurg_spb   Вспоминается мне один нюанс. В DS описывается четк...   Feb 26 2011, 13:37
|- - Oleg_IT   Цитата(SysRq @ Feb 26 2011, 15:13) Покажи...   Feb 26 2011, 15:26
|- - Oleg_IT   Прошу прощение за объёмы кода. Ассемблер код иниц...   Feb 26 2011, 19:48
- - SysRq   Bug 47696 - [AVR] Compilation for atmega2560 produ...   Feb 26 2011, 21:47
|- - Oleg_IT   Цитата(SysRq @ Feb 27 2011, 00:47) Bug 47...   Feb 27 2011, 09:16
|- - SysRq   AVCC к питанию подключен? PORTF питается от него, ...   Feb 27 2011, 10:07
- - Oleg_IT   AVCC через LC (рекомендованный) фильтр подключен к...   Feb 27 2011, 13:38
- - xelax   Может дело не в uart'е? Вы же не зря атмегу256...   Feb 28 2011, 10:26
|- - Oleg_IT   Цитата(xelax @ Feb 28 2011, 13:26) Может ...   Feb 28 2011, 12:18
- - xelax   Вот здесь кое что обсуждалось Так же в документац...   Feb 28 2011, 16:24
- - Oleg_IT   Цитата(xelax @ Feb 28 2011, 19:24) Вот зд...   Mar 1 2011, 07:17
- - SysRq   Цитата(Oleg_IT @ Mar 1 2011, 10:17) Чего ...   Mar 1 2011, 07:39
- - Oleg_IT   Цитата(SysRq @ Mar 1 2011, 10:39) Выклады...   Mar 1 2011, 10:36


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

 


RSS Текстовая версия Сейчас: 27th June 2025 - 13:03
Рейтинг@Mail.ru


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