Обсуждаем цифровые устройства...
Ответить

Re: Паяльник CXG E60WT (схема, доработка)

Сб ноя 27, 2021 13:50:26

pav13,
Возможно у китайцев этот пин сначала измеряет амплитуду напряжения в розетке, а потом проводится в цифровой вход и ловит переходы через 0. Можно ли так не помню, нужно даташит смотреть.

Я не знаком с STM8 , но во многих МК можно переназначать на лету , с аналоговлго на цифровой вход . Думаю этот МК не исключение. Но лучше так не делать, а использовать возможности самого АЦП. При конфигурации регистров АЦП должен быть режим работы как компаратор. И нужно учитывать, что по второму входу АЦП у нас непрерывная оцифровка происходит. Компаратор точно даст нулевые значения. Скорости хватит с головой, нам надо отслеживать низкую частоту.
Я смотрю, чем дальше в лес - тем больше дров.
Как там у китайцев , мы не узнаем , пока не проведём инструментальную проверку.

Возможно стоит вообще убрать измерение напряжения в розетке. Все равно у всех пользователей, как я понял 220в в сети.

Разве что только для себя. А если у кого-то 110 Вольт в розетке ? Наши по всему миру живут и русские форумы читают.

МК измеряет напряжение в тот момент когда амплитуда меньше 134в и включает повышенный ШИМ на 110в нагреватель.

А откуда это видно ? Почему именно 134 В ?
Можно программно выполнять проверку несколько раз подряд сразу после включения, фиксируя максимальное значеие. Делать не в основновном цикле . Т.е. несколько раз проверили "что там в розетке " , и всё, больше не проверяем до выключения.

Re: Паяльник CXG E60WT (схема, доработка)

Сб ноя 27, 2021 19:09:32

...Можно программно выполнять проверку несколько раз подряд сразу после включения, фиксируя максимальное значеие. Делать не в основновном цикле . Т.е. несколько раз проверили "что там в розетке " , и всё, больше не проверяем до выключения.

Сделал как описал.
Код:
// Input power sensor
    uint16_t oldADCUIn = 0;
   uint16_t adcUIn = 0;
   for (int8_t i = 0; i < 50; i++)
   {   
      adcUIn = ADC_read(ADC1_CSR_CH1);
      oldADCUIn = (adcUIn > oldADCUIn) ? adcUIn : oldADCUIn;
      delay_ms(1);
   }

//Измеряет напряжение 50 раз через 1 мсек и сохраняет максимальное значение


При 225в в розетке паяльник измеряет = (437 бит * (опора 5 В / 1024) * 140 коэф. делителя) = 299 вольт.
При 110в номинального на паяльнике будет = 110 * корень из 2 = 156 вольт.
Т.е. порог разделения надо делать где-то 200 вольт? В розетке при этом 200 / корень из 2 = 141 вольт. Правильно?

Добавлено after 20 minutes 9 seconds:
Если бы ШИМ был 100 Гц, а не 125 Гц как мне кажется идеально было бы не ловить переход через 0, а засинхронизироваться с сетевым напряжением одним таким переходом.

Не факт что 100 Гц получиться https://radiokot.ru/forum/viewtopic.php ... 5#p3761665

Скважность ШИМ, так для справки в виде графика понятнее
Изображение

надо изучать pwm.c
Там есть формула и !предупреждающий комментарий.

UPD:
хотя всё оказалось куда проще, Excel творит чудеса
TIM2_PSCR = 8;
_TIM2_ARR = 624;

16000000 / (2^8 * (1 + 624)) = 100 Hz

Хотя наверно всё не так просто. это расчет частоты шим, но там ещё есть вторая формула для расчёта скважности :(

UPD2:
вроде как разобрался и со второй формулой преобразования скважности от 0 до 100% в значение регистра TIM2_CCR1
Tim2_ccr1= (скважность * 624 + 1) / 100;

Но всё это на "бумаге", а как в железе увидеть не смогу. могу только сказать работает или нет.

Re: Паяльник CXG E60WT (схема, доработка)

Вс ноя 28, 2021 13:44:05

Делал себе подогрев руля. Дак этот шим то в радио свистел, то в саб, когда еще убавил частоту, стал нагружая генератор частоту ХХ колебать.
В итоге выкинул ШИМ и стал просто включать, выключать по датчику температуры. И все работает, за счет большой тепловой инерции. Ни какого ПИДа. появился гистерезис, после увеличения температуры заскакивает выше, потом остывает, с периодом где то 6 сек.
А нам точно ШИМ нужна??? может просто включать, выключать??

Re: Паяльник CXG E60WT (схема, доработка)

Вс ноя 28, 2021 14:25:49

pav13,
Т.е. порог разделения надо делать где-то 200 вольт? В розетке при этом 200 / корень из 2 = 141 вольт. Правильно?

Я бы 180V амплитудного взял . Что соответствует 127V среднеквадратичного.

Добавлено after 12 minutes 26 seconds:
pav13,
/ 50 degrees before the heatPoint we start to slow down the heater
// before that we keep the heater at xx%
// if the diff is negative, we'll stop the heater
int16_t diff = targetHeatPoint - currentDegrees;
int16_t pwmVal = (diff < 0) ? PWM_POWER_OFF : (diff > 50) ? pwmValMax : 75 - diff;
pwmVal = (pwmVal < pwmValMax) ? pwmValMax : pwmVal;

// замедление нагрева если осталось менее 50 градусов до установленной температуры
тут пока я не совсем понял что происходит???


Попросил автора дать комментарий . И вот что он ответил :

Если разница между актуальной температурой и нужной меньше нуля (проскочили): выключить тэн. Иначе: если разница больше 50 - тэн на полную мощность, если разница меньше 50 градусов - пора уменьшать мощность тэна линейно.
75 - разница, чем меньше разница, тем больше pmwVal
Последняя строка - проверка чтобы pmwVal не стал меньше max значения.
Тут нужно уточнить, что зависимость мощности обратна значению pmwVal, это скважность шима. Смотри по схеме, там когда транзистор заперт - тэн включён, открыт - выключен. Чем больше скважность - меньше мощность, и наоборот.
Как-то так
Число 75 подобрано опытным путём

Re: Паяльник CXG E60WT (схема, доработка)

Вс ноя 28, 2021 14:50:18

А нам точно ШИМ нужна??? может просто включать, выключать??

Для 220 нагревателя может и не нужен. Но для 110 нагревателя обязателен. Тем более если делать включение ШИМ частотой 100 Гц в нулевой точке (или близкой к ней), то все должно быть ок с шумами.

, если разница меньше 50 градусов - пора уменьшать мощность тэна линейно.
...
Число 75 подобрано опытным путём

Понятно.

Ладно, и как 0 будем ловит чтобы в этот момент запускать ШИМ? Можно после его детектирования сделать паузу на один полупериод, а после немного уменьшить эту паузу в процессе отладки для более точного "нуля".

Но опять же, у меня нет ни одного прибора для визуализации сигнала(сигналов). Что в итоге будет получаться - я хз.

Re: Паяльник CXG E60WT (схема, доработка)

Вс ноя 28, 2021 21:44:58

""Ладно, и как 0 будем ловит чтобы в этот момент запускать ШИМ? ""

Я так понимаю вход будет в аналоговом режиме?? Тут в качестве 0 надо определять мин. значение.
Если в цикле нет задержек, то по этому факту и начинать открывать ключ. Не надо пауз на период.

Re: Паяльник CXG E60WT (схема, доработка)

Пн ноя 29, 2021 20:06:48

Наконец то вечером дополз до компа.
Качнул даташит. Посмотрел что там в ADC. Для управления ADC предусмотрено всего четыре регистра. Компараторов не обнаружено.
Ноль отслеживать ,как отслеживали максимальное значение напряжения, только нас интересует минимальное (нулевое или около нулевое ) значение.
Наверно так :
uint16_t nullADCUIn;
{
adcUIn = ADC_read(ADC1_CSR_CH1);
nullADCUIn = (adcUIn >0) ? adcUIn : 0;
}
Запускать ШИМ только когда nullADCUIn будет равен нулю.
В сети много помех и небольшая постоянка имеется. Возможно вместо нуля имеет смысл задать небольшое значение, например 20 ...40.
И всё это имеет смысл , если ШИМ 100 Гц и скважность 50%. А у нас скважность 45%, 85% и может другие значения принимать во время плавного разогрева и торможения нагрева. По фронту импульса будет плавное нарастание амплитуды, что очень хорошо для нагревателя, а вот полуволну синуса будет обрывать в любом месте, в зависимости от скважности ШИМ. Значит помех должно быть меньше, но полностью от них не избавиться.
ШИМ обязателен 100 Гц. С другой частотой ШИМ , напрасное занятие.
Стоит попробовать, на помехи плевать, главное чтобы 110 В ТЭНы не выходили из строя.

Re: Паяльник CXG E60WT (схема, доработка)

Пн ноя 29, 2021 23:37:57

Never not try, то что компаратора нет плохо. Минимальные значения я ещё в прошлый раз смотрел, от 2 до 9 вольт контроллер выдавал. И это с миллисекундной паузой между измерениям, а без неё должен и меньше намерять. Так что пока все видится реальным в исполнении.

ШИМ 100гц в железе ещё не проверял.
Накалякал на телефоне 1- то что будет при 45% скважности и 2- то что надо в идеале сделать для 110в нагревателя
СпойлерИзображение

Re: Паяльник CXG E60WT (схема, доработка)

Вт ноя 30, 2021 20:05:26

Компаратора нет, но дочитался таки, там есть такой режим работы АЦП как Analog watchdog.
Включается в регистре состояния ADC_CSR установкой бита AWDEN. Верхний и нижний порог срабатывания устанавливается в регистрах ADC_HTR и ADC_LTR. Каждый по 10 бит.
При достижении уровня входного сигнала на входе АЦП меньше установленного значения в ADC_LTR, а так же выше установленного в ADC_HTR - выставляется флаг в 1, бита AWD (этого же регистра). Возможно использование прерывания AWDIE по событию AWD.
Объяснил как мог. Это всё есть в сервис мануале на данный МК , загляните, там понятнее.
Это поможет разгрузить основную программу.
Как это " прикрутить " в код проекта пока не знаю.

Картинки с телефона понятны. Этого и хотелось бы получить.

Добавлено after 5 minutes 43 seconds:
На рисунке 2 - вторую полуволну пропускать вообще.

Re: Паяльник CXG E60WT (схема, доработка)

Вт ноя 30, 2021 21:57:57

меньше установленного значения в ADC_LTR, а так же выше установленного в ADC_HTR - выставляется флаг в 1, бита AWD (этого же регистра).


Вот тут надо помнить про разброс номиналов резисторов делителя, и разного напряжения сети. Наверно не надо целится в самый низ!!

Re: Паяльник CXG E60WT (схема, доработка)

Вс дек 05, 2021 10:46:03

тестовый релиз для проверки 100Гц шима. у кого есть возможность - проверьте!
привязки к переходу через 0 пока нет.

есть как полноценные версии, так и Debug версия с отключенной проверкой ошибок.
подробнее о изменениях в файле about.txt
!release05.12.2021.zip
(733.01 KiB) Скачиваний: 132

тут вспомнил что на 13 странице u-max расписал про "Модуляция Плотности Импульсов (PDM)."

теперь надо ловить 0 и пропускать полупериоды.

Добавлено after 1 minute 31 second:
Это всё есть в сервис мануале на данный МК

можно ссылку, а то те что находил мануалы какие-то бедные, нашел упоминание об этом только в "Матюшов_Начало_работы_с_контроллерами_STM8_2016.pdf"

Re: Паяльник CXG E60WT (схема, доработка)

Вс дек 05, 2021 13:06:37

Пришел ТЭН. При монтаже обнаружил, что старый не доходил до конца отверстия жала, где то мм 8!!!!
Посмотрите на свои - это большие потери передачи тепла. Соответственно тэн дольше и сильнее коптит!!

Второе, что увидел, когда включил это середина Тэна разогрелась до ярко красного цвета, пока температура росла на индикаторе.
Как термопара нагрелась до рабочей температуры, началось регулирование и тэн остыл!!! (визуально)
И ВСЕ ЭТО ПРИ ПОЛОЖЕНИИ ПРОШИВКИ 110В С ТЭНОМ 220. как это выглядит с Тэном на 110 вольт?????

Я выше писал, как буржуи разгоняют особо ответственные нагреватели.

Нужно при включении сначала разогреть малым током, и только потом спрашиватьь термопару и топить на полную!!!

И и покуда разобрал, посмотрел, что там на РВ1. Кривая доходит до нуля, подозреваю из за кондера С1. В момент перехода полярности кондер "упирается" в противофазе.
Вот кривая все красиво и логично

Добавлено after 8 minutes 58 seconds:
капец! как тут фотки вставлять!! сначало фотошопом уменьшить, потом каким то севисом пользоваться.. и кругом рожи кошачьи

Изображение

Добавлено after 10 minutes 17 seconds:
Если автора хватит на автоопределение сети то вот при 229 вольтах в розетке у меня, на порту 2.04 вольта амплитуда. Думаю больше 1.5 В. это 220 меньше 110 (127)

Re: Паяльник CXG E60WT (схема, доработка)

Вс дек 05, 2021 14:47:12

автоопределение сети то вот при 229 вольтах в розетке у меня, на порту 2.04 вольта амплитуда. Думаю больше 1.5 В. это 220 меньше 110 (127)

это уже сделано. лучше закинь новую прошивку и посмотри сигнал на PD4. есть ли там 100 Гц?

Re: Паяльник CXG E60WT (схема, доработка)

Пн дек 06, 2021 07:36:07

я в меню то забыл как войти!! так на 110 и работает все! Вечером с работы вернусь буду вспоминать как прошивать. Отпишусь.

Re: Паяльник CXG E60WT (схема, доработка)

Пн дек 06, 2021 10:26:05

pav13,
Вот этот файл поищите :

https://www.st.com/resource/en/referenc ... ronics.pdf

Референс мануал. Там на стр.434 и далее описана работа АЦП.

Re: Паяльник CXG E60WT (схема, доработка)

Вт дек 07, 2021 21:03:17

Потерял свисток СТЛИНК32. Взял у друга. Поэтому задержка.
Прошил.
Порт РВ4 при включении ШИМ "больше 50%", потом меньше, потом меньше.
Потом ошибка ЕР4 ШИМ пропадает. питаю от программатора.
Частота ровно 100 Гц.
Готов к опытам, все на столе.

Вспомнил - у нас через Ж. поэтому все инвертировано. Сначала маленькая ШИМ потом больше делается

Re: Паяльник CXG E60WT (схема, доработка)

Вт дек 07, 2021 21:24:13

Порт РВ4 при включении ШИМ "больше 50%", потом меньше, потом меньше.

так и должно быть, тут инвертированный сигнал
Частота ровно 100 Гц.

это хорошо, что с первого раза получилось
Готов к опытам, все на столе.

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

Re: Паяльник CXG E60WT (схема, доработка)

Ср дек 08, 2021 00:15:29

Прошил "1". Все работает. Поставил 220 стал разгонятся быстрее, а вот потом разницы со 110 не увидел! Видать избыточная "90" мощность рулит!!
Это к тому, что нет смысла брать больше!! Там ведь токи побольше, а в итоге ШИМ чутка только подогревает. А вот при разгоне большая мощность меньше проживет.
И еще попробуй включи холодный при снятой трубке жала. При 300 град. сначала греется до яркого свечения!!! Пока на индикаторе не станет 300, потом свечение пропадает с работой регулировки ШИМ.
Это я к тому, что холодный надо какое то время начинать греть не как обычно во время работы.

Добавлено after 11 minutes 39 seconds:
[uquote="pav13",url="
курить "дату" ещё не начинал, можешь пока оставить эту прошивку и пользоваться паяльником.[/uquote]

Если 100 гц не синхронезированны с переходом, то смысла в них нет ни какого. Наоборот при более высокой частоте попадания включения на верхушке, будут чередоваться с паузами. А при 100 гц если попадешь на максимум то так и будет какое то время максим. ток выдаваться в нагреватель.

Тогда уж лучше вернуть высокую частоту. А трудно приделать такое:

при первом включении первые 6 сек ШИМ 10% - потом как обычно
при включении из сна 100 град - первые 3 сек ШИМ 10% потом как всегда

И посмотреть как Тэн светится -и подправить секунды и %

Добавлено after 1 hour 48 minutes 19 seconds:
Из сна не выходит по кнопкам + -

Re: Паяльник CXG E60WT (схема, доработка)

Ср дек 08, 2021 08:50:44

Walera_kur, это понятно. Я же не сказал что забил на это, я сказал что ещё не начал изучать документацию. Когда время будет продолжу. Не надо одно и тоже писать в каждом сообщении, я знаю какой алгоритм делать, надо теперь его реализовать.

Выход из сна про кнопкам пока убрал, нет 100% уверенности что он работает правильно. Потом верну.

Re: Паяльник CXG E60WT (схема, доработка)

Чт дек 16, 2021 11:03:23

Здравствуйте.Я так и не понял?Есть результат ваших дебатов.Купил ещё один паяльник.Первый прожил недолго с нагревателем 100 вольт(поменял на 220 пока нормально)Поэтому вопрос поменялось что в прошивке или нет?Есть смысл шить новый с нагревателем 110 в или ждать новую прошивку?Купил новый паяльник с функцией сна,поменял датчик на ртутный пока.Управление очень неудобное!Спасибо за ответ.
Ответить