ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
24 ноября
94601
Evgeny_CD (19.07.2007 20:30, просмотров: 9177)
Кинтэссенция идей по CF. Меня давно мучали две проблемы: * NOR флешак для загрузки. Для работы он неэффективен по соотношению цена/объем, ухудшает параметры разводки (лишний девайс на шинах, при тактовой 50+ Мгц уже не шутки) - короче, нах. * FPGA на шину, да чтобы грузилась процом, без чипика конфигурационного. Все сложилось! Есть NAND флешаки, с опцией Power-On Auto-Read. Дергаем за пин, и по каждому nRD на шину вываливаются байты из первого сектора без дополнительных усилий. K9F5608 - самый маленький, какой нашел с такой фичей (32Мбайта, 512 байт сектор). Ставим такой флешак на шину, и XC9536XL (самый дешевый из известных мне 3.3В CPLD, можно за 1$ добыть) для дергания сигналов на флешаке. Отлавливаем reset, нужный nCS, и выдаем байтики на шину. Для 0 сектора Samsung гарантирует 10к циклов без ECC. Протозагрузчик - линейный код, которые копирует данные в SRAM. Учитывая СF аналоги ARM LDM/STM, думаю, из 512 байт байт 400 кода удастся выжать. Далее стартуем из ОЗУ. Там реализуем нормальное считывание из NAND стандартными командами. Грузим нормальный загрузчик, стартуем его. Он настраивает SDRAM, периферию, и грузит уже полноценный монитор, или сразу ОСь и апликуху. Загрузчик второй очереди также может загрузить FPGA. Результат - * нет лишних девайсов на шине * нет лишных чипов * полная сводоба в применении FPGA. Смотрим на экономику. CF 52xx - 10$ (если постараться, то можно добыть, в партии 100 шт) K4S641632K-UC75 Samsung SDRAM 4Mx16 - 1.4$ K9F5608U0D-PIB0 TSOP48 - 3.89 $ КТЦ-МК XC9536XL - 1$ Итого за минимальную систему с 16 битной памятью 10+1.4+3.89+1=16.29 Итого за минимальную систему с 32 битной памятью 10+1.4+1.4+3.89+1=17.69 За эти деньги мы имеем 150 Мгц систему с 8 или 16Мбайт RAM 32М FLASH. Опять же, что характерно, :)), мы имеем цену около STR9xxx. Но даже беглый взгляд на дата шиты показывает, что это, мягко говоря, решения разного класса. STR нервно курит. Да, в дешевых CF нет CAN, USB и АЦП. Но: * CAN, USB добавят к цене CF 3...5$ (просто выбираем чуть более крутой камень, например, MCF5274) * АЦП всегда на SPI/I2C прикрутить можно, учитывая DMA SPI у CF - будет просто супер, всегда можно выбрать какой нужно, а не рачиться с программной компенсацией кривизны набортного АЦП. Если же поставить простой FPGA XC3S100E за 8$, то получится решение за 25$, которое оставит за бортом почти все распространенные контроллеры. Для CF с DDR получится то же самое, только добавится буфер для NAND. SAMSUNG K4H561638H-UCCC 3.69 $ DDR, 256Мбит, 32 мбайта, Х16 организация. За DDR систему 10+3.69+3.89+1+1=19.58 (буфер на шину я оценил в 1$). Что же касается AT91SAM9260 за 8$, то: * сравниваем ераты и делаем выводы. Я свои уже сделал :) * в силу отсутствия внешнего DMA с AT91SAM9260 расти некуда. Тупиковая ветвь. В классе же CF есть куча чипов, до 400DMIPS, PCI и пр. В предлагаемом варианте защита от пЫонЭров есть, а !пЫонЭры такой херней, как копирование, и заниматься-то не будут.