Прилетела тут реклама: новая версия софта для разработки плат от производителей, которые на этом съели собаку. 30 лет и все такое.
Стал читать. Оказалось, Circuit Studio – это этакий Altium для бедных. Немного урезанный функционал, но зато гораздо дешевле. Зато доступ до “ваще всех” элементов и компонент.
Ну ок, я люблю новый софт. Поставил, зарегистрировался и первый же тест: есть ли в закромах stm32f042 или Atmel 328p? Ни одна программа не смогла его преодолеть. Где-то есть одно, где-то другое. Так и тут: сердце наноардуинки есть, а stm нет. Жить можно.
Второй тест еще проще: размещаем несколько элементов на плате, соединяем и пробуем их подвигать.
Красивая картинка? Верхний транзистор я чуть подвинул вверх, и прекрасно видно что произошло с базой и эмиттером. А нижний транзистор пережил пару поворотов. В итоге он тупо потерял соединения.
А представьте, что у вас схема чуть сложнее? В ней не обойтись без “растаскивания” элементов …
И это называется “профессиональным софтом”? И за это просят 1000 баксов сразу и потом по 150 в год? Это EAGLE в другой обертке. Рисовать мультивибраторы пойдет, а что-то сложнее будет заполнено мукой и страданиями …
Новые инсталляции CentOS раздражают тем, что по умолчанию переключают экран в большое разрешение. Даже для текстовой консоли. Лично мне это неудобно, ибо 99% машин у меня в виртуалках …
Как-то раз ко мне пришел заказчик. И захотел он странного для меня: шилд для ардуины. Вернее, первоначально задача была поставлена еще проще: вот есть нцать шилдов, собери их в одну кучу, что бы без проводов. И что бы arduino uno управляла всем этим. После выяснения, где и что будет этим управлять, я немного офигел. Оказывается, в вентиляции и теплоснабжении есть куча мест, которые требуют простого и тупого управления в духе “вон там сигнал появился? Ну и щелкни вот тут”. И ничего больше не надо. Вообще.
Но почему-то ничего простого не доступно от слова совсем. Либо дорогущие контроллеры от именитых производителей, либо чуть более доступные, но от наших. Но все равно стоимость получается внушительной.
Поговорили, почесали макушки и ударили по рукам. Я пошел делать, заказчик пошел переводить денег.
Долго ли, коротко, но я сделал первую версию контроллера. 4 входа 220в, 4 переключающих реле, выход 0-10В, и развязанный rs-485. Плюс пара подтянутых выходов для 1-Wire и все это под управлением ардуинки, запрограммированной в fl-prog. Ну и питаться может от 7В до 40В.
В общем-то ничего особенного от слова вообще. Обычный навороченный шилд для ардуины и особенного в нем только то, что он у меня первый. Ну не делал я раньше шилдов для ардуинок 🙂
Первым же неприятным фактом стало то, что ардуинка отказывалась прошиваться, когда она стоит в контроллере. Это 100% мой косяк, ибо “сделай как там” привело к тому, что я использовал драйвер rs-485 “как у китайцев”. А этот ADM485 при отсутствии сигнала на линии тупо подтягивает линию RX в 1. Ну ладно, прошить можно и вытащив ардуинку из платы.
Второй проблемой стало то, что при “автономной” работе rs-485 не работал. То есть питаешь плату через ардуинку – все ок. Питаешь через внешний источник – rs-485 мертв. Проблема осложнялась тем, что у меня все работало, а у заказчика – нет. На одном и том же коде.
Опуская подробности, оказалось, что в мире существует две версии arduino nano. “Дешевая” версия и “дорогая”. Естественно, что “дешевой” версией забиты все магазины Москвы и алиэкспресса. Разница только в одном – чипы мостов usart-usb. На дешевой версии стоит CH340, на дорогой – FTDI.
И этот дешевый CH340 при питании “снаружи” видя, что на входе usb у него ничего нет, тупо подтягивает RX/TX в ноль. А дорогой FTDI – ставит в Z.
Вышли из положения, заиспользовав Software Serial, откусили ножки на самой ардуине и тупо бросили два проводка на плате. То, что у меня заинвертирован RE/DE сигнал, решили ручной правкой кода. Ну не умеет flprog в такое. У них все прямо …
Следующей претензией стало, что “даю 220в, датчик показывает 0, но это ок. Не ок, когда секунд через 40 он переходит в 1, и еще через 40 обратно”. Тут я офигел мрачно.
После разбирательств стало понятно, что ардуинка насколько перегружена кодом от flprog, что тупо не успевает реагировать на полуимпульсы от опторазвязки. А в прерывания оно не умеет. Мы взяли 20МГц чип и тормознули его до 50Гц. Ну почти до 50 …
Не, я и там дунул-плюнул и поправил.
И тут оказалось, что вообще-то такие простые контроллеры очень нужны совершенно другим людям. Например, местные любители самогоноварения очень возбудились на характеристики и стоимость контроллера. Настолько, что наплевав на все, отобрали у меня единственный рабочий экземпляр (остальные у заказчика) на тест.
В результате по вечерам я проектирую новую, улучшенную версию контроллера. Для безопасности добавлю опторазвязку вообще на все выходы, ибо пользователи явно его будут совать куда не попадя, наплевав на правила техники безопасности. Будет изолировано все от всего. Люблю ночью спать спокойно.
В качестве главного процессора будет STM32F072. Мощный, умеет программироваться через USB и имеет кучку ножек. А ардуинка … ну дам ей “кроватку”. Пусть используют те, кто привык 🙂