USB PD
1 пост
Наверное многие уже использовали PD-триггеры, чтобы запитать от USB-зарядника самые разные устройства. Очень удобная штука. Однако у разработчиков железа бывают и более сложные требования по управлению питанием, для них и была сделана эта библиотека.
Вот несколько примеров, когда фиксированного триггера может не хватать
Меняется сопротивление нагрузки (например, медь/вольфрам при нагреве), и надо крутить напряжение чтобы мощность не падала.
Нужно задать какие-то нестандартные напряжение (через PPS-профиль)
Хочется выставить ограничение по току, чтобы заряжать аккумуляторы напрямую.
Хочется использовать микроконтроллер с поддержкой USB PD (например STM32Gxxx), и упростить внешний обвес.
В общем, это актуально для разработчиков железа, у которых есть свобода выбора "что рисовать на схеме".
Усложнять конечно стоит не всегда.
Если вы не разрабатываете свое железо, а пользуетесь готовым - логичнее использовать копеечный внешний триггер.
Если делаете что-то совсем простое, и нужно только фиксированное питание из стандартного списка - с готовым триггером тоже может быть проще. Или можно использовать микросхему, аналогичную тем что в готовых триггерах.
Так что разумный выбор за вами.
Опенсорсные проекты есть, но все со своими особенностями. Где-то не поддерживаются EPR-режимы (28+ вольт), где-то код гвоздями прибит к операционной системе, которая не всем нужна, и т.п. В общем, смысл в новой библиотеке с перламутровыми пуговицами точно был.
Поскольку время не резиновое, делал только самую востребованную вещь, которая у всех пригорает - режим Sink (потребление энергии). Вот что есть уже сейчас:
Полностью независимое от платформ ядро.
Полная поддержка Sink.
Драйвер FUSB302B - одного из самых популярных чипов.
Совместимость с самой последней версией стандарта USB PD 3.2. Сейчас массовые зарядники поддерживают спецификацию 3.1. Новые, с поддержкой 3.2 и AVS-профилями выпустят в следующем году. Точно выпустят, сертификация чипов уже прошла, с рельсов не свернуть.
Чего нет:
Поддержки режима Source (источника питания).
Наворотов по управлению режимами кабеля.
Драйверов для STM32G / WCH (руки не дошли)
Да. В исходниках есть примеры. Библиотека используется в реальном проекте reflow-паялки, про которую недавно писал. Собственно, она и была поводом сделать свой USB PD стек. А так как привык все делать основательно, решил что стоит упростить жизнь следующим разработчикам. Ну и всё попутно проверялось на десятке зарядников, которые были под рукой, проблем нет.
Честно предупреждаю, тема не самая тривиальная. Если хочется просто привинтить FUSB302B к ардуине и повертеть напряжениями - может быть сложновато. Документация минимальная, для тех кто не боится вникать в код примеров. Но у опытных разработчиков проблем быть не должно.
С момента предыдущей публикации прошло довольно много времени. Так получилось, что мир слегка изменился, и было не до разработок :). За это время технологии не стояли на месте, поэтому в итоге девайс получился еще проще, компактнее, и удобнее. Ушел дисплей, упростился конструктив, а управлять теперь можно из браузера по BLE.
Кому лениво читать предыдущую публикацию, кратко напомню:
Хотелось компактный девайс для ненапряжной пайки дома. Когда что-то собирают раз в пару месяцев, и нет смысла заморачиваться со здоровой печкой.
Наглядно показать, что современной электроникой вполне реально заниматься дома.
Более крупная рабочая зона (80х70 мм), чем у доступного на рынке.
Комфортный интерфейс для настройки.
Чтобы легко мог собрать каждый (чтобы все технологии были доступны в домашних условиях).
В общем, вышло как на картинке. А вот еще немного:
Конечно, надо понимать, что любой девайс - это баланс фич под конкретные задачи. Сам принцип прожарки плат снизу "несколько спорный", но для LTS-паст приемлемый. У тех кто шарит в теме, глазик дергаться от температурных режимов не будет :). Если нужно что-то посерьезнее - значит стоит прицениваться к полноценным печками из тостеров, но это уже совсем другие габариты и другие задачи.
Изначально паялка делалась на MCH-нагревателях. Но получилось недостаточно просто/дешево для любителей и динамика не понравилась. Плюс, с учетом разбега температур из-за прожарки снизу, коптить платы со свинцовой пастой уже стремновато. Вполне можно, но я под этим не подпишусь, чтобы технологи за такие советы не насували в панамку :). Отложил эту тему до выхода USB PD 3.2, там с AVS-профилями будет попроще необходимую мощность из зарядника выдурить. Кому интересно про MCH-голову, держащую до 300°С - все ходы записаны.
Как только урезал осетра, сократив рабочую температуру до 200°С, всё резко упростилось:
Стало возможно сделать нагреватель из алюминиевой печатной платы.
Можно выбирать любое сопротивление дорожки (нет проблем с извлечением мощности и скоростью нагрева).
Пропала необходимость в датчике температуры. Девайс всё равно меряет напряжение и ток. Температура элементарно считается через TCR меди. Нагрев равномерный, так что риска серьёзно встрять на большие погрешности измерений нет.
Конечно стоит помнить что МОТ подобных плат около 130°С, и рано или поздно такой нагреватель сдохнет :). Но т.к. девайс делался не под 24х7, то вам хватит :). И если что - пластину менять легко, а в заказе 5 штук. Просто не надо выставлять 200°С и оставлять на неделю.
Максимальная температура ~ 180°С (выше - потечет припой 217°С, которым провода к нагревателю подпаяны).
Почти всё заказывается в полтора клика на jlcpcb / jlc3dp / lcsc. Всякая ерунда вроде крепежа и кулера от распбери - на алике.
Из механических работ - только зенкануть отверстия в нагревателе под конические винты.
Тут прописаны все подробности сборки.
В LTS-профиле пришлось растянуть верхнюю полку до 60 секунд. Но там запас гиганский, не страшно. Без проблем паяет плату самой себя. А это 4-слойка со сплошной медью внутри, которая еще вдобавок лежит на паялке поперек и свисает с краев :). Химичить с накрыванием платы сверху фольгой нужды нет.
В общем, последний раз я феном пользовался когда первую паялку собирал. Потом стало как-то не особо надо.
Честно предупреждаю, на алиэкспрессе висмутовые пасты - полное дно. Шансы нарваться на брак процентов 70-80. Это не шутка. Когда по незнанию собрал на этом клозете плату, просто офигел от количества оставшихся мусорных шаров и пыли. Так что надо либо тестировать, либо покупать у локального проверенного продавца, либо заказывать по интернету что-то брендовое вроде ChipQuik.
Я проверял аликовские пасты из любопытства, раз уж нарвался. На бытовом уровне, как сумел. Интересно стало. Наносил на гребенку для проверки флюсов, грел феном, и смотрел как собираются в шар (чтобы кляксу затянуло полностью, не оставляя мусора). С аликовскими висмутовыми творилась какая-то дичь. Со свинцовыми и RoHS-овскими подобного не было. Паст смотрел не полторы штуки, а с десяток разных. Кроме того, на говнопастах детальки с площадок убегают, чего никогда не наблюдал на свинцовых.
Еще на алике есть пасты на 151°С вместо 138°С (меньше висмута) с серебром. Я бы не брал. Не эвтектика, профита по температуре не будет. То что пробовал - по качеству шлак.
Далее, что важно знать - чистые висмутовые пасты заметно более хрупкие, чем свинцовые. Так что в разъемы на отрыв, в автомобильную электронику с сильными вибрациями и т.п. их применять не стоит. Это в достаточной степени фиксится добавкой 0.4-1% серебра. Так что имейте в виду. Лучше взять пасту с присадкой. Но для домашних поделок, которым не надо работать десять лет в трудных условиях - обычная тоже сойдет.
Ну и последнее - рабочая температура этих паст до 80-90°С. Силовые ключи, которые будут вскипать, стоит паять чем-то другим (вряд ли дома вам такое понадобится).
Хранить пасту лучше в шприцах. Не сохнет годами. И, это конечно неправильно, но без холодильника тоже прокатывает :). Хотя православнее в холодильнике и носом вверх. Если паста расслоится - стыкуете два шприца через luer-to-luer переходник, перегоняете несколько раз, и она снова равномерно и качественно перемешана. В распечатаной банке паста скопытится за несколько месяцев, если не долбаться с герметичными пакетиками, холодцом и т.п. Обычно проще всего либо сразу взять в шприце, либо взять банку и дома по шприцам распихать.
Это не профессиональные рекомендации, просто немного практических соображений.
Вообще, вся эта история затянулась т.к. пришлось целиком писать USB-PD стек, потому что не нашлось тех, которые бы устроили (ну или из-за NIH-синдрома). Эта тема наверное заслуживает отдельного поста.
Интерфейс паялки можно посмотреть на гитхабе. Просто выберите там демо-режим, и можно будет потыкать без железа. Т.к. BLE пока толком поддерживает только хром, то владельцы айфонов слегка в пролете, но думаю что так им и надо это приемлимое ограничение. Обычно паяют все-таки за столом, а там десктоп с монитором есть.
Есть несколько моментов, до которых пока не доходят руки (ну или знаний не хватает, чо у ж там скрывать)
Дизайн. Вебню надо поприличнее раскрасить. Корпус тоже наверняка можно полирнуть (хоть он уже и не такой всратый, как из предыдущих публикаций).
Над Reflow-профилями стоит еще покумекать. Тут необходим просто большой опыт ручной пайки как у ремонтников, или опыт настройки промышленных reflow-линий. Все, что можно выжать на уровне диванного эксперта, читающего интернеты, уже выжато :)
Документация. Наверняка можно улучшить, если посмотреть свежим взглядом.
Я уже писал что делаю reflow-паялку для хоббистов, и наконец-то дошли руки напечатать корпус. Но внешний вид не радует. Как-то оно похоже на поделку кочегара, который собрался греть плату углями (особенно в закрытом состоянии):
Знаете, я всегда утверждал, что хоббийный проект - это не повод халявить и делать тяп-ляп. А байки что "слабый процессор не тянет нормальный интерфейс и шрифты" - удел пионеров и дилетантов. Поэтому ввалить кучу усилий в разработку, и на выходе запороть внешний вид - это несусветная дурость. В общем, нужна помощь.
Хотелось бы найти промдизайнера, или хотя бы совет, где они вьют гнезда, попросить облагородить то что есть. Чтобы девайс, помимо функциональности, еще и радовал глаз, а не вызывал желание срочно вымыть руки с мылом или долго оттирать пемзой. Я с пониманием отношусь, что у всех разные ситуации, поэтому не жду помощи бесплатно, и заранее откладывал денежку со школьных завтраков.
В идеале - если чертеж будет сделан в чем-то опенсорсном (OpenSCAD, FreeCAD и т.п.). Но я готов подстроиться под любые варианты. Главное чтобы человек умел увязывать полет фантазии с реальной жизнью. Грубо говоря, коробка должна раскрываться так, чтобы вентилятор обдувал нагревалку. Ну и нагревалка с дисплеем должны быть на одной поверхности (печатной плате). Как это впишут в конечный результат - мне не принципиально.
Буду очень признателен за советы или непосредственную помощь. Ну и конечно готов поделиться славой, упомянуть и т.п. Девайс опенсорсный, и я действительно хочу чтобы получилось как лучше для всех.
Предполагается, что корпус будет заказываться вместе с платой, на https://jlcpcb.com/3d-printing. Из LEDO 6060. То есть, девайс, реально "народный", и не потребует доступа к станочному парку и даже 3D-принтеру.
Иногда нужно померить обороты коллекторного мотора, но нет возможности установить датчик оборотом. Я уже писал про регулятор, который определяет обороты через через противоЭДС. Там есть свои тонкости, поэтому сейчас прорабатываем другой способ - по пульсациям тока, которые вызывает переключение обмоток. Отложим технические нюансы, и посмотрим красивые картинки с котиками :)
Ток на высоких оборотах (16 килогерц, 512 отсчетов):
Ток на низких оборотах:
Просто запитали мотор через ЛАТР с диодным мостом, и записали дампы электронным осциллографом. Как видно, пульсации тока есть, и они похоже на то что нужно. Но конечно всё криво-косо и забито помехами. Поэтому не будем ломать глаза, а просто применим преобразование фурье, чтобы посмотреть спектр.
Спектр на высоких оборотах:
Спектр на низких оборотах:
Нулевой отсчет забили тапком, чтобы не портил масштаб. Первый пик вызван сетевыми гармониками (100/120 герц, *2, *3, *4). А вот второй максимум - именно то что нам надо, и виден довольно хорошо.
Как оно на практике? Да фик знает, железки еще нет :). Но мы снимали 10-секундные дампы для разных режимов, а потом прогоняли через скрипты, которые вычисляли скорость. Результаты не прыгают, показывают именно то что нужно.
Все выложено в репозитории на гитхабе https://github.com/speedcontrols/dc_sc_grinder (смотрите содержимое веток).
В чем недостатки метода
1. Чуть другая схема (ШИМ вместо регулировки фазы). Вместо дешевого симистора - MOSFET с обвязкой. Это немного дороже, но не критично (пол доллара).
2. Мотор питается выпрямленным напряжением. Теоретически, может понадобится коррекция обмотки подмагничивания. Но в реальной жизни все и так работает (проверено на бормашинках).
3. При питании от переменного напряжения нельзя мерить частоты ниже 500 герц. Для 8-полюсного мотора это 4000 RPM. Ну бормашинки ниже 5000 RPM не крутят, так что все хорошо.
Достоинства
1. Надежное определение оборотов во всех режимах.
2. Не нужно мерить напряжение (меньше деталей), а при измерении тока не важны смещения и шумы. То есть, можно не заморачиваться с калибровкой АЦП, и применять компоненты попроще.
3. Можно легко переделать схему на низковольтную, заменив силовую часть (и тогда уйдет ограничение по минимальным оборотам).
Железо
- https://oshwlab.com/speed/dc-speed-control
Схема очень похожа на ту, что упоминалась в начале, с переделанной силовой частью. Как ни странно, вышло даже проще (меньше деталей). Компоненты тоже слегка поменялись, с учетом доступности. Поэтому цена снова стала низкой (около 10 долларов на 1 плату)
Честно предупреждаю, что железо и прошивка еще не отлаживались. Но так как многое основано на предыдущем проекте, есть повод для оптимизма. Когда закончим - напишу ещё.
https://github.com/speedcontrols/ac_sc_grinder
Те кто пользуются бормашинками, знают что на низких оборотах они совсем "не тянут". Но это решаемо. Меняем встроенный регулятор на "валшЭбный", и все чудесным образом чинится.
Особенность регулятора в том, что он бездатчиковый. То есть, скорость вычисляется через противоЭДС. Не очень точно, но на практике хватает. Из плюсов - не надо ни каких доработок механики (установки таходатчика). Просто меняем электронику и всё. Не буду вас грузить математикой, кому интересно - в документации выписаны все формулы и алгоритмы.
Это не первая версия регулятора, но в новой есть немало значимых изменений:
- Платы переделаны под новые модели популярных бормашинок (старые хильды уже не купить).
- SMD монтаж с одной стороны платы. Проще собирать и меньше трафарет для пасты.
- ADRC регулятор вместо PID. Это сложная магия, которая работает намного лучше.
- Прошивка по USB. Отдельный программатор покупать не надо.
Электроника специально сделана так, чтобы ее мог собрать любой. Платы и детальки заказываются в пару кликов через EasyEDA. Кроме, возможно, микроконтроллеров, с которыми нынче трындец мировых масштабов - их может понадобится покупать отдельно. Если делать одну штуку - детальки встанут в 20-30 долларов. Если делать несколько, себе и друзьям - общая сумма примерно та же :)
Всем добра и бормашинок!
https://github.com/lvgl/lv_font_conv
Если кто застал, на первых пиратских CD с играми писали “озвучено профессиональными программистами”. Выглядело совершенно психоделично. Потом правда поменяли на “озвучено профессиональными актерами”. Но мне почему-то кажется, что программисты, которых заменили актерами, с тех пор переключились на дизайн в embedded и занимаются этим до сих пор. Иначе трудно объяснить, почему когда смотришь на многие “железки”, глаза готовы лопнуть от напряжения.
Про дизайн можно говорить долго, но остановимся на самом очевидном - шрифтах. Ну допустим, рендеринг TTF-шрифтов на лету действительно тяжеловат для чахлого микроконтроллера. И ограничения по памяти довольно серьезные. Но это же не повод забивать болт на кернинг, антиалиасинг, субпиксельное сглаживание, и втыкать везде “шрифт которые принес кореш на флешке” с непонятной лицензией. Так что пришлось мне в рамках программы по улучшения мира заняться еще и шрифтами для эмбедов.
Общий принцип понятен:
- нужны битмапные шрифты
- с поддержкой grayscale (на канал прозрачности, для антиалиасинга)
- c легковесной компрессией (актуально для больших букв)
- с опциональным 3х разрешением по горизонтали (для субпиксельного сглаживания)
Как выяснилось, стандарты битмапных шрифтов тормознулись на BDF. Пришлось слегка поизобретать лисапед. Поскольку в свое время делал fontello, то шрифтовые потроха представляю неплохо. В принципе, TTF умеет хранить внутри битмапы, но там довольно много legacy шлака, и компрессия либо убогая, либо слишком сложная. Поэтому утянул из TTF сколько сумел, дополнив недостающим по минимуму. Вышло IMO неплохо:
На дисплее шрифт Roboto, размер 12px и 14px.
Естественно, поддерживаются далеко не все фичи, которые навертели в OpenType. Тот же кернинг - на уровне таблицы “kern”, без мозголомных вариантов “GPOS”. Но думаю что под незамысловатые потребности эмбедов лет на десять хватит. Ну а потом… может все микроконтроллеры уже пойдут с гигабайтом памяти на борту, и все эти ухищрения станут не актуальны.
Почему это здорово
- Ну во-первых, это красиво :)
- Можно взять любой векторный шрифт, и выдрать из него подмножество для нужных языков
- Можно объединять разные шрифты (например, добавляя к буквам иконки)
- Можно упорядочить свои проекты, используя современные шрифты, с понятными источниками и лицензиями.
Для OLED можно найти pixel-perfect TTF шрифты под разные зазмеры. Ну а если экран цветной - за счет субпиксельного сглаживания можно использовать вообще все что угодно, с прекрасным результатом.
Конкретно сейчас, разработанная спецификация и конвертор используется в GUI LittlevGL. Но формат шрифтов универсальный, и не привязан к какой-либо библиотеке или языку. Сам конвертор тоже универсальный, написан на node.js.
Всем добра!
Я не занимаюсь разработкой электроники профессионально, просто нравится делать всякие интересные вещи. Еще со времен, когда транзисторы были M42Б, а платы из гетинакса. С тех пор мир сильно изменился. Платы стало проще заказывать в Китае, а для сборки я давно уже использую пасту и фен вместо паяльника. Нынче любой, при желании, может собирать дома на коленке довольно сложную электронику.
И хотя паяльником и феном пользоваться не особо трудно, хочется упростить процесс, используя пайку по термопрофилю (Reflow). Но я паяю относительно редко, и держать дома большую ИК-станцию или переделанную микроволновку не хочется. Нужно что-то совсем карманное, вроде паяльника TS80P. Так возникла идея сделать миниатюрный паяльный столик. Порыскав по интернетам, я обнаружил что люди уже навострились использовать миниатюрные керамические нагреватели. Но хотелось чего-то более "юзабельного". В общем, получилось так:
Давайте на всякий случай уточню - эта штука жарит платы снизу насквозь. Да, это не совсем корректно. Но смысл в том, чтобы сделать очень компактный инструмент, когда в полноразмерных нет нужды. А сам способ подобной пайки - многократно проверенный и рабочий.
Сразу предупреждаю, что готово пока только железо.
Было проделано довольно много экспериментов чтобы понять, какое должно быть устройство, чтобы его хватило для большинства любительских задач, было удобно пользоваться и можно было собрать в домашних условиях.
Размер самого столика 60*70мм. Неравномерность - всего 5 градусов. Т.к. на 300 градусах эта штука жрет около 45-50 ватт, то получилось вписаться в параметры USB-PD зарядок.
Температура контролируется через ТКС вольфрама в керамическом нагревателе. Отсутствие внешнего датчика сильно упрощает конструктив.
Очень долго придумывал, как приладить нагреватель на плату, чтобы она не перегревалась. Получилось :). При зазоре меньше 15мм плата еле теплая. Она же используется в качестве верхней крышки и кондуктора для сверления. Кому нужны подробности - смотрите инструкцию по сборке нагревателя. Там много занимательных деталей.
На thingiverse можно посмотреть рендеры корпуса. Поддон, рамка дисплея и верхняя складная крышка с вентилятором (для охлаждения с нужной скоростью) - это все печатается.
Теперь дело за софтом. С интерфейсом все относительно предсказуемо. С USB-PD стеком пока не до конца понятно. Если вдруг кто захочет присоединиться - пишите.
Иногда возникает необходимость порулить с микроконтроллера чем-то на 220 вольт, задумчиво покручивая фазу. Стандартный способ - сделать это через симистор с оптроном. Если управляете лампочкой - вам повезло. Если чем-то вроде коллекторного мотора от стиралки (индуктивной нагрузкой) - вперед, навстречу приключениям.
Постараюсь обобщить собственный опыт подобных конструкций, полученный при проектирование регуляторов скорости бормашинок со стабилизацией оборотов. То есть, область применения - индуктивная нагрузка, без гальваноразвязки. Сразу предупреждаю, я не большой мастер объяснять совсем с нуля, поэтому если что-то непонятно - спрашивайте.
Что же не так с оптроном?
Вариант неплохой, пока с лампочкой. С мотором понадобится снаббер (либо не самый дешевый и доступный оптрон). Дело в том, что симисторы реагируют на резкий перепад напряжения в момент выключения (они выключаются при нулевом токе, а на индуктивной нагрузке фаза тока смещена). В итоге триак может самопроизвольно включаться обратно, добавляя море радости. Снаббер сглаживает броски, и загоняет симистор в предсказуемый режим работы.
- Снаббер непосредственно на сам мотор - довольно тоскливый вариант. И по размерам и по расчетам. Допустим, мы хитровывернутые, и знаем про Subberless Triac (c dV/dt 200-1000). Берем, ставим. Победа? А вот хрен! Внезапно обнаруживается, что силовой триак работает, но оптический продолжает дурить по тем же самым причинам. И если бесснабберные силовые симисторы валяются занедорого на каждом углу, то оптроны - нет.
- Ну ок, делаем snubber network непосредственно на оптрон. Подробности в Panasonic Application Note 030, Driving Triacs with Phototriacs. Все понятно, номиналы не очень большие, можно развести SMD на плате. Но все равно, SMD-резисторов понадобится несколько последовательно, и совсем компактно развести не получится.
Альтернативы
Возникает логичный вопрос - а как бы избежать этих приключений и минимизировать высоковольтные компоненты. Давайте рулить симистором напрямую? Ну ок. Только вот симистору нужны отрицательные импульсы, и тут вариантов два:
- Делать питание микроконтроллера с "общим плюсом", огребая альтернативные приключения с негативными LDO и заведением сигналов на АЦП.
- Управлять триаком импульсами через конденсатор.
Последний подход почему-то не очень распространен, но весьма интересен. Для подробностей рекомендую почитать ST AN440. Triac control with a microcontroller powered from a positive supply. Нам нужен самый простой вариант:
Я такое проверял, работает отлично. И возможно кому-то понравится даже для управления лампочкой, за счет простоты. Компоненты низковольтные, можно располагать очень компактно.
Но и у этой схемы есть ограничения - ток микроконтроллера не резиновый, да и блока питания тоже. Поэтому нам подойдут только те бесснабберные триаки, которым для управления хватает 10ма (это на ток нагрузки ~ 4А). Если вам такого достаточно - ну и отлично. Лично мне хватило. Но что делать если нужны более толстые триаки, с током управления 35-60ма? Честно скажу, сам не пробовал, но придумал вот такой вариант:
Тут добавлено всего 2 детали и разнесены цепи разряда и заряда конденсатора. Разряжаем транзистором, ток можно сделать почти любым. А для заряда используем отдельный вывод микроконтроллера. Пауза между импульсами очень большая, поэтому заряжать можно неспешно, без больших бросков тока. По сравнению с предыдущей схемой аж 5 деталей, но напоминаю - это низковольтные компоненты, которые разводятся заметно компактнее варианта с оптроном.
Тут правда тоже есть ограничение - с ростом тока надо увеличивать емкость конденсатора. Но до 60ма значения будут вменяемые, а больше вам вряд ли когда понадобится.
Что еще нужно знать
- Чтобы триак оставался включенным после управляющего импульса, это надо делать не при нулевом напряжении, а немного позже
- По тем же причинам, т.к на индуктивной нагрузке ток запаздывает, при нулевом напряжении пытаться включать триак нельзя - он все еще "на старой полу-волне".
Можно конечно начать контролировать фазу тока, но по личному опыту - просто сделайте задержку на 10% от zero cross и не заморачивайтесь. Мотор вносит задержку процентов пять, ну может семь для экзотических случаев. А если посчитать не использованную энергию - там будут единицы процентов. Так что тут оптимизировать нет смысла.
Надеюсь, это кому-нибудь пригодится или будет хотя бы интересным :).