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

 
 
> ATxmega128A1 USART, как задействовать все порты
NikP
сообщение Apr 10 2012, 10:43
Сообщение #1


Частый гость
**

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



Возникла необходимость опрашивать 6 устройств по USART, выбрали ATxmega128A1, т.к. по описанию очень похоже на то что надо. Опыта работы с ним нет, сроки жмут, так что читаю даташит (к сожалению, с английским слабо, идет медленно) и параллельно задаю вопросы .
1. В ДШ написано, что имеется 8 одинаковых устройств (Eight Identical USART peripherals). Насколько они независимы? Т.е. можно ли устанавливать на каждый порт свою скорость обмена, или эти установки одни для всех?
2. Как влияет чтение -запись в одном канале на работу других? В том смысле, что возникающее прерывание при , например , приеме пакета данных в одном канале будет "тормозить" работу других и возникнут пропуски информации, или нет?.
Поделитесь опытом , если можно рабочие примеры или ссылки на такие . Я конечно скачал с сайта Atmel примеры , но дается тяжко, слишком большой объем. Мне бы что покороче , но так чтобы понятно было.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
_Артём_
сообщение Apr 10 2012, 11:04
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(NikP @ Apr 10 2012, 13:43) *
1. В ДШ написано, что имеется 8 одинаковых устройств (Eight Identical USART peripherals). Насколько они независимы? Т.е. можно ли устанавливать на каждый порт свою скорость обмена, или эти установки одни для всех?

Установки индивидуальны для каждого порта.
Независимы полностью: для каждого uart есть свой блок регистров и вектора прерываний.

Цитата(NikP @ Apr 10 2012, 13:43) *
2. Как влияет чтение -запись в одном канале на работу других? В том смысле, что возникающее прерывание при , например , приеме пакета данных в одном канале будет "тормозить" работу других и возникнут пропуски информации, или нет?.

Если читать в прерывании быстро то не влияют и потерь не будет.
Если прерывание выполнияется долго (любое, не обязательно от usart). то потери возможны.
К тому же есть возможность задействовать DMA (но на все usart-ы не хватит каналов dma).

Цитата(NikP @ Apr 10 2012, 13:43) *
Поделитесь опытом , если можно рабочие примеры или ссылки на такие . Я конечно скачал с сайта Atmel примеры , но дается тяжко, слишком большой объем. Мне бы что покороче , но так чтобы понятно было.

Скачайте с сайта атмела соотв. апноту с примером(using xmega usart): там есть пример с дма и тп.
Используйте их библиотеку (usart_driver.c/usart_driver.h) - многие нужные функции работы с блоком usart там сделаны (и по моему достаточно удачно), остаётся только включить файл в проект и использовать.
Go to the top of the page
 
+Quote Post



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

 


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


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