Продолжаю работать над проектом 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
Конечно, еще не все работает идеально. Запись пока работает не очень быстро - нужно разбираться почему. Может просто более длинными пакетами нужно писать в плату? Буду смотреть.
Еще проблемка - иногда на экране нет нет да и появится непрорисованная линия - где-то редко почему-то глючит запись. Нужно разбираться.

тут много всего.. во-первых, так получилось, что я все время как-то связан с работами по тонкому клиенту..
ну и потом - история развивается по спирали... вот будет доллар по 200 руб - и люди вспомнят про терминальные технологии :-), будут так или иначе опять использовать
У вас уже был проек фреймбуфер - почему бы не использовать?
Еще один вопрос по разрешению: Если вы передаете картину без сжатия то получается, что для USB 2.0 максимальное разрешение 1024x768 (1024х768х2 байта х30 кад/с х8бит = 360Mbit/s) . Маловато по-моему.
ну честно говоря я и из этого-то контроллера думаю, как мне всякое лишнее повыбрасывать, всякие плюшки вроде регенерации, например.. да и вообще упростить можно.. как по мне - чем проще - тем надежней..
Но для практический целей наверное лучше сделать две страницы - пока одна загружается, предыдущая отображается. Памяти для такого режима хватит?
Если при этом останутся свободные логические элементы, то можно сделать загрузку картинок через Ethernet. Или использовать свободные логические элементы для различных эффектов при переключении картинок.
Наверное если продавать Марсоходы не только студентам и энтузиастам, но и конечным потребителям, то можно на этом заработать.