[an error occurred while processing this directive]
Ответ:
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено -=ВН=- 31 марта 2004 г. 18:54
В ответ на: Ответ: отправлено DimaSobol 31 марта 2004 г. 00:02

Как его сделать.
Например так. Наберитесь терпения.
У процессора есть так называемый host-port. Включает в себя шину даных (host-port'а).
Внутри DSP есть 3 регистра этого порта. Регистр управления (HPIC),
регистр адреса памяти (HPIA), регистр данных (HPID).
Все регистры 32-х разрядные.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Сигналы снаружи DSP.
Шина данных, 16 разрядная, HD0-HD15
2 сигнала, HCNTL0,HCNTL1 - выбирают один из 3 указанных регистров.
Сигнал выбора хост-порта целиком, HCS.
Сигнал, определяющий операцию с портом, чтение из него или запись в него, HRW.
Сигнал, указывающий, какая 16-ти разрядная часть 32-х разрядного слова будет передаваться в данной операции, HHWIL
2 строба сопровождения данных (неважно на запись или чтение), HDS1,HDS2. Они друг от друга ничем не отличаются, используется обычно один из них, второй подтягивается резистором к питанию. Поэтому для краткости просто HDS.
Есть еще строб адреса, HAS, но без него можно обойтись, тоже подтягивается к питанию резистором.
Сигнал готовности хост-порта, HRDY.
Сигнал, который может использоваться как прерывание, флаг для устройства, которое присоединено к хост-порту. Устройство это называют хостом. Сигнал называется HINT, генерируется он хост-портом.
Это по сигналам.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Память ДСП, его регистры, регистры хост-порта 32-х разрядные. Шина данных хост-порта -16-ти. Обмен идет всегда 32-х разрядными словами.
Поэтому для любой операции требуются 2 цикла.
Обмен идет через регистры адреса-HPIA, данных- HPID.
Вначале хост записывает адрес ячейки памяти, в которую будет писать-читать, в регистр HPIA. На запись адреса требуется 2 обращения (2 цикла). Затем пишет или читает данные в-из регистра HPID. Тоже 2 цикла.
Полное 32-х разрядное обращение выглядит так:
1-ый цикл:
Хост активизирует HCS (0 на HCS), т.е. выбирает порт. Регистр, к которому хост хочет обратиться (HPIC,HPIA,HPID) адресуется линиями HCNTL0,1.
Номер 16-ти разрядной половины 32-х разрядного слова - на линии HHWIL, в первом цикле на HHWIL всегда 0 - первая половина 32-х разрядного слова. Тип операции (запись или чтение) на HRW. Далее от типа операции. Для записи - хост кладет первую 16-ти разрядную половину 32-х разрядого слова на шину HD0-HD15, активизирует HDS (0 на HDS), ждет готовности хост-порта (HRDY). Обнаружив готовность снимает HDS,HCS, данные.
Для чтения - активизирует HDS, ждет готовности, забирает первую половину 32-х разрядного слова с шины данных, снимает HDS,HCS.
1-ый цикл закончился.
2-ой цикл. Разница с первым только в уровне на HHWIL, 1 должна быть.
Ну и операции со 2-ой половиной 16-ти разрядного слова.
Теперь про половины 32-х разрядного слова. Я писал про первую-вторую. Соотношение их с разрядами может быть двух сортов. 1 - первая половина разряды 0-15, вторая половина - разряды 16-31. 2 - с точностью до наоборот. Порядок определяется битом HWOB в регистре HPIC. И этот регистр должен записать хост. Это должно быть самое первое обращение к хост-порту, до обращений к HPIA,HPID.
Обращение к HPIC тоже в 2 цикла. 16-ти разрядные половины этого регистра одинаковы (не совсем, но грубо так). По сути в обе половины, т.е. в 2-х циклах, в этот регистр нужно записать одно и то же 16-ти разрядное значение. В котором будет определен HWOB.
И при всех последующих обращениях соблюдать порядок половин в 32-х разрядном слове, заданный HWOB.
Это по работе с хост-портом DSP.
Часть разрядов шины данных имеет двойное назначение. Например на HD3,4 режим загрузки определяется, а на HD14 - разрешение-запрещение хост-порта вообще. Это так называемая конфигурационная информация.
Она фиксируется DSP по снятию RESET. После RESET это уже обычные ноги шины данных хост-порта (если он разрешен).
В качестве хоста может использоваться микроконтроллер, может PLD.
Я и так и так делал. Правда с конкретно 6713 пока живьем не пробовал -плата в разводке, но для других из 6000 семейства пробовал, из 5000 тоже. Если контроллер - я обычно ставил MSP430F149, если PLD - 3000
альтеровский.
Как уже говорил другой стороной хост может быть прицеплен к машине, как удобнее разработчику, через тот же COM.
Далее я буду подразумевать, что все действия хост выполняет по команде от ЭВМ, от нее получает адреса, данные, пароли, явки.
Хотя если хост достаточно умный, то и сам все может делать.
Так вот действия хоста, по включению питания, сбросу.
Он генерирует RESET для DSP, на конфигурационные ноги из состава HD0-HD15 ставит то, что нужно. Например разрешение работы хост порта(hd14), режим загрузки из хост-порта на HD3,HD4.
Далее хост снимает RESET.
Опять инициализацию регистра HPIC.
Проводит запись программы. То есть получает из ЭВМ адрес ячейки памяти, данные, к-рые туда будут записаны. И записывает в ДСП.
Как это происходит я Вам написал. Т.е. идут периодические записи в HPIA,HPID. HPIC не трогается.
Адрес ячейки памяти и данные в нее ЭВМ может взять из .hex файла, может из .out файла. Потому что и интерфейс, железо имею ввиду, и ЭВМ-ную программу Вы должны написать сами.
Да, отвлекся. После записи программы хост для проверки может и прочитать ее.
В общем после записи и проверки программа должна быть запущена.
Делается это установкой бита DSPINT в HPIC. Есть там такой бит.
Все.
Да, общение с загруженной программой.
Обычно через область дсп-шной памяти, адрес которой известен и хосту и дсп. Адрес определяется программистом.
Последнее. CCS создает coff файл, имеющий расширение .out. Для конвертации в . hex есть утилита в составе CCS.
Вроде все. Куда физичнее. По сути схему Вам описал. Важно одно - все отдается на откуп разработчику. Документацию он при этом должен читать.

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru