Есть специальные микросхемы — называются расширители ввода/вывода,
I/O Expander. Работаю обычно через i2c интерфейс от Максим, например, очень удобно
и не нужно лишнего кодить. Микросхемы
В проектах, за которые платят деньги, учитывается куча факторов. И площадь на плате тут один из последних, если суть проекта не в габаритах. Экономя один цент на площади, можно потратить один бакс на более дорогую микру. Или же наоборот. Или снизить надёжность устройства до того, что оно работать будет только на стенде.
Расскажите по секрету, где такие цены видели?
Я видел минимум по 48 руб (или по 25 руб при тираже от 100 шт). Может не там смотрю и есть места подешевле? =)
Только дорогие они обычно. Во большинстве случаев достаточно будет сдвиговых регистров 74HC595 (вывод) и 74HC165 (ввод). В том же Элитане можно найти по цене менее 10 р, если брать по 10+ штук. В розницу обычно рублей 20 стоят.
Вы правы, они дороже, но защелки все равно не супер решение, так как
1) они все же требуют больше ног МК, чем расширители ввода/вывода
2) расширители умеют обрабатывать переходы уровней, когда нужно действовать по событию
3) масштабирование проекта на сдвиговых более затруднительно.
Да и вообще, нужно уходить от использования дискретных компонентов — это касается особенно если Вы работаете в серию.
Так да, идеального решения здесь нет — потому и написал, что в большинстве случаев, а не всегда. Но, как я написал ниже, лучше не вообще извращаться, а просто взять нормальный камень с кучей ножек — для этого их и делают (:
Во-первых, дороже, во вторых расстояние. Больше чем на 30см расширитель не потянешь, а эта моя схема надежно работает в автомобиле на 3-метровом проводе. Изначально туда планировался LIN на MCP2021, но жаба — страшное животное…
Не хочу рекламировать, но довольно элегантные решения подключения кнопок и светодиодов можно поискать на easyelectronics , там тоже затрагивается проблема экономии ног
Но как по мне то право на жизнь имеет и этот способ, всё равно, всегда, делаешь по обстоятельствам а там и более сумашедшее может получится — потом думаешь как оно вообще работает )
А мне нравиться, такие решения часто нашу оборонку напоминают, у каждой загогулины двойное назначение ). Накой мегу брать если тож самое удастся в 2313 запихнуть. Есть только один нюанс, потенциал модернизации падает до нельзя (. В идеале взять и контроллер побольше и оптимизации побольше, тогда и хитро и красиво и в случае чего можно модернизировать.
Если есть возможность, лучше просто забыть про Atmel'овыские МК и перейти на STM32 — там 32-битное ядро Cortex-M3, куча очень грамотной периферии с DMA, образцовые pin-to-pin совместимость и совместимость кода, и корпуса вплоть до LQFP176. Как сейчас не нужен QBasic, потому что есть современные языки программирования — так и не нужны всяческие извращения, когда есть современные МК.
«Давайте отрежем Сусанину ногу?» (с)