Агат-7. Rev.0. Эмуляция дисководов.
На данный момент схема полностью готова и я начал заниматься разводкой платы. В процессе разводки, скорее всего, в схему еще будут внесены изменения из-за выявленных ошибок или удобства разводки. Так что пока рассматривайте эту схему как черновик. Если найдете на ней ляпы, то, пожалуйста, дайте мне знать.
Итак, сегодня у нас схемы дисководов 140К и 840К:
Как видите, они идентичны. Я лишь использовал разные цвета дисплеев в них. В принципе, я подробно описал эту схему в посте об LCD дисплее. Так что повторяться я не буду. В этой схеме лишь добавлен светодиод индикации, подключены пины проверки наличия карты и защиты записи от слота для SD карты и обозначены пины для коммуникации с ПЛИС. Коммуникация осуществляется посредством SPI интерфейса. Для этого достаточно 4 провода, но я добавил пятый, по которому поступает сигнал/запрос от ПЛИС на следующий байт. Это происходит каждый 32-ой такт процессора, что в точности соответствует скорости вращения настоящего диковода. При испытании на макетке я получал большое количество ошибок из-за длины проводов, так что мне пришлось передавать каждый байт трижды для уверенного приема. При монтаже на плате эта проблема должна пропасть и тогда можно будет отказаться от пятого провода и инициировать смену байта после каждой сессии SPI. Тем не менее, на всякий случай, при изготовлении Rev.0 платы пятый провод будет присутствовать.
При включении, дисковод сканирует карту памяти и отображает ее содержимое на LCD дисплее. Поддерживается формат FAT16 и FAT32. Поддержки длинных имен нет, так как все равно их отображение на дисплее затруднено. На данный момент количество файлов и поддиректорий в одной директории ограничено цифрой 100. Причем имеются ввиду именно образы нужного формата — прочие файлы игнорируются и не входят в этот лимит. Для 140К дисковода используются файлы формата .nib (размер 227.5Кб). Для 840К дисковода — файлы формата .aim . Это следует иметь ввиду при составлении коллекции образов на SD карте. Дисководы не имеют возможности создавать образы, поэтому «чистые» образы для работы нужно скопировать на карту заранее. Нужный образ выбирается с помощью курсора экранного меню со списком файлов энкодером. Если SD карта не защищена от записи, то перед открытием файла можно будет выбрать режим работы с образом — «только чтение» или «чтение/запись». После этого микроконтроллер переходит в режим эмуляции дисковода. Данные между ПЛИС и микроконтроллером передаются по SPI интерфейсу. Кроме того, микроконтроллер передает сигнал готовности и возможности записи на I2C расширитель портов.
Дисководы имеют собственные выключатели питания отдельно от главного выключателя компьютера. Это позволит задействовать только нужные дисководы при включении. Кроме того, включив вначале дисковод и выбрав нужный образ, мы заставим компьютер «увидеть» «дискету» сразу при своем запуске и произвести автозагрузку с нее.
В следующем посте я расскажу о других частях схемы. До встречи!