Как уже сообщалось в рассылке среди людей сделавших предварительный заказ, я нашел фирму, где готовы помочь с производством всего железа и обеспечить дальнейшее развитие проекта, с одним но: рисунок печатной платы будет распространяться только с готовым изделием и под академической лицензией, все остальное будет открыто. Такое сотрудничество позволит снизить цену запаянного и оттестированного комплекта до цены около 100$ (практически по себестоимости компонентов) не считая доставки.
Прошу внимательно отнеситесь к этому сообщению, тк именно ваше содействие не просто ускорит выход проекта, но и может внести существенные корректировки его ход.
Вкратце об архитектуре:
- Процессор ARM9 200MIPS, Atmel AT91SAM9260
- Оперативная память SDRAM 64МБ/128МБ (два чипа 256 Мбит 16х16 или один 512Мбит 32х16), разрядность шины памяти 32 бита.
- Встроенный NAND Flash на 256, 512 или 1024Мб (наприсмер Samsung K9F2G08U0A-P).
- Часы реального времени (Integrated RTC/Alarm and 64Kb FRAM) на I2C
- USB host 1 порт, 12Мбит/с
- USB device 1 порт, 12Мбит/с
- RS-232 (отладка) + COM0(Порт модемный)|COM1(RS232) или вместо COM портов 4 RS485 .
- Ethernet 10/100 (Micrel KS8721BL)
- IDE порт. 40pin (на шине памяти) или CF в IDE mode (3,3 TTL уровни на выход, совместимы с 5V на вход, на шине двунаправленные буферы с малой емкостью)
- LPT порт 3.3V TTL (2*13pin линейка, совместимая с выкидышами в обычных PC)
- CODEC AC97 - 2 входа, 2 выхода (наушники 16Ом).
- CMOS Image Sensor (порт)
- Serial Flash (будет просто возможность ее установки, но ставить ее не будем, тк грузиться можно будет и с NAND)
- SD интерфейс (сам разъем устанавливаться не будет, для экономии места)
- Video Controller на шине памяти (EBI) (возможно нецелевое использование, например как сопроцессор)
- ALTERA Cyclone 2
- 8 MB SDRAM на 32 битной шине в качестве видеопамяти
- DVI порт с возможностью работы с аналоговым и с цифровым интерфейсом. Интерфейс реализован на отдельных аппаратных микросхемах, цифровой вход – на выходе видео (все будет предусмотрено для монтажа но можно играть на компонентах, устанавливая только требуемый интерфейс)
Убедительная просьба, прошу с пониманием отнестись к этим вопросам. Я физически не могу углубляться в области, требующие проработки, тк нужно развивать проект в целом. Если у вас есть уже наработки или же знаете готовые решения, то будет полезен любой материал и тем более ваше участие в проекте. Я нацелен на сотрудничество в развитие проекта.
Сами задачи:
I. По железу:
- Для KS8721BL известна особенность, может включаться не одновременно с контроллером. В данной плате линия Reset должна быть выведена на отдельный вывод GPIO-порта. После инициализации работы контроллера, до начала работы с микросхемой физического уровня необходимо выставить на линии MII интерфейса адрес устройства и произвести Reset. Вывод Reset используется также для вывода микросхемы из глубокой спячки. Ввод в состояние анабиоза происходит путем записи в управляющий регистр флага. Она уже полностью разведена, за исключением резета. Я должен быть уверен, что в загрузчике будет возможность эту инициализацию обеспечить с любым пином идущим на резет, и не только в загрузчике, но и в линух сборке.
- IC supervisor – нужен ли он при стабильном питание?
- В качестве видеоадаптера будет стоять ALTERA Cyclone 2, для его нормально функционирования нужна конфигурирующая козявка, которая стоит денег, и от нее хотелось бы избавиться. Знаю, что существует возможность конфигурирования без нее с помощью JTAG и сторонним процессором. В нашем случае сторонним процессором будет 9260, мне нужны выдержки объясняющие протокол и схемотехнические решения. Можно и желательно в примерах.
- Возможное и другое применение ПЛИСа, скажем в качестве сопроцессора. Но для этого нужно обеспечить IRQ к процессору. Какие есть переложения? Достаточно ли одной ноги или использовать дополнительный интерфейс?
- На плате будут 2 JTAG – у 9260 и у ПЛИСа. Процессорный скорее всего будет выведен на нижнюю сторону платы в виде падов для пайки шлейфа с шагом 1.27. Это позволит сэкономить ценное место. Второй разъем пока под вопросом, я склоняюсь к тому чтобы его оставить в первозданном виде 5х2 IDC. Еще более продвинутый вариант – совмещение двух в один – принципиально это возможно, есть примеры объединения у некоторых производителей, но только между своей продукции. Может кто уже сталкивался с подобной задачей?
- Теперь перечитаете еще раз описание железа и подумайте, чего не хватает, взвешенно и требовательно. Любые идеи могут быть полезны)
II. По софту:
- Нужно выбрать IDE. Я хотел бы собрать общее мнение, если вы пользуетесь проприетарными средами, можете предложить и их. Все отлично понимают, что в нашей стране можно достать что угодно, даже допускаю, что у кого-то на месте работы установлен крупный и дорогой пакет, но для открытого проекта использование закрытых инструментов возможно (например демо версии KAIL c GCC - ограничений нету), но не обязательно – и это главное условие. А обязательное условие – доступность. (в принципе есть командная строка и GCC, не хватает makefile) Вот требования, которым должен удовлетворять:
- Кроссплатформенность
- Открытая лицензия GNU/GPL и их вариации
- использование сторонних компиляторов
- Интеграция с SVN(subversion server)
- Возможность создания по шаблону итоговых проектов, готовых к употреблению (make file, bin loader) , хотя это можно и ручками)
- Удобство работы
- Кроссплатформенность
- Нужно описать сборку и конфигурацию загрузчика для этого проекта. Сюда же упомянутая задача с инициализацией контроллера Ethernet и конфигурирование ПЛИС. Эту стоит уже сделать сейчас, чтобы можно было отладить первые экземпляры и удостовериться в их работоспособности. (Пример http://heavy-online.ru/arm-linux/ - сборка toоlchain для ARM и запуск linux на AT91RM9200)
- На будущее нужны инструменты по созданию капитального обновления сборки как через так и с помощью загружаемого файла. Как прочессора, так и циклона. При этом заточенного именно для этого проекта, ну и оттестированного соответственно со всеми элементами этой платформы.
- Теперь о десерте. Нужна помощь в создание видеоадаптера, точнее конфигурации ПЛИС. Вот минимальные функции ускорения, которые уже в проекте:
- горизонтальная линия (простое заполнение строки)
- генерация вектора (формируется построчно, в области памяти)
- наложение на страницу (простое построчное замещение в области памяти)
- наложение с альфа каналом (смешение, 8 бит)
- наложение текста, вектора
- работа с SDRAM (рефреш, адрессное про-во)
- 4 буфера для видеопамяти
- 2 входных буфера (массив данных и команды) представляющиеся для ARMа как микросхема памяти
- целочисленный АЛУ
- горизонтальная линия (простое заполнение строки)
По условию компании, которая согласилась взяться за производство этой платы, разводка будет распространяться только вместе с устройством и по академической лицензии, те для образовательных целей. К сожалению вся плата сейчас разводиться без применения Shematic’а прямо в PCB. Окончательная схема будет уже нарисована после. Сейчас же я готовлю блоксхему, где будет показаны все соединения. Этого будет достаточно для комфортного программирования.
Проект практически некоммерческий, наценка отсутствует. По желанию кроме самой платы в коробочке будет БП, и шнурки. Доставка за счет заказывающего, при этом не государственной почтой, дабы избежать проблем с потерей или повреждением.
Пока название у проекта arm9eb, но если у кого-то появится более созвучное содержанию, то можно изменить. Буду рад любым предложениям)
В итоге должен будет получиться проект, состоящий из запаянной платы ценой около 100$ с довольно большими возможностями. Вся программная часть будет открытой. Аппаратная же часть будет открыта только для образовательных целей.
Posted at LJ community ru_embedded, ru_opencomputer, ru_radio_electr,ru_hdl_fpga
PS: если кто хочет принять непосредственное участие в проекте, пишите мне на почту
