Поиск

И еще о мазохизме


Уже третий вечер бьюсь дома с управляемой розеткой на STM8S003F3P4:

Началось все с «косяков» в самой схеме: затворы мосфетов не подтянул, один оптрон задом-наперед нарисовал и т.п. Эти проблемы решил. Дальше выплыли косяки в считывании тока с АЦП: постоянно читались какие-то маленькие значения, хотя при отсутствии тока на датчике Холла должна быть половина напряжения питания. Регистр ODR у одного ключа тоже почему-то не менялся (PB5). Заодно «выяснилось», что PB5 и PB4 (этот используется как вход и я его сконфигурировал с внутренней подтяжкой) являются «true open drain», т.е. не имеют верхнего мосфета и подтягивающего резистора! И у оптосимистора для включения второго канала почему-то замкнуты ноги светодиода (возможно, был дохлый или при пайке ему кирдык пришел). А еще, у меня сразу не получилось по USB через ch340 связаться с МК: сдуру соединил Tx обоих конвертеров (MAX3232 и CH340) резисторами и завел на Rx STM’ки. А там-то нормальный уровень — единица и пушпульные выходы! Т.е. надо соединять через диоды и подтягивать к плюсу резистором (в схеме на гитхабе все уже исправлено). Просто выкусил диод от MAX3232. Кстати, с какого-то перепугу он то прохладненький, то вдруг начинает греться, как печка. Но «волшебный дым» не испускает: держится, зараза!
Для проверки работы симистора хотя бы первого канала я слепил простую тестовую цепь: аккумулятор 12В и светодиодная лента. Лента весело светилась при включении релюшки, но от симистора не работала. Порог оптосимистора около 5В, а включаемый им силовой симистор BT137-600E должен включаться при еще меньших напряжениях на затворе, если на терминалах 12В. Понятно, что симистор не включался, т.к. оптосимистор почему-то не открывался тоже. Похоже, надо собирать на макетке и смотреть, чего же этой собаке надо!
Следующий косяк — АЦП. Уверенно считывается какая-то полная ахинея. Недавно я купил пяток девборд на STM8S103F3P6, которые вообще 1-в-1 мои S003, но флеш выдерживает не несчастных 100 перезаписей, а намного больше. Решил потренироваться на нем. И тут — засада! Код для 003 был чуть больше 4кБ, а stm8flash отказался его записывать на S103, где вроде бы тоже 8кБ флеша должно быть. Смотрю в лупу и вижу едва читабельную надпись «8S103F2P6». Китаец, падла, надул с описанием продукта — надо было сразу рассматривать внимательно, что там за чипы распаяны. Чуть подшаманив с лишними функциями (заодно и для 003 их удалил, т.к. sdcc — то еще Г, оптимизировать и удалять неиспользуемые функции, как это делает gcc, он не умеет), впихнул в 4кБ. Но по UART’у ничего не видно. Взял другой код (для STM8S105) и, быстренько поменяв регистры с UART2 на UART1 (+перетащив код в нужное прерывание) скомпилировал, прошил — и опять фигвам!
В общем, нужно со 103-м отдельно посидеть. Сначала диодиком помыргать, а потом таки завести UART и проверить наконец, что за поведение будет у него на АЦП. Если все будет ОК, просто перепаяю местами (возможно, была «поджарена» нога, вот и не работает 4-й канал АЦП у 003-го).
Ну и надо делать стенд для тестирования оптопар.
В принципе, для работы с 500-мм телескопом мне хватит и релюшек, там нагрузка совсем никакая, чтобы ее включать/выключать строго при пересечении нуля. Ну и замыкать на землю один-единственный проводок для включения монтировки. Можно будет на основе другой платы, впаяв лишь требуемые детали, собрать розеточку.
Жалко потраченных тысячи с лишним рублей на десяток косячных плат. Надо было все-таки прототип сначала нарукожопить, как обычно делаю, а лишь как отладил бы все, заказал бы нормальные платы.
eddy_em.livejournal.com

Добавить комментарий