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

 
 
 
Reply to this topicStart new topic
> Начинаю работать с AVR32. Есть глупые вопросы.
limbast
сообщение Jun 3 2009, 12:39
Сообщение #1





Группа: Участник
Сообщений: 13
Регистрация: 28-01-05
Пользователь №: 2 252



Здравствуйте.
Начинаю работать с AVR32UC3B064 и возникли глупые вопросы.
Прежде всего организую параллельный интерфейс 16битным ЦАП.
Естественно хотелось бы как в обычной ATmega выставить данные в порт и дернуть строб.
Вроде первым делом хочется подключить 16 линий порта с PA0 по PA15 к ЦАПу и просто выставлять данные в порт. Но тогда невозможно будет использовать альтернативные функции без перестройки портов а как раз альтернативные функции (UART в частности) должен всегда слушать линию. Можно перестраивать при необходимости с альтернативной функции на простой вывод но скорость выдачи данных предполагается 2МГц и соответственно не получится (я так думаю) и слушать УАРТом и выдавать данные.
Можно УАРТовский пины не трогать, а использовать другие выводы, но тогда как выставлять данные в порт? Смещать нужные биты? Но тогда теряется скорость.

И вообще, в даташите написано что портов ввода вывода 43 штуки (для используемого контроллера) а регистры управления 32битные. Где остальные пины и биты?

Рою литературу и интернет и как то вообще не внятно написано про использование портов ввода вывода в отличие от например ATmega.
Прошу помочь и направить в нужное русло.
Go to the top of the page
 
+Quote Post
altlogic
сообщение Jun 4 2009, 03:31
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 222
Регистрация: 2-12-06
Из: г. Хабаровск
Пользователь №: 23 035



Во-первых, у микроконтроллера AVR32UC3B064 44 пина GPIO. Так написано в даташите. Помимо этого него 3 Интерфейса USART.
Во-вторых не совсем понятно что вы хотите сделать? Реализовать ЦАП и задействовать UART для вывода отладочной информации?
Если так, то согласно таблицы 11-10 даташита [doc32059] можете выбрать нужные вам порты ввода-вывода и UART0/1/2.
Порты в AVR32 32-х разрядные. У AVR32UC3B064 два порта PA и PB. Каждый из них конфигурируется своими регистрами.

PS может вы смотрели неполный даташит? Полный у меня 635 страниц


--------------------
С уважением, Вячеслав
Go to the top of the page
 
+Quote Post
limbast
сообщение Jun 4 2009, 05:04
Сообщение #3





Группа: Участник
Сообщений: 13
Регистрация: 28-01-05
Пользователь №: 2 252



Даташит у меня именно полный 635 страниц. Про то что у него порты РА и РВ я тоже читал.
Вы правы, одни и те же UARTы можно назначать на разные выводы! Очень гибкая система!
Но возник еще вопрос:
Как я писал выше у меня внешний параллельный 16битный ЦАП с 16 битной шиной. Как я писал выше скорость обновления данных ЦАП 2МГц. По идее самое быстрое можно просто записать в порт слово и дернуть сигнал запись. Но вот порт РВ имеет разрядность 12 - отпадает для быстрого варианта. Порт РА вроде 32х пиновый, однако это не так! У него нет РА0, РА1 и РА2! Т.е. для записи в порт мне нужно сдвинуть слово! Так? Т.е. никак нельзя сделать быструю 16битную шину данных, а 8битная шина (без сдвига) можно сделать только на порту РВ. Так? Это же глупо со стороны разработчиков или я чего то не допонимаю?
Go to the top of the page
 
+Quote Post
altlogic
сообщение Jun 5 2009, 22:21
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 222
Регистрация: 2-12-06
Из: г. Хабаровск
Пользователь №: 23 035



Цитата(limbast @ Jun 4 2009, 16:04) *
Вы правы, одни и те же UARTы можно назначать на разные выводы!

НЕт, такого я не писалsmile.gif Это же вам не реконфигурируемая система на кристаллеsmile.gif У контроллера несколько различных интерфейсов UASRT. Каждый из них выведен на свои пины.
Цитата(limbast @ Jun 4 2009, 16:04) *
Т.е. никак нельзя сделать быструю 16битную шину данных, а 8битная шина (без сдвига) можно сделать только на порту РВ. Так? Это же глупо со стороны разработчиков или я чего то не допонимаю?

На счёт быстрой шины нужно было задумываться до выбора конкретной модели контроллера. Вот у UC3A есть внешняя шина данных. "Быструю" шину можно попробовать сделатьт без сдвигов. Сделайте предположение, что биты порта PA0-2 всегда равны нулю (или другой константе). Тогда возможно в дальнейших расчётах их можно будет выбросить. Но при этом шина у Вас будет 16+3-битная.
Либо ещё как вариант начать запись с PA7. Тогда используя объединения union можно наверное тоже чего-то добиться. Так что ищите, вполне возможно решение и найдёте.


--------------------
С уважением, Вячеслав
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st June 2025 - 10:45
Рейтинг@Mail.ru


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