Pull to refresh

Comments 69

Компилятор не поддерживает передачу аргументов в функцию. Также функция не может вернуть значение.

То есть просто взять уже готовый код на С не получится, только переписывать?

Среда разработки крайне не любит кириллицу в комментариях.

Может, среда разработки уверенно работает только в китайской локали? ;)

Насколько я понял, программировать придётся используя исключительно глобальные переменные. Не совсем понятно, как компилятор вычисляет сколько-нибудь сложные выражения (всё же он вынужден распределять регистры, верней ту же глобальную память, в этот момент). Честно говоря, меня смущает очень этот момент. А доступен ли ассемблер? А то получится, если и ассемблера ещё нет, то попросту такой МК кроме как для простейших задач не годится. Да и собственно объём программной памяти на это намекает.

Никто не заставляет вас для инициализации регистров пользовать глобальные переменные.

Да, взять готовую программу на С не получится, придётся вносить коррективы.

Получится. SDCC уже многие модели Padauk поддерживает

Я когда заказывал, то их вроде тоже в наличии не было, но там можно было запрос сделать, они в через пару дней выставляют счёт и говорят, что сроки поставки увеличены будут.

На волне пандемии наблюдал как одна небольшая фирма разрабатывала и ставила в серию производство автоматов по обеззараживанию рук. Какие МК только не ставили, и аттини, и был даже прототип на китайском аналоге стм32. И все ради простой последовательности - сенсор рук, 0.3мс струя стерилизующего пара, 3с задержка, 8с сушилка, 2с задержка и возврат к ожиданию сигнала от сенсора. Можно было сделать и на таймерах 555, но кажется из-за обвязки выходило дороже.

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

Потом не всё так просто. "На таймерах 555" всё быстро сведётся к конечному автомату, и возможно, достаточно сложному конечному автомату, который реализовать без контроллера на микросхемах логики удастся, наверное, только на микросхеме ПЗУ или ПЛМ. Как правило любая система управления обладает обратными связями (и входными сигналами), это не тупо "циклограмма". И количество состояний, сложность автомата, резко возрастает. Обратные связи нужны чтоб как минимум обнаружить аварийные ситуации и обработать их подходящим способом, а не оставить лужу на полу (если, например, сенсор постоянно выдаёт ложные сигналы, или если сам управляющий автомат неисправен).

Полностью с вами согласен. Первые версии автомата имели конструктивный дефект, при котором в зависимости от падающего солнечного света сенсор начинал рандомно срабатывать. И лужи были, все как вы говорите.😂

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

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

Но возникает вопрос - а зачем микроконтроллер тогда?

Там его нет, это чисто механический автомат-обеззараживатель.

Этот материал я упоминаю в самом начале статьи

Управление шаговыми двигателями без единого диода и конденсатора, серьезно? Ох уж эти программисты :)

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

Когда вы выпустите партию, скажем, в тысячу штук и они у пользователей начнут перегорать - это совсем не то, что «в одном из экспериментов». По моему опыту - все, что хотя бы чисто теоретически может случиться, обязательно однажды (или не однажды) случится в реальной эксплуатации. И да, конденсаторы по питанию иногда бывает лучше на порядок (примерно в десять раз) большего номинала поставить, иначе, скажем, при работе микроконтроллера от бортовой сети грузовика будут сюрпризы. А если поставить малого номинала - то и при работе от батарейки возможны сюрпризы. И внутренний диод в транзисторе совсем не то напряжение выдерживает и энергию, чтобы искру от двигателя гасить.

Кстати, из каких соображений выбраны конденсаторы по питанию всего лишь 0.1 мкФ? На 200 мА нагрузки (не понял, на обмотку или на весь двигатель) хотя бы несколько мкФ нужно. Если вы совсем «практик», то возьмем стандартный H-bridge и посмотрим даташит - на пару ампер тока минимум 47 мкФ конденсаторы по питанию рекомендуют (и обязательно внутри SOC предусмотрены диоды с напряжением примерно на порядок больше питающего и хорошим пиковым рассеянием), так что на 200 мА получаем 4.7 мкФ.

200мА на весь двигатель (когда в полношаговом режиме обе обмоточки под напряжением). Отчего же вы только 0,1мкФ увидели? В схеме он стоит параллельно с танталом в 10мкФ, так что в этом смысле всё правильно сделано.

А этот конденсатор стоит не там, где он нужен - он должен быть расположен у выводов питания мотора так, чтобы сглаживать помехи до их попадания в цепь питания микроконтроллера. У вас, судя по плате и схеме, микроконтроллер вместе с мотором вместе подключены после этого конденсатора - так что микроконтроллер будет временами перезагружаться или работать нестабильно из-за помех от мотора в питающей цепи.

Защитный диод необходим при любых раскладах, так как обмотки шагового двигателя имеют индуктивность, ток в которой прекратиться мгновенно не может. А если ток есть, а сопротивление цепи велико, то будет нарастать напряжение. Причем обратное и, теоретически, бесконечно большое. Выходы МК пробиваются в легкую.

Скорее всего, Вам просто везло, что попадались шаговые двигатели с уже установленными защитными диодами.

Биполярные шаговые двигатели с установленными защитными диодами? Что-то интересное...

Правильно вам пишут. Хотя, вероятнее, у вас просто устройство работает нестабильно, но вы это игнорируете. Даже паспортную мощность от двигателей не удастся получить, если быстро не разряжать ЭДС самоиндукции через диоды, не говоря уж про нестабильность работы всей схемы и заметную вероятность ее «спалить» напряжением самоиндукции, в разы превышающим питающее напряжение (это не теория, это практика). Зачем вам это демонстративное игнорирование законов физики?

Да я так... разговор поддержать
Согласен с вами по всем пунктам

Что ж вы мне статью про супрессоры прислали? Я то ждал ссылку, где можно купить шаговые двигатели "с уже установленными защитными диодами" :)

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

Вы написали "Биполярные шаговые двигатели с установленными защитными диодами?". Поэтому я и дал ссылку на статью, где описаны защитные диоды для биполярных двигателей (симметричные). Совершенно не подозревая, что слово "биполярные" в Вашем вопросе было совершенно излишним.

Что касается "с установленными защитными диодами", то ищите шаговый двигатель с драйвером. На драйвере защитные диоды уже будут.

Позвольте, но это ведь вы первым написали термин "шаговые двигатели с установленными защитными диодами", отметив, что мне "повезло", что они мне постоянно попадались.
Полагаю, когда говорят "объект Х с установленным с установленным объектом Y", подразумевают, что конструкция объекта X (в данном случае - шаговый двигатель) уже включает в себя объект Y (в данном случае - защитный диод).
Встречались ли вам шаговые двигатели, в конструкцию которых интегрированы защитные диоды? Если нет (как и мне), то каким образом мне могло "повезти" и всё таки их отыскать?
Ирония моих комментариев как раз в этом заключалась :)

Мне встречались шаговые двигатели, например, с ULN2003, который уже содержит защитные диоды.

Но это не шаговый двигатель, а микросхема которая им управляет...

Не надоело придираться к словам? ULN2003 представляет собой просто сборку в одном корпусе семи дарлингтонов с защитными диодами.

Шаговый двигатель с ULN2003 = шаговый двигатель с уже установленной прямо на его корпусе платой с ULN2003 = шаговый двигатель с уже установленными защитными диодами.

Так устроит наконец-то?

Дайте угадаю, это были униполярные ШД? И плата со сборкой транзисторов просто была припаяна к нему?

Во-первых, к двигателю плату не паяют. Обычно, она крепится или на защелках, или прикручивается.

Во-вторых, если двигатели с UNL2003 мне попадались часто, то реже попадались двигатели и с A4988, который именно для биполярных шаговых двигателей.

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

Вот, и докатились до 8051. Да, ещё и радуются...

Причём, оно ещё и хуже 8051. Компилятор без параметров в функции, это прекрасно!

К китайцев есть большой выбор отличных современных клонов 8051 с кучей плюшек. Есть неплохие клоны PIC. Всё это по цене в единицы долларов. Но не на все из этого есть документация не на китайском.

UFO just landed and posted this here

Всё это по цене в единицы долларов

В 38 центов есть существенно похлеще - W806, W801 и т.п.

А под linux у них средства разработки есть? Было бы прекрасно... Я когда-то контроллеры Holtek программировал. Немного похожи. У тех тоже своя IDE и свой C и так же под винду. Но это было больше 20 лет назад

На счёт линукса не знаю... На сайте об этом никакой информации нет. Загружается просто архив с файлом-установщиком.

Есть. Смотрите мой комментарий ниже. Там же все ссылки.

Спасибо! Не внимательно читал. Похоже, SDCC может оказаться даже лучше, чем Mini-C

Насколько мне известно, на данный момент нет

Как Вам удалось сделать заказ, Казахстан?

Свой заказ я делал ещё в конце предыдущего года, доставлен был январе

Через посредников все возится. Проблем нет.

А намекните, пожалуйста, для неопытных, в какую сторону искать?

Спасибо за обзор, давно к ним присматриваюсь!
Вы не сравнивали потребление, например, с L серией STM32? Насколько Padauk хуже?

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

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

Ни в какое сравнение по потреблению в слипмоде (любых режимов) падуки (да и любые китайские МК) не идут. Тем более СТМ32 Л. Совсем другие техпроцессы. Ток в сравнении с обычными СТМ32 минимум на порядок больше, с Л порядка на два. Для микротокового автономного питания оптимальнее МК с интерфейсом зиби, у них нормальные токи утечки в слип.

А нет возможности использовать свою привычную и единственную $IDE_NAME со своим привычным $MAKE_SYSTEM_NAME под своей привычной $OS_NAME? А то этот зоопарк из недоIDE утомил еще лет 15 назад.

Да, возможность есть, в перечне используемых источников ссылки положил на такой проект. Под SDCC есть инструменты, так что можно пользоваться. Но сам не пробовал.

В ДКО Электронщик только что отменили заказ на них. :-( Опоздал я немножко.

В дополнение к статье, хотелось бы указать, что для МК Padauk есть так же открытые средства разработки:

  1. USB программатор https://github.com/free-pdk/easy-pdk-programmer-hardware на базе STM32F072C8T6 и программа к нему https://github.com/free-pdk/easy-pdk-programmer-software

  2. Дизассемблер с эмулятором https://github.com/free-pdk/fppa-pdk-tools

  3. Ну и, собственно говоря, C компилятор SDCC http://sdcc.sourceforge.net/ на данный момент поддерживающий pdk14, pdk15, и в процессе еще pdk13.

Так что имеем полностью свободный tool-chain с нормальным C и работающий под любой системой.

Вот только что то очень мало поддерживаемых девайсов у открытых средств

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

А если еще и поделитесь тем, что добавили, заработаете плюс себе в карму )

У статьи высокий рейтинг и в основном положительные комментарии.
С вашего позволения немного покритикую.

Интересно, почему китайцы часто пишут O.K. (кнопка на диалоге New Project), если носители языка всегда пишут OK?
Фоновая картинка на том же диалоге с серыми надписями PADAUK и FPPA попахивает началом нулевых годов…
Плюс примитивные картинки на кнопках…
Похоже, китайское качество — в данном случае качество дизайна — всегда останется китайским 😔

«Программатор питается от сетевого адаптера 9В 2А» — интересно, зачем программатору «мелких» микроконтроллеров такая большая мощность?

Автор скромно умолчал о цене программатора $126.

Это скока будет в 5 рублевых попугаях?

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

Программатор как раз вполне нормально. Его стоимость раскладывается на десятки-сотни ваших дешевых сделанных устройств.

Ещё эмулятор у них есть, вроде 5S-I-S02B

Позволяет отлаживать код с точками останова и с реальным железом

Да, есть у них такое и тоже в нескольких версиях.
Его не заказывал, потому как брал микроконтроллеры с перезаписываемой памятью.

С ним очень удобно отлаживать код, как с JTAG, а не перепрошивать сотню раз

Это именно эмулятор, а вовсе не внутрисхемный отладчик. Со всеми вытекающими

В ближайшее время точно не собираюсь

Sign up to leave a comment.

Articles