eddy_em: (Default)
eddy_em ([personal profile] eddy_em) wrote2018-06-27 08:58 pm

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

Уже третий вечер бьюсь дома с управляемой розеткой на 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-мм телескопом мне хватит и релюшек, там нагрузка совсем никакая, чтобы ее включать/выключать строго при пересечении нуля. Ну и замыкать на землю один-единственный проводок для включения монтировки. Можно будет на основе другой платы, впаяв лишь требуемые детали, собрать розеточку.
Жалко потраченных тысячи с лишним рублей на десяток косячных плат. Надо было все-таки прототип сначала нарукожопить, как обычно делаю, а лишь как отладил бы все, заказал бы нормальные платы.

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org