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

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

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

PS может вы смотрели неполный даташит? Полный у меня 635 страниц
limbast
Даташит у меня именно полный 635 страниц. Про то что у него порты РА и РВ я тоже читал.
Вы правы, одни и те же UARTы можно назначать на разные выводы! Очень гибкая система!
Но возник еще вопрос:
Как я писал выше у меня внешний параллельный 16битный ЦАП с 16 битной шиной. Как я писал выше скорость обновления данных ЦАП 2МГц. По идее самое быстрое можно просто записать в порт слово и дернуть сигнал запись. Но вот порт РВ имеет разрядность 12 - отпадает для быстрого варианта. Порт РА вроде 32х пиновый, однако это не так! У него нет РА0, РА1 и РА2! Т.е. для записи в порт мне нужно сдвинуть слово! Так? Т.е. никак нельзя сделать быструю 16битную шину данных, а 8битная шина (без сдвига) можно сделать только на порту РВ. Так? Это же глупо со стороны разработчиков или я чего то не допонимаю?
altlogic
Цитата(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 можно наверное тоже чего-то добиться. Так что ищите, вполне возможно решение и найдёте.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.