LINUX.ORG.RU
ФорумTalks

Экономия линий ввода-вывода микроконтроллера


2

2

Как-то давно попадалась мне на глаза милая статейка на тему того, как сэкономить ввод-вывод на контроллере с малым количеством ног. Ну там, два светодиода на одной ноге, две кнопки, и прочее в том же духе. В общем-то, все схемные решения там были тривиальны, но их было много в одном месте.

Вздумал вот сейчас глянуть на эту статейку, а найти не могу. Никому не попадалась такая?

★★

По сути у тебя несколько простых способов сэкономить.
Светодиоды, кнопки - матрицей и сканировать ее.
Синхронные протоколы где есть клок/либо протоколы где есть чип селект - там все просто, пока нет клока/чип селекта - девайсу похрен что на остальных линиях => можем юзать.
Ну и сдвиговые регистры, они хороши и годны.
Решения все обычно просты и напрашиваются сами.

AiFiLTr0 ★★★★★
()
Ответ на: комментарий от AiFiLTr0

плюс есть микросхемы для расширения портов ввода/вывода — с одной стороны что-нибудь типа i2c/spi, с другой — обычные i/o

ymn ★★★★★
()
Ответ на: комментарий от Anonymous

Да, тоже полезные схемы, последняя особенно доставила.

AiFiLTr0 ★★★★★
()
Ответ на: комментарий от ymn

Знаешь, они стоят как мк нынче. Так что не нужно. Я если надо юзаю HС164, ибо самое дешевое. В принципе тот же SPI, если место на код хочется сэкономить, только CS нет.

AiFiLTr0 ★★★★★
()

Это мнимая экономия. Лучше мультиплексор использовать. Или еще один контроллер.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Anonymous

Примерно оно, но та статья была больше с уклоном «пара кнопок и светодиод на одной ноге». Матрицы не очень интересны, Нужно организовать опрос кнопок.

cache ★★
() автор топика
Ответ на: комментарий от AiFiLTr0

Извращенец. :)

Проще было что-нибудь вроде Mega48 поставить в корпусе MLF. Места займёт меньше, стоить будет столько же или дешевле, программировать проще.

Сам так заморачивался лет 10 назад, но ИМХО, времена, когда лишний ввод-вывод оправданно было добавлять мультиплексированием и расширением с помощью сдвиговых регистров, прошло. Контроллеры столь дёшевы, что проще взять МК с большим числом ног.

cache ★★
() автор топика
Ответ на: комментарий от AiFiLTr0

Уже. Выбран tiny13 в 10M1. Двигаться за пределы не могу, да и не нужно. Просто нужно выбрать наиболее элегантное схемное решение.

cache ★★
() автор топика
Ответ на: комментарий от cache

Скажи об этом преподавателю АСВТ в бауманке, который хотел на пике12 иметь метеостанцию: считывание с 2х датчиков и вывод инфы на семисегментники. Ичсх, мы это сделали, но только в протеусе.

Deleted
()
Ответ на: комментарий от cache

проще взять МК с большим числом ног

Смотря что за задача. Например, если нужно управлять пятью шаговиками, но единомоментно должен работать только один, мультиплексирование поможет и упростить «железную» часть, и очень сильно упростить программную.

Еще пример - опрос температурных датчиков. Здесь тоже лучше подключить эти 100500 датчиков через мультиплексор на один АЦП контроллера. Да и АЦП в этом случае можно отдельный купить - не 12-битное УГ, а что-нибудь 24-битное (если, конечно, точность датчика будет достаточной).

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Deleted

Я когда-то анеморумбометр на пике делал. И еще закладывал туда уйму других датчиков (в т.ч. самопальный датчик грозы).

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Deleted

Учебная мозголомная задача - одно, а практическая целесообразность - другое. :)

cache ★★
() автор топика
Ответ на: комментарий от Eddy_Em

В моем случае главными проблемами были: всего 2 часа на реализацию рабочей схемы в протеусе + пик12 с шестью ножками + кривизна моей IDE под пик12.
Вопрос только в целесообразности такого.

Deleted
()
Ответ на: комментарий от Eddy_Em

Конкретно в том примере, на который я отвечал, мультиплексирование было ненужно. Обойдясь одним корпусом МК, можно было площадь ПП сократить спокойно раза в полтора, а то и два.

cache ★★
() автор топика
Ответ на: комментарий от Deleted

всего 2 часа на реализацию рабочей схемы

Данунафиг! Невозможно за 2 часа и схему придумать, и на макетке собрать, и прошивку написать, и компьютерный клиент прошивки, да еще и чтобы все это сразу работало!

А что за зверь такой «протеус»?

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от cache

Ну, если все размещается на одной плате, то естественно, проще МКшку побольше взять.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Мы собирали не на макетке(нема ее у нас), а в протеусе.
Протеус - комбайн, в котором можно собирать схемы на МК, эмулировать их работу и даже дизайнить пцб.
Компьютерный клиент для прошивки писать не нужно: индикация на семисегментниках. Для этого использовали сдвиговые регистры.
Схема тоже простая: контроллер + семимегментники + сдвиговые регистры + хитрые датчики на i2c, чтобы влезть по количеству ног.

Deleted
()
Ответ на: комментарий от Eddy_Em

На AVR я бы это сделал. Два часа, не два - но за вечер такое делается элементарно, с перерывами на перекуры и ужин. Но на PIC'ах… Там система команд - полный пи#$ец.

cache ★★
() автор топика
Ответ на: комментарий от AiFiLTr0

Хм… Почесал затылок и придумал, как обойтись только Tiny5, да ещё и не отказываться от входа сброса (можно будет прошивку на плате обновлять).

cache ★★
() автор топика
Ответ на: комментарий от Eddy_Em

При требованиях преподавателя. Его, конечно, можно послать нахер, и отказаться использовать Протеус в учебном процессе, но учиться, вероятнее всего, станет намного сложнее.

cache ★★
() автор топика
Ответ на: комментарий от cache

Хреновый это препод, раз пиратский софт в обучении использует, да и вообще использует всякую ненужную дрянь в обучении.

Это почти как учить цифровой радиоэлектронике на примере ардуин: хрена с два получат студенты, а не знания!

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Потому что этот конкретный преподаватель любит только протеус, умеет только протеус, любит _только_ пики.
Еле уговорили его на «настоящие» железки для курсовой, все остальное - только в протеусе.

Deleted
()
Ответ на: комментарий от Eddy_Em

Ты же не возьмёшься заменить этого преподавателя, правда? Так чего ради критиковать, лучше то - нет.

cache ★★
() автор топика
Ответ на: комментарий от Eddy_Em

Вполне. у меня на связке 2313+vusb вообще на поток дело поставлено. Темплейт для схемы/платы + система сборки, где все menuconfig'ом конфигурится + готовая софтинка которая кастоизируется скриптом в 5 строчек на lua. время на изготовление связки схема+разводка+прошивка+софт - 1 час. Часа два, если плату самому травить/паять.

AiFiLTr0 ★★★★★
()
Ответ на: комментарий от aiqu6Ait

Спасибо, очень близко к тому, что я хотел.

cache ★★
() автор топика
Ответ на: комментарий от cache

Все равно, хорош преподаватель…

Это все равно, что в ПТУ сказать:
— А завтра, дети, мы с вами будем учиться резать толстый чугун. Каждый приносит по канализационному люку!

И на следующий день коммунальщики не досчитаются пары-тройки десятков люков…

Eddy_Em ☆☆☆☆☆
()

сэкономишь пару ножек, усложнив код. А потом если усложненный код по футпринту (ФП) невлезет в мелкий МК (как правильно у малоногих МК размер рома тоже мал), будешь ещё дальше усложнять код, пытаясь уменьшить ФП?

n_play
()
Ответ на: комментарий от Eddy_Em

Есть более конструктивные предложения?

cache ★★
() автор топика

Сам сейчас ковыряю tiny13, подпишусь.

CYB3R ★★★★★
()
Ответ на: комментарий от cache

раз код влазит, значит код уже есть. Ну тогда хорошо, просто хотел предостеречь что в мудрёном коде труднее ошибки искать.

n_play
()
Ответ на: комментарий от n_play

Кода нет, но функционал тривиален, так что сомнений в том, что он влезет в 256 слов, нет.

cache ★★
() автор топика
Ответ на: комментарий от Eddy_Em

Eddy_Em> Хреновый это препод, раз пиратский софт в обучении использует

Я могу и не такие ужасы рассказать. Один из преподавателей у нас старательно распространял проприетарные говнопрограммы, которые предлагал использовать для металлографии. Это SigmaPlot и ImagePro. Обе программы - параша редкостная. Сразу же в SigmaPlot бросается в глаза инопланетянский интерфейс (пользоваться им добровольно будут только конченные дегенераты, либо те, кто не желает что-то ещё осваивать по инертности мышления - ну не хочется таким что-то осваивать, когда быстренько алгоритм построения графиков в этой программе известен, даже если он трижды неудобен, и с компьютером работать не хочется), а также свалка всех данных в одну кучу. Такое мог спроектировать только мудак и извращенец. А уж ImagePro... Мало того, что оно требует HASP-ключ и в РФ не продаётся (купить лицензию нереально - отказываются продавать), так там калибровка шкалы делалась зоопедонекрофилами. И данные в одну кучу сваливает, никак их не разделяя. Тот же ObjectJ намного более продвинут и находится в общественном достоянии. И главное - он автоматически сортирует измерения. Фамилию того преподавателя называть не буду (не буду показывать пальцем, так сказать). Скажу лишь, что по части программного обеспечения он очень некомпетентен и он неспособен найти лучший вариант. Кое-кто ещё с ЛОРа его знает лично, посему догадаться может легко, о ком я.

Короче - в вузах сейчас ад, треш и угар.

Quasar ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.