Про используемые компоненты

FPGA

Тут выбора немного. В проекте используется FPGAXilinxSpartan6 XC6SLX9TQG144 с индексом 2 или 3. В прототипе я использовал более быстрый с индексом «3», но должен без проблем работать и с двоечкой. Готовые прошивки я буду выкладывать для обеих версий камня.

Микроконтроллер

В качестве системного контроллера можно использовать следующие чипы:

  • PIC24FJ128GB106
  • PIC24FJ128GB206
  • PIC24FJ128DA106
  • PIC24FJ128DA206
  • PIC24FJ192GB106
  • PIC24FJ256GB106
  • PIC24FJ256GB206
  • PIC24FJ256DA106
  • PIC24FJ256DA206

В прототипах я использовал 2 типа: PIC24FJ128GB106 и PIC24FJ256GB206. Если есть возможность, лучше взять PIC24FJ256GB206 или PIC24FJ256DA206. На данный момент прошивка занимает около 20% такого камня, и есть очень много свободного места для творчества.

Скомпилированные прошивки я выложу для всех перечисленных видов контроллеров.

Память

Тут выбора немало. Лично я использовал микросхемы SamsungK6R4016V1D-TC10, но подойдут практически любые чипы быстрой статики с 44 лапами, питанием 3.3В и временем доступа 10-15 нс. Плата позволяет использовать микросхемы памяти ёмкостью 256Кб х 16бит или 512Кб х 16бит но так как последние трудно найти и они раза в 4 дороже первых, то думаю предпочтительнее будет использовать 256Кб х 16бит. В итоге сумманая ёмкость памяти будет 1Мб, чего должно хватить на все 8-битные творения.

Для примера можно использовать:

  • IS61LV25616AL
  • K6R4016V1D
  • IS61WV25616BLL
  • IDT71V416S12PHG8
  • CY7C1041DV33
  • AS7C34098A
  • И многие другие, выбор огромный.

Так же следует обратить внимание на различающуюся иногда распиновку адресных линий. Я встречал 2 вида, и оба они могут быть использованы на плате:

Первый вариант наиболее распространён. Если используется память с расположением адресов как справа, нужно пересобирать прошивки с изменёнными файлами конфигурации пинов ПЛИС.

RTC (часы реального времени)

Я использовал DS1337, но можно использовать практически любые I2C часики в корпусе SOIC8 и с питанием 3.3В. Все RTC-чипы, которые мне встречались совместимы по-ногам и делятся на 2 варианта: одни имеют специальный пин для батарейки, другие нет. Если использовать чип, который не имеет такого пина (например DS1337) тогда на плате нужно впаять 2 диода (D20 и D21). А если такая нога имеется, тогда запаивается резистор R46. В зависимости от чипа нужно немного подкорректировать либу для работы с ним в исходниках системного контроллера.
Прочее

В качестве I2C EEPROM у меня стоит AT24LC512. Пока она совсем не используется, но планировалась для хранения настроек и т.д. Библиотека для работы с ней в исходниках есть. Можно поставить и другие, меньшего объёма, но опять же, придётся немного править исходники. То же самое касается SPI-флэша AT45DB321. Он позволяет хранить до 12 различных конфигураций для FPGA.

Вообще, конечно же, я бы советовал использовать именно те компоненты, на которых всё обкатывалось. Тогда и правки в исходниках никакие нужны не будут.

В исходники микроконтроллера я добавлю файл “config.h” в котором можно будет указать какие именно чипы используются на плате, чтобы при компиляции автоматически собиралась подходяшяя прошивка.