Перейти к содержанию
    

BF52x HostDMA в режиме autobuffer

Добрый день!

 

Помогите решить проблему!

 

Между процессором BF523 и BF527 организованна связь через порт HostDMA. Порт HostDMA используется в процессоре BF527, а в процессоре BF523 используется порт EBIU. Процессор BF523 работает в режиме Мастер, а процессор BF527 в режиме Slave. Мастер осуществляет передачу информации на Slave-процессор, после чего следует чтение Slave-процессора. Чтение осуществляется в режиме Autobuffer mode. По окончанию чтения (чтение может занимать различное количество времени) происходит новая передача массива информации на BF527, а затем снова чтение.

Проблема в том, что в режиме Autobuffer mode после чтения не получается снова вернуться в нормальное состояние, т.е. после чтения, если начинать записывать новую информацию в BF527, он не отвечает и HostDMA ничего не передаёт. В режиме Stop mode, такой проблемы нет. В режиме Stop mode чтение осуществляется при помощи прерывания (IVG 7 - Host read), в котором происходит очистка бита DMA_CMPLT и бита Host read done в регистре HOST_STATUS. В таком варианте всё работает. В режиме Autobuffer mode - это нужно сделать один раз в конце всего чтения и это как раз не получается.

Может быть кто-то уже сталкивался с такой проблемой?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...