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

 
 
 
Reply to this topicStart new topic
> Съем и подача уровня на PF0-PF7 в ADSP2185., документация даёт примеры, но вопрос понятнее не становится.
neudor
сообщение May 9 2007, 05:15
Сообщение #1





Группа: Новичок
Сообщений: 2
Регистрация: 18-04-07
Пользователь №: 27 149



Здравствуйте.

Имеется девайс: ADSP2185
Среда: VisualDSP 3.5
Из железа на руках ничего нет. Если напишу и всё получится - буду делать макет и тестить.

Задача состоит в том, чтобы научиться читать и писать в пины PF0, PF1, PF2. Документация предлагает мне три варианта.

1. SWCOND и CCODE. Но это, как я понял, есть только у ADSP219x.

2. Регистры Prog_Flag_Comp_Sel_Ctrl и Prog_Flag_Data (они описаны в cdef218x.h).
Кусок кода, который отражает их применение:

Prog_Flag_Comp_Sel_Ctrl=0x7b01; /* PF0=выход */
Prog_Flag_Data=0; /* PF0 низкий уровень */

Вроде что-то написано. Но как мне, например, переменить направление PF0 или узнать состояние PF1 - ни слова. Это при том, что я штудировал документацию и гуглил всё что было разумно.

3. Нашёл в одной доке следующий кусок текста, который поставил меня в тупик.
Flag I/O Pins
The ADSP-2185M has eight general purpose programmable
input/output flag pins. They are controlled by two memory
mapped registers. The PFTYPE register determines the direction,
1 = output and 0 = input. The PFDATA register is used to
read and write the values on the pins. Data being read from a
pin configured as an input is synchronized to the ADSP-2185M’s
clock. Bits that are programmed as outputs will read the value
being output. The PF pins default to input during reset.

Узнать дополнительно что-либо об этих PFTYPE и PFDATA не удалось.


Вобщем, вопрос такой. Как мне записать и считать значения из PF0, PF1, PF2. Буду благодарен за принципиальное объяснение. Ещё больше буду благодарен за объяснение с примерами. Ну и уж во век вас не забуду за кусок кода с комментариями.

Заранее спасибо.
Go to the top of the page
 
+Quote Post
fontp
сообщение May 9 2007, 20:11
Сообщение #2


Эксперт
*****

Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183



Эти регистры - параллельные битовые массивы. PF0 - соответствует младшему биту, PF1 - следующему и т.д. PF7 соответствует биту 7
Всё остальное описано в пункте 3 "тупика" - один регистр определяет направление ввода/вывода, другой показывает сами данные. Записью данных в регистр данных можно управлять уровнем флагов вывода, чтением регистра данных можно узнать уровень флагов ввода.

Например
Prog_Flag_Comp_Sel_Ctrl=0x81; /* PF0, PF7=выход. остальные вход */
Prog_Flag_Data=0x80; /* PF0 низкий уровень, PF7 - высокий */
Prog_Flag_Data=0x01; /* PF7 низкий уровень, PF0 - высокий */
x = Prog_Flag_Data & 0x2 /* считать значение PF1 */
Go to the top of the page
 
+Quote Post
neudor
сообщение May 10 2007, 06:04
Сообщение #3





Группа: Новичок
Сообщений: 2
Регистрация: 18-04-07
Пользователь №: 27 149



Спасибо большое.

Хотелось бы уточнить, вдруг кто имеет представление. Зачем нужен и что определяет старший байт Prog_Flag_Comp_Sel_Ctrl.

И последний вопрос. Не по теме, но чтобы новую не создавать.
Есть ли в Visual DSP возможность симулировать входной сигнал? Интересуют, как нетрудно догадаться, линии PF0-PF7, а не аналоговые входы.
Go to the top of the page
 
+Quote Post
fontp
сообщение May 10 2007, 06:50
Сообщение #4


Эксперт
*****

Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183



В разных процессорах разное число флагов, но принцип тот же.
Читайте документацию на свой процессор

http://www.analog.com/processors/adsp/tech...uals/index.html
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 17:25
Рейтинг@Mail.ru


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