Продолжаю работать над проектом USB терминала в плате Марсоход3bis.
В принципе, уже есть какой-то результат: я могу через USB кабель, через FTDI в синхронном режиме с ноутбука загружать картинки в плату и отображать их на мониторе, подключенном к плате.
Оно у меня так еще неделю назад работало, но как-то не очень стабильно, да и очень сложно тогда получилось. Контроллер SDRAM, который я взял на opencores когда-то давно по умолчанию работает с 32-х бинтыми данными не зависимо от шины SDRAM. Видимо из-за того, что автор контроллера использовал его с wishbon bus. Мне же сейчас в этом проекте 32 бита данных не очень удобно. Я использую 16-ти битный видео режим high-color ( R5-G6-B5 ). Микросхема SDRAM у меня на плате Марсоход3bis одна и так же 16-ти битная. Пришлось немного исправлять контроллер.
Еще трудность с которой столкнулся - неудобство с burst mode. Я микросхему памяти программирую на пакетное чтение слов данных из памяти SDRAM, по 8 слов за один запрос на чтение. Burst mode / пакетная передача существенно повышает производительность памяти. Но на запись это не очень удобно. Вспомнил, что SDRAM можно запрограммировать в режим одиночной записи и пакетного чтения. Переделал проект и стало гораздо надежней и проще.
Ну и, конечно, сделал в Visual Studio программу, которая из командной строки берет имя файла изображения (bitmap или jpeg) и считывает и посылает на плату.
ПОлучилось прямо новогоднее настроение.
Весь проект можно взять на GitHub https://github.com/marsohod4you/UsbHwThinClient4Vm
Конечно, еще не все работает идеально. Запись пока работает не очень быстро - нужно разбираться почему. Может просто более длинными пакетами нужно писать в плату? Буду смотреть.
Еще проблемка - иногда на экране нет нет да и появится непрорисованная линия - где-то редко почему-то глючит запись. Нужно разбираться.
Подробнее...