SDHC - это хорошо. Быстрая поддержка и на дискретах - вообще прекрасно. С удовольствием понаблюдаю за развитием
У меня идея сабжа немного другая, она как-бы чуть меньше по религииА именно, поручить МК всю "черновую" работу с SDHC, т.о. освободить 8-битку от кучи рутины, отнимающей драгоценное ОЗУ. В итоге принцип такой: 8-битка видит регистры (данных, команд, состояния), также имеется небольшое СОЗУ для хранения данных, команд и сектора (512 байт, возможно нескольких секторов, т.к. СОЗУ обычно 2 или 8 Кб, почему бы не закэшировать туда сразу несколько?
). 8-битка пишет в СОЗУ/регистры необходимые данные, и МК в фоне начинает исполнять команду. В это время 8-битка покуривая и попивая кофе чекает регистр состояния, и если всё готово, то забирает либо готовые данные, либо код ошибки (если что-то пошло не так). На МК ложатся: определение карты, хэндшейкинг, хранение ID-сессии, алгоритмы чтения/записи сектора, форматирование... в общем, весь низкий уровень.
8-битка работает на уровне: есть/нет SDHC, записать/считать целевой сектор.
Сопсно, в чём профит такого решения:
- полностью асинхронная работа (нет привязки к быстродействию 8-битки, МК молотит с картой на своих скоростях, 8-битка пишет/читает данные на своих);
- есть возможность использования быстрого 4-битного протокола с картой, вместо черепашьего SPI;
- 100500 байт кода обслуживания протокола с SDHC не занимают ОЗУ 8-битки;
- при выходе новых карт/стандартов, просто меняется прошивка МК, 8-битка об этом и знать не знает;
- схемотехника минимальна по кол-ву корпусов (СОЗУ, ПЗУ /логика/, МК, преобразование уровней 5в<->3в).
Вроде МК как-бы мимо религии, но не более чем сама SDHC, у которой внутрях тот же МК![]()





Ответить с цитированием