limbast 0 3 июня, 2009 Опубликовано 3 июня, 2009 · Жалоба Здравствуйте. Начинаю работать с AVR32UC3B064 и возникли глупые вопросы. Прежде всего организую параллельный интерфейс 16битным ЦАП. Естественно хотелось бы как в обычной ATmega выставить данные в порт и дернуть строб. Вроде первым делом хочется подключить 16 линий порта с PA0 по PA15 к ЦАПу и просто выставлять данные в порт. Но тогда невозможно будет использовать альтернативные функции без перестройки портов а как раз альтернативные функции (UART в частности) должен всегда слушать линию. Можно перестраивать при необходимости с альтернативной функции на простой вывод но скорость выдачи данных предполагается 2МГц и соответственно не получится (я так думаю) и слушать УАРТом и выдавать данные. Можно УАРТовский пины не трогать, а использовать другие выводы, но тогда как выставлять данные в порт? Смещать нужные биты? Но тогда теряется скорость. И вообще, в даташите написано что портов ввода вывода 43 штуки (для используемого контроллера) а регистры управления 32битные. Где остальные пины и биты? Рою литературу и интернет и как то вообще не внятно написано про использование портов ввода вывода в отличие от например ATmega. Прошу помочь и направить в нужное русло. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
altlogic 0 4 июня, 2009 Опубликовано 4 июня, 2009 · Жалоба Во-первых, у микроконтроллера AVR32UC3B064 44 пина GPIO. Так написано в даташите. Помимо этого него 3 Интерфейса USART. Во-вторых не совсем понятно что вы хотите сделать? Реализовать ЦАП и задействовать UART для вывода отладочной информации? Если так, то согласно таблицы 11-10 даташита [doc32059] можете выбрать нужные вам порты ввода-вывода и UART0/1/2. Порты в AVR32 32-х разрядные. У AVR32UC3B064 два порта PA и PB. Каждый из них конфигурируется своими регистрами. PS может вы смотрели неполный даташит? Полный у меня 635 страниц Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
limbast 0 4 июня, 2009 Опубликовано 4 июня, 2009 · Жалоба Даташит у меня именно полный 635 страниц. Про то что у него порты РА и РВ я тоже читал. Вы правы, одни и те же UARTы можно назначать на разные выводы! Очень гибкая система! Но возник еще вопрос: Как я писал выше у меня внешний параллельный 16битный ЦАП с 16 битной шиной. Как я писал выше скорость обновления данных ЦАП 2МГц. По идее самое быстрое можно просто записать в порт слово и дернуть сигнал запись. Но вот порт РВ имеет разрядность 12 - отпадает для быстрого варианта. Порт РА вроде 32х пиновый, однако это не так! У него нет РА0, РА1 и РА2! Т.е. для записи в порт мне нужно сдвинуть слово! Так? Т.е. никак нельзя сделать быструю 16битную шину данных, а 8битная шина (без сдвига) можно сделать только на порту РВ. Так? Это же глупо со стороны разработчиков или я чего то не допонимаю? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
altlogic 0 5 июня, 2009 Опубликовано 5 июня, 2009 · Жалоба Вы правы, одни и те же UARTы можно назначать на разные выводы! НЕт, такого я не писал:) Это же вам не реконфигурируемая система на кристалле:) У контроллера несколько различных интерфейсов UASRT. Каждый из них выведен на свои пины. Т.е. никак нельзя сделать быструю 16битную шину данных, а 8битная шина (без сдвига) можно сделать только на порту РВ. Так? Это же глупо со стороны разработчиков или я чего то не допонимаю? На счёт быстрой шины нужно было задумываться до выбора конкретной модели контроллера. Вот у UC3A есть внешняя шина данных. "Быструю" шину можно попробовать сделатьт без сдвигов. Сделайте предположение, что биты порта PA0-2 всегда равны нулю (или другой константе). Тогда возможно в дальнейших расчётах их можно будет выбросить. Но при этом шина у Вас будет 16+3-битная. Либо ещё как вариант начать запись с PA7. Тогда используя объединения union можно наверное тоже чего-то добиться. Так что ищите, вполне возможно решение и найдёте. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться