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

 
 
> Вопросы новичка по ADSP 2184
KosTTTT
сообщение Aug 12 2014, 13:31
Сообщение #1





Группа: Новичок
Сообщений: 4
Регистрация: 12-08-14
Пользователь №: 82 523



Здравствуйте!
Я новичок в области электроники и пытаюсь разобраться с программой для ADSP 2184 (http://www.analog.com/static/imported-files/data_sheets/ADSP-2184.pdf)
Вот кусок из кода:
Код
start:

           // Установка задержки при записи во внешнее устройство 1 такт
           ax0 = b#0111111111111001;
           dm(Dm_Wait_Reg) = ax0;
                             
        // Инициализация таймера
        ax0=0;
        dm(Tscale_Reg)=ax0;
        ax0=40;
        dm(Tperiod_Reg)=ax0;
        dm(Tcount_Reg)=ax0;
        
        // Разрешение прерываний от таймера и по входу IRQE//
        ICNTL=0;//
        IFC=1;//
        IMASK=1;
        ena INTS;
        
        // Старт таймера
        ena TIMER;//(установка бита TE MSTAT)

        af = pass 0;
        
wait:    idle;
        jump wait;


Вопросы:
1)
Код
ax0 = b#0111111111111001;
dm(Dm_Wait_Reg) = ax0;

Это, я понимаю, мы обращаемся к Data memory waistate register и устанавливаем ожидание-один такт при обращении к следующим диапазонам адресов адресного пространства ввода/вывода: 0x000-0x1FF.
Подскажите, зачем это может быть нужно?
2)
Далее мы инициализируем таймер. Тактовая частота внешнего генератора - 40MHz. Насколько я правильно понял, смотря в Datasheet, внутренняя тактовая частота для этого процессора будет в 2 раза выше, то есть 80MHz? Согласно формуле Tint = (TPERIOD + 1) * (TSCALE + 1) / Fclkout получается, что каждые 0,5125 *10^-6 будет возникать прерывание, так ли это?
3)
Что означает команда
Код
IFC=1;
? В мануале написано, что тем самым мы очищаем прерывание по таймеру. Зачем это может быть здесь нужно?
4) Где-то в этом коде мы разрешаем прерывание по IRQE, но в IMASK записывается только 1 и больше ничего.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 1)
Fat Robot
сообщение Aug 28 2014, 09:06
Сообщение #2


ʕʘ̅͜ʘ̅ʔ
*****

Группа: Свой
Сообщений: 1 008
Регистрация: 3-05-05
Пользователь №: 4 691



Вот здесь собрана документация на это семейство. Вас для ответов на ваши вопросы будет интересовать
ADSP-218x DSP Hardware Reference (Rev 1.0, February 2001) (zip, 2439 kB) - обратите внимание на год выпуска.

Отвечая на ваши вопросы
1. Это нужно для того, чтобы привести в соответствие временную диаграмму внешней шины процессора и устройства/устройств, подключенных к этой внешней шине. Выбрано такое кол-во тактов ожидания, чтобы внешнее устройство на шине успело отреагировать на шинную транзакцию

2. (41 / 80.0) мкс таков период возникновения прерывания от таймера. Первое прерывание от таймера возникнет через (41 / 80.0) мкс после выполнения команды ena TIMER;

3. Это нужно, чтобы очистить прерывание от таймера, которое может быть защелкнуто в регистре прерываний до разрешения прерываний. Если этого не сделать, то потенциально первое прерывание может возникнуть сразу после выполнения команды ena INTS;

4. В этом коде мы не разрешаем irqe и вообще никак с irqe не работаем. Только таймер.

По нынешним меркам место этого процессора - на свалке истории (а, точнее, на помойке). Избавляйтесь от него поскорее, т.к. "ни денег, ни венца, ни славы" он вам не принесет.

Успехов
Go to the top of the page
 
+Quote Post

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

 


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


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