Обсуждаем контроллеры компании Atmel.
Ответить

2 вопроса по подключению ATMega8

Ср авг 03, 2022 01:13:21

Разработка которую я делаю у меня первая, так что вопросы возможно глупые. Но не обессудьте.
Как обычно не хватает ног у микросхемы.
1.У схемы сделана самоподержка по питанию. То есть извне приходит сигнал (ACC). Этот сигнал подает питание на схему и после инициализации контроллер включает поддержку питания (Power_Ctl). Схема:
Изображение
Соответственно задействовано две ноги. Возникла идея вместо того чтобы задействовать две ноги обойтись одной. Поставить по питанию перед L7805 большой электролит и когда пропадет сигнал извне, вход сделать выходом и соответственно поддерживать питание пока не завершится программа. Какие плюсы-минусы есть у такого решения? Может подскажете какое-то иное решение?

2. Ног не хватает.
Так у меня реализован вход с ожиданием плюса:
Изображение
Таких входов сейчас 9.

Так у меня реализован вход с ожиданием минуса:
Изображение
Таких входов сейчас 3.
Такая реализация обусловлена тем что прибор будет стоять в автомобиле. Остальные ноги заняты выходами. И даже AREF задействован под выход. Ресет перепрограммировать не хочу так как он нужен при настройке прибора. Нужна идея как увеличить число принимаемых сигналов обойдясь тем-же или меньшим количеством ног?

Re: 2 вопроса по подключению ATMega8

Ср авг 03, 2022 08:54:07

может сделать подачу питания по схеме транзистор-тестера Маркуса?

Re: 2 вопроса по подключению ATMega8

Ср авг 03, 2022 09:09:34

Время реакции и действия определяющее? Можете добавить другие корпуса ИС в конструкции?
Как вариант: для входов: analog multiplexer (напр. 74HC4051/52), для выходов: сдвиговые регистры или expanders (напр. PCF8574/75, MCP23008/017), но все они имеют определенные особенности. Я бы попробовал уменьшить активные выходы.

Re: 2 вопроса по подключению ATMega8

Ср авг 03, 2022 16:45:42

Соответственно задействовано две ноги.

Не понял полностью задачу… для чего использовано два вывода? Один вывод включает поддержку питания (Power_Ctl), а второй вывод какую задачу выполняет?
Таких входов сейчас 9.
... Таких входов сейчас 3.

А сколько надо? И что это за сигналы? С какой длительностью они будут приходить? Нюансов быть может очень много… задаёшь вопрос но конкретики не достаточно, а ведь от нюансов может многое зависеть…
Если контроль данных сигналов допустимо реализовать поочерёдно, то тогда можно использовать для этой цели мультиплексор (к примеру CD4051). При использовании четыре вывода МК и одного мультиплексора, можно контролировать 8 входных сигналов. При использовании двух мультиплексоров и используя пять выводов МК, можно контролировать поочерёдно 16 входов…
Остальные ноги заняты выходами.

Для расширения выходных сигналов, можно использовать регистр сдвига (к примеру 74НС595)… при использовании трёх (максимум 4) выводов МК, получаем 8 выходных сигналов при использовании одного регистра и 16 выходов при использовании двух регистров и тд…
И даже AREF задействован под выход.

:shock: Что касается вывода AREF МК, то его использовать как обычный Вход/Выход невозможно… так как это вход опорного напряжения для АЦП. :dont_know:

Re: 2 вопроса по подключению ATMega8

Ср авг 03, 2022 16:53:09

Проектирование сверху вниз. Устройство. И поехали. Что за устройство? Скорее всего участникам проще будет ответить, если они будут понимать картину в целом.

Re: 2 вопроса по подключению ATMega8

Ср авг 03, 2022 17:06:52

:shock: Что касается вывода AREF МК, то его использовать как обычный Вход/Выход невозможно… так как это вход опорного напряжения для АЦП. :dont_know:

"А мужики то и не знают..." что кто то запретил.

Re: 2 вопроса по подключению ATMega8

Ср авг 03, 2022 17:16:46

Никто не запрещал, но он только ареф .

Re: 2 вопроса по подключению ATMega8

Ср авг 03, 2022 18:02:08

"А мужики то и не знают..." что кто то запретил.

Я не имел ввиду мазохистов… :)))

Re: 2 вопроса по подключению ATMega8

Ср авг 03, 2022 20:44:24

может сделать подачу питания по схеме транзистор-тестера Маркуса?

Не понял, но попробую разобраться.
veso74 писал(а):Время реакции и действия определяющее?

Не совсем понял о чем речь.
veso74 писал(а):Можете добавить другие корпуса ИС в конструкции?

Могу. Но хочется обойтись минимумом компонент. И так для первого устройства сложность несколько излишняя получается.
veso74 писал(а):Я бы попробовал уменьшить активные выходы.

Выходов всего 7 из них 6 управление силовыми механизмами. Электромоторы и лампы. А 7-ой индикация. Он как раз на AREF и висит.

VNS писал(а):Не понял полностью задачу… для чего использовано два вывода? Один вывод включает поддержку питания (Power_Ctl), а второй вывод какую задачу выполняет?

Второй собственно сигнал о том что схеме надо включиться и выключиться. Не только это, но для БП важно именно это. То есть ACC появилось и схема стартовала. пока ACC есть схема работает штатно. ACC пропало схема переходит в режим ожидания выключения, отрабатывает программу и обесточивает себя.

VNS писал(а):А сколько надо? И что это за сигналы? С какой длительностью они будут приходить? Нюансов быть может очень много… задаёшь вопрос но конкретики не достаточно, а ведь от нюансов может многое зависеть…

Если кратко, то 14. Понимаю что конкретики не достаточно. Чтобы сразу ответить на все вопросы просто ниже дам описание устройства и схему на данный момент.
VNS писал(а):Для расширения выходных сигналов, можно использовать регистр сдвига (к примеру 74НС595)…

С выходами все норм там уменьшать ноги не надо. Хотя наверное еще 1 выход я бы добавил.... Так СТОП. И так уже ног не хватает... :))
VNS писал(а): :shock: Что касается вывода AREF МК, то его использовать как обычный Вход/Выход невозможно… так как это вход опорного напряжения для АЦП. :dont_know:

А я и не говорил что это обычный выход. :) На нем индикаторный светодиод. Реализовано так:
void Led_change(void)
{ // -- тут будем мигать светодиодом подключенным на #AREF
if (ADMUX > 0x46)
ADMUX = 0x07;
else
ADMUX = 0x47;
}

:)) Не, ну а чего он просто так будет болтаться? Пусть хоть индикатором мигает. 8)
Demiurg писал(а):Проектирование сверху вниз. Устройство. И поехали. Что за устройство? Скорее всего участникам проще будет ответить, если они будут понимать картину в целом.

В общем давно хотел попробовать что-то сделать на МК, даже было несколько попыток прерванных на разных стадиях. В основном на стадии покупки компонент. По итогу без дела лежала год ATMega8 в дип корпусе, горсть рассыпухи, макетная плата и программатор USBAsp. А тут звезды сошлись. Сдох штатный ипоньский блок автоматики стеклоподъемников и случайно попалась статья DI HALT как раз на эту тему. Собственно основные идеи слямзил у него и творчески переработал. Получилось вот это:
Изображение
Ну а когда основа была нарисована и начал писать код, как обычно захотелось добавить фич. Идеи есть, а ног у микросхемы, как выяснилось в процессе, кОтострофически мало. :) Вот и ищу решения. Стараюсь использовать те компоненты которые уже куплены или просто исторически есть. Ну а что? На Си и Асме я никогда не программировал, платы не разрабатывал, схемы для МК и прочей логики не делал и даже плату последний раз травил году наверное в 1985-ом примерно. Вот и сижу масштабно всё изучаю. Вот такая в целом картина выходит.

P.S. Картинка вышла черная почему-то. Кому удобнее вот pdf.
P.P.S.На ДХО и подсветке пока висят реле но будут вместо них MOSFET и ШИМ. Просто пока не нарисовал.
Вложения
Plates.pdf
(107.26 KiB) Скачиваний: 88

Re: 2 вопроса по подключению ATMega8

Ср авг 03, 2022 21:57:14

возьми АТмега16, у нее гораздо больше ног.

Re: 2 вопроса по подключению ATMega8

Ср авг 03, 2022 22:02:20

возьми АТмега16, у нее гораздо больше ног.

Это самое простое решение. Взять МК с большим количеством ног. Но это не спортивно. Чему я научусь если каждый раз буду выбирать самый простой путь? Если бы задача была бы не учебной, а типовой на потоке и меня поджимало время я бы конечно так и поступил.

Re: 2 вопроса по подключению ATMega8

Ср авг 03, 2022 23:59:37

veso74: Время реакции и действия определяющее?

Retrograd: Не совсем понял о чем речь.

Одно дело запустить управление напр. с expanderа для динамическая индикация, а другое, например. для реле (с переключением напр. несколько раз в минуту максимум). Управление I2C быстрое, но не настолько быстрое.
---
veso74: ... Я бы попробовал уменьшить активные выходы.

Retrograd: Выходов всего 7 из них 6 управление силовыми механизмами ...

Моя идея не била оптимизация выхода вообще (ето вероятно уже сделали), а как "первый эксперимент": пропуская выходы через регистр расширителя/сдвиговой регистр - путь к большему количеству выходов в схеме. И так будет как первая попытка с "высокой вероятностью успеха".
---
MCP23017, используете два пина, управляете 16 выходами/или digital входами. Если не хватает количество, подключаете еще один чип по I2C и становится 2 х 16 = 32 (и меняете I2C адрес). По "простого пути" (изменение адреса каждой микросхемы) можно управлять 8 х 16 входа/выхода к два вывода MCU (для I2C). Управление можно как по хардуерная I2C шина, так и по софтуерная I2C. Схема из интернета, просто для идеи. Минус один: ИС подорожали :).
---
Многo входы - цифровые, их тоже можно вставить в expander, даже объединены с выходами.
Вложения
MCP23017-IO-port-expander-circuit-with-arduino.jpg
(104.78 KiB) Скачиваний: 53

Re: 2 вопроса по подключению ATMega8

Чт авг 04, 2022 00:31:43

А я и не говорил что это обычный выход. :) На нем индикаторный светодиод. Реализовано так:

Как это реализовывается никому не секрет… только вот нагрузочная способность данного вывода мне неизвестна… посему использование на свой страх и риск... к тому же при его использовании можно забыть про использование АЦП… в общим такого рода мазохизм лично я не приветствую… но дело хозяйское… :)

Что касается схемы, а именно делителей на схеме, то я бы использовал другие номиналы (4,7 кОм и 1,5 кОм) и не ставил бы стабилитроны… кварц в данной схеме не нужен от слова совсем… пусть тактируется на 8 МГц от внутреннего генератора… таким образом высвобождается два вывода… для восьми входных сигналов использовал бы мультиплексор (как писал ранее) – это позволит задействовать всего четыре вывода МК в место восьми… для выходов (кроме ШИМ) использовал бы регистр сдвига (как писал ранее), это управление пятью реле и двумя светодиодами… два вывода ШИМ это РВ1 и РВ2… управлением регистра задействовал бы эти четыре освободившиеся вывода… и того пока задействовано 10 выводов… далее входа которые контролируют замыкание на общую шину GND подключаем напрямую к МК – это пять входов согласно схемы… и того остаются ещё семь свободных выводов МК… и не надо извращаться с AREF… :)) если я правильно всё увидел…

Re: 2 вопроса по подключению ATMega8

Чт авг 04, 2022 01:23:33

veso74 писал(а):Одно дело запустить управление напр. с expanderа для динамическая индикация, а другое, например. для реле (с переключением напр. несколько раз в минуту максимум).
...
MCP23017, используете два пина, управляете 16 выходами/или digital входами.

Теперь понял. Но пока не готов на такой подход. Мне по идее надо всего то добавить 1-2 входа и в идеале +1 выход. Просто в процессе работы родилась пара идей и если получится то хочется реализовать в этой конструкции. Ну а если не получится то и не так уж и страшно.

Добавлено after 44 minutes 37 seconds:
VNS писал(а):Как это реализовывается никому не секрет… только вот нагрузочная способность данного вывода мне неизвестна… посему использование на свой страх и риск... к тому же при его использовании можно забыть про использование АЦП… в общим такого рода мазохизм лично я не приветствую… но дело хозяйское… :)

От 20 до 40 миллиампер можно грузить. Так что светодиод тянет прекрасно. Тем более индикаторный. Ну мож перестрахуюсь и транзистор залеплю. А АЦП в данной схеме просто не нужен. Так что ИМХО это вариант.
А может быть попробовать кнопки повесить через делитель напряжения как раз на AREF..... :roll:
VNS писал(а):Что касается схемы, а именно делителей на схеме, то я бы использовал другие номиналы (4,7 кОм и 1,5 кОм)

Ну собственно почему и нет. Обдумаю.
VNS писал(а):и не ставил бы стабилитроны…

А вот это никак нельзя убирать. В сети автомобиля бывают иголки вольт до 60 легко. Стабы тут, в том числе, и для защиты контроллера нужны. На входы то 14 вольт подается.
VNS писал(а):кварц в данной схеме не нужен от слова совсем… пусть тактируется на 8 МГц от внутреннего генератора… таким образом высвобождается два вывода…

Так и было пока я не почитал насчет морозоустойчивости ATMega8. Народ рассказывает (из обширной практики) что от внутреннего RC тактуется прекрасно примерно градусов до -22 а потом бывает что МК и не стартует на холодную. Причем бывает даже что в одной партии часть корпусов нормально стартует , а часть в -22 рогом упирается и пока не подогреешь не стартует. Эту проблему лечат или подогревом или установкой кварца. С кварцем морозоустойчивость на старте резко повышается. :) Подогрев поставить конечно можно, но мне подумалось что кварц как-то надежнее.
Всё это дело будет работать в автомобиле. И следовательно вполне может столкнуться и с -40. А уж -30 увидит однозначно и не однократно.
Я когда кварц на схему дорисовывал горько плакал :cry: и мне пришлось изрядно проявить фантазию чтобы эти две ноги под кварц отдать почти не отказываясь от функционала и не усложняя схему. А вообще, согласен. Кварц тут лишний. Всё прекрасно могло бы работать и без него.
VNS писал(а):для восьми входных сигналов использовал бы мультиплексор (как писал ранее) – это позволит задействовать всего четыре вывода МК в место восьми… для выходов (кроме ШИМ) использовал бы регистр сдвига (как писал ранее), это управление пятью реле и двумя светодиодами… два вывода ШИМ это РВ1 и РВ2… управлением регистра задействовал бы эти четыре освободившиеся вывода… и того пока задействовано 10 выводов… далее входа которые контролируют замыкание на общую шину GND подключаем напрямую к МК – это пять входов согласно схемы… и того остаются ещё семь свободных выводов МК… и не надо извращаться с AREF… :)) если я правильно всё увидел…

Думаю что правильно увидели. Только светодиод там один всего. Я немного недопонял пока написанное, но еще почитаю и разберусь. Может быть задам еще вопрос. Спасибо.

Re: 2 вопроса по подключению ATMega8

Чт авг 04, 2022 03:39:49

возьми АТмега16, у нее гораздо больше ног.

Это самое простое решение. Взять МК с большим количеством ног. Но это не спортивно. Чему я научусь если каждый раз буду выбирать самый простой путь? Если бы задача была бы не учебной, а типовой на потоке и меня поджимало время я бы конечно так и поступил.

Неверно рассуждаете. МК выбирается под задачу. Либо количеством ног, либо расширение ввода вывода.

Re: 2 вопроса по подключению ATMega8

Чт авг 04, 2022 04:52:34

для управления питанием можно занимать и 1 ногу, я делал... сигнал от кнопки и от мк шел по 1 проводу, но в этом случае при нажатой кнопке питание подается принудительно (вне зависимости от желания мк)
в верхней схеме для отключения питания достаточно отключить подтяжку, состояние кнопки отображается в регистре PIN (1-нажата 0-отпущена).
в нижней схеме для отключения питания нужно включить порт на выход и вывести в него 1, состояние кнопки отображается в регистре PIN (1-отпущена, 0-нажата), порт д.б. в Z состоянии. в этой схеме, при большой емкости в питании возможно, придется добавить небольшой конденсатор с эмиттера Q4 в точку соединения резисторов 1kOm, хотя мне не понадобилось.

Re: 2 вопроса по подключению ATMega8

Чт авг 04, 2022 08:48:53

Никто не запрещал, но он только ареф .

А подумать? Какие может иметь напряжения? Отож.

Re: 2 вопроса по подключению ATMega8

Чт авг 04, 2022 10:24:47

для управления питанием можно занимать и 1 ногу, я делал... сигнал от кнопки и от мк шел по 1 проводу, но в этом случае при нажатой кнопке питание подается принудительно (вне зависимости от желания мк)

Спасибо. Это вероятно как раз примерно то что мне нужно.

Добавлено after 1 hour 30 minutes 31 second:
Неверно рассуждаете. МК выбирается под задачу. Либо количеством ног, либо расширение ввода вывода.

Не могу согласиться. В школе, на геометрии, а может и не только на геометрии просто про геометрию помню точно, мне попадались задачки в которых вопрос сформулирован примерно так: "По имеющимся данным вычислите длину отрезка АБ или докажите что это сделать невозможно". Такие задачи очень развивают гибкость мышления и способствуют изучению базового материала.
Это причина по которой я не согласен с вашим подходом. Точнее даже не с самим подходом, а с критериями выбора. Я согласен что МК выбирается под задачу, но разве повод сразу хватать более мощный МК если для решения задачи не хватает пары ног? И разве повод сразу лепить на плату новый корпус если не хватило ног? Зачастую, немного подумав, можно обойтись одним диодом. :)
В частности если посмотреть на схему, Изображение то можно увидеть что за входом J14 стоит просто диод, а пока ног хватало там висел и триггер и даже под этот вход была занята отдельная нога МК.
По этому ваш подход я могу одобрить только если задача производственная и важнейший критерий, время разработки устройства. То есть конечная цена устройства и много прочих моментов являются не важными. А если говорить о задачах учебных, то ваш подход даже вреден. Потому как приучает ученика не думать, а тупо использовать простые типовые подходы. При вашем подходе к обучению в итоге мы получаем жутко не оптимальных монстров типа виндовс и умных электрочайников на 64-х битном микропроцессоре.

Re: 2 вопроса по подключению ATMega8

Чт авг 04, 2022 11:12:27

Retrograd, рассуждения верны, но следует рассматривать на конкретном примере конструкции: устройство для хобби?, устройство для дополнительной деятельности?, задача, серьезная деятельность и т.п.

Иногда решающее значение имеет время решения задачи, беру из коробки другой контроллер и решаю проблему на месте. Почти такая же цена (и самое главное: с возможностью улучшения (upgrade) конфигурации в будущем с другими узлами и командами).

А в другой случай просто думаем: есть ли другие способы? (напр. возможно ли с меньшим количеством контактов?). Всегда бесконечны решения. Как "мозговой штурм" (brainstorm) даже. Посмотрите на старые конструкции микроконтроллеров (напр. 16F84A), любимая задача: например, дисплей LCD и много пинов, во много раз превышает количество выводов микроконтроллера. На тех же выводах, сканируются по время, с переключением цикла.

Ниже, как ориентир в веселой части для размышлений:
любимое: 2 вывода MCU -> 6 выхода
https://www.edn.com/two-pic-pins-drive-six-leds/

Но в случае с автомобилем бы сделал безусловно с:
каждый компонент (кнопка, вход, выход) - на отдельном пине. Таким образом, программно легко можно реализовать множество софт. способов стабильной работы, например, debounce кнопки (дребезг контактов или входов), чтения состояния несколько раз, проверку при выполнении и т.д.
Вложения
contenteetimes-images-01mdunn-di-di5459sch.png
(51.75 KiB) Скачиваний: 55

Re: 2 вопроса по подключению ATMega8

Чт авг 04, 2022 12:50:17

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

Ну вот, спросил совета и тут же с высоты своего знания дал выволочку советующим. А сам ведь только в начале пути. И количество лап тут далеко не первостепенное. Если предполагается всё это использовать в автомобиле - при первом же включении навалятся помехи. И нужно будет продумывать более тонкие вещи: развязки, фильтрация, экранирование, разводка. Массу сюрпризов сулит этот путь.
А что касается максимальной минимизации :)) , для меня этот вопрос звучит так: сделать дёшево - или сделать хорошо. Я всегда для себя пытался реализовать второй вариант, даже если для этого понадобится вкорячить ещё один МК. Не нами придумано: скупой платит дважды.
Ответить