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

 
 
> [need help]PIO контроллер, AT91SAM7X
Sergei_K
сообщение Apr 23 2007, 13:20
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 49
Регистрация: 14-02-07
Пользователь №: 25 346



Соб-но при прочтении даташита возник следующий вопрос..

Судя по даташиту в данном микроконтроллере есть 2 PIO контроллера A и B (см.рис)
это тем более подкрепляется тем, что в кейловском файле с описанием регистров определяются адреса для обоих контроллеров:

#define AT91C_BASE_PIOA ((AT91PS_PIO) 0xFFFFF400) // (PIOA) Base Address
#define AT91C_BASE_PIOB ((AT91PS_PIO) 0xFFFFF600) // (PIOB) Base Address


При этом с соответствующими портами контролеров A и B вроде как можно работать, обращаясь к соответствующим ногам микроконтроллера, например ножке 85 соответствует порт PA3, 34 - PB5(см. рис).

Так вот.. вроде все понятно, но.. читая дальше раздел PIO контроллера, мы узнаем, что помимо 32 ножек-входов, соответствующие ножки могут иметь еще две (или меньше) периферийные функции A и B. Вот здесь-то и появляется вопрос... Во-первых, судя из таблички, что я привел, у PIO ножек нету двух периферийных функций, максимум одна, либо вообще ноль.. Так, скажем, 9 нога может быть либо входом 0 АЦПшки, либо 27 портом контроллера PIO B (если настроена..) Тогда напрашивается вопрос, что вообще за периферийные функции A и B и какая, скажем, в приведенном выше примере функция AD0 для 9 ноги: A или B? blink.gif
Ну или рад бы был тогда услышать, что вообще такое периферийные функции A и B?

Сообщение отредактировал Sergei_K - Apr 23 2007, 13:28
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
wodya
сообщение Apr 23 2007, 14:27
Сообщение #2


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

Группа: Свой
Сообщений: 112
Регистрация: 27-03-07
Пользователь №: 26 549



Вопрос из этой же темы.

У меня в проекте используется FIQ. Вроде бы нужно настроить PA19 на Peripheral B. Однако прерывание срабатывает как при настройке на Peripheral B, так и на Peripheral A. Проверял.
Да и в примерах указано, что для настройки FIQ нужно писать
AT91F_PIO_CfgPeriph(AT91C_BASE_PIOA,AdcSdOut,0);
, что расходится с описанием, т.к. если судить по описанию нужно писать
AT91F_PIO_CfgPeriph(AT91C_BASE_PIOA,0,AdcSdOut);
Go to the top of the page
 
+Quote Post
amw
сообщение Apr 23 2007, 14:38
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847



Цитата(wodya @ Apr 23 2007, 14:27) *
Вопрос из этой же темы.

У меня в проекте используется FIQ. Вроде бы нужно настроить PA19 на Peripheral B. Однако прерывание срабатывает как при настройке на Peripheral B, так и на Peripheral A. Проверял.
Да и в примерах указано, что для настройки FIQ нужно писать
AT91F_PIO_CfgPeriph(AT91C_BASE_PIOA,AdcSdOut,0);
, что расходится с описанием, т.к. если судить по описанию нужно писать
AT91F_PIO_CfgPeriph(AT91C_BASE_PIOA,0,AdcSdOut);

К сожалению здесь помочь не могу. Не пользовал и не изучал FIQ на внешнем выводе.
AT91F_PIO_CfgPeriph и им подобные не использую, так что ...


--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть.
© Lewis Carroll. Alice's adventures in wonderland.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 3rd August 2025 - 15:23
Рейтинг@Mail.ru


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