Например TDA7294

Форум РадиоКот • Просмотр темы - Паяльный фен (термофен) на STM32 (STM32F030) с исходниками
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Пт мар 29, 2024 02:07:09

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Паяльный фен (термофен) на STM32 (STM32F030) с исходниками
СообщениеДобавлено: Ср июн 22, 2016 20:18:16 
Первый раз сказал Мяу!

Карма: 3
Рейтинг сообщений: 5
Зарегистрирован: Сб окт 03, 2015 01:58:15
Сообщений: 27
Рейтинг сообщения: 5
Создал/собрал платку для фена на базе копеечного MK STM32F030F4P6, может кому пригодится. Сильно не пинаться, эта мой 2-ая плата ЛУТ (1-ая это 4-х разрядный MAX7221 для этого же фена). Идеи брались (воровались) из этих тем http://radiokot.ru/forum/viewtopic.php?f=2&t=61075, http://radiokot.ru/forum/viewtopic.php?f=2&t=101844&start=1400.
Питание китайский БП 24V 3A (он тут с избытком фену нужно максимум 0,15А, но другого не было) и китайский понижающий преобразователь на 3.3V.
4-х разрядного индикатора на MAX7221 разведен был Sprint Layout и схема благополучно потеряна (но там нет ничего сложного), потом перешел на DipTrace и разводил в нем. Хотя MAX7221 и заявлен что работает начиная с 5V, он спокойно работает и на 3.3V.
Управление через энкодер, есть схема мелкой платки в ней разведены фильтрующие конденсаторы 10nf и резисторы (резисторы нафиг не нужны оказались).
У STM'ки остались не использованными 3 выхода, их можно приспособить для других нужд.

Нашел несколько косяков в схеме, потом исправил по ходу:
1) Забыл фильтр RC на входе ADC (хз нужен, не нужен, но потом допаял) (в схеме не исправлено)
2) Перепутал выходы семистра и опто-семистра (т.е. GATE на T1 и T2) (в схеме исправлено)
3) Не соединил GND и ANALOG_GND (в схеме исправлено)
4) Забыл конденсатор 0.1uF на герконе (в схеме не исправлено)
5) Не правильно выбран резистор для GAIN операционника, был 100K, нужен 68K (в схеме исправлено)

Что бы, возможно, сейчас исправил/добавил:
1) Питание фена и МК через отдельное реле или семистор, чтобы при выключении, вентилятор продувался, сейчас нужно ждать пока продуется фен на подставки и выключится вентилятор.
2) Фен через полноценную step-down схему (катушка индуктивности, обратная связь и все дела), а то сейчас фен "поет" из-за частоты шимирования в 1Khz.
3) Поменял бы операционник на rail-to-rail, LM358 съедает 1,5В сверху.
4) Использовал бы I2C индикатор или дисплей, это освободила бы 1 выход (CS) и таймер для аппаратной обработки энкодера.
5) Вывел бы на плашку не используемые порты, авось пригодятся.
Сейчас ничего этого делать не буду, мой фен меня полностью устраивает, все никак не нарадуюсь.

Программная часть:
Писалось все на Keil uVision с использованием CubeMX, в исходниках менялся только main.c и 3 строки в stm32f0xx_it.c, все остальное генерировал Cube. Сначала я крайне скептически относился к Cube и HAL, но эта фигнюшка в разы облегчает написание кода, не без изъянов, конечно, он иногда сбрасывает настройки DMA с half-word в байт и генерит очень избыточный код (куча проверок). Но для прототипирование и не требовательных мест самое то.
В программе 3 таймера, 1-ый для PWM вентилятора с частотой 1Khz, 2-ой для PWM нагревателя с частотой 10Hz (т. к. используется оптосемистор с zero-crossing, не нужно гемороится с синхронизации начала полу волны, максимум потеряете 10% мощности), 3-ий таймер для программной обработки и усреднения температур ADC и управление мощностью и вентиялтором через ПИД, усредняет с частотой 100Hz, управляет 10Hz. При вызове 3 таймера нужно всегда сбрасывать у ADC флаг переполнения т. к. любая запись на флеш МК останавливает работу кода на этой флеш.
ADC работает через DMA в зацикленном режиме, т. е. все время. Значения напряжения ADC конвертируется в температуру через таблицу для темопар типа C.
Регистрация геркона и энкодера через прерывания, но фильтрация и обработка в основном цикле, можно было и проверять их в основном цикле, но энкодер очень быстрый (<2ms, HAL_GetTick() может не хватить).
Экран обновляется 33раза в секунду. Настройки сохраняются по истечению 1 мин после последних изменений или при срабатывании геркона или lock’а станции (длительной нажатие кнопки энкодера).
Есть 3 защиты:
1) в файле stm32f0xx_it.c вырубаем все таймеры PWM для нагревателя при HardFault_Handler через регистры, мало ли где мы накосячили.
2) вырубаем нагреватель если в течении 2сек. при 90% мощности температура не меняется — обрыв нагревателя или датчика.
3) Как уже говорилось LM358 съедает сверху 1,5В, при 12 битном ADC максимальное значение (3,3-1,5) / 3,3 * 4095 = 2233, т. е. больше мы никак не получим. Поэтому поставлено жесткое ограничение, если ADC получил больше 2000 — перегрев.

Я не думаю что кого-то сильно заинтересует моя схема, но вот исходники прошивки очень ускорят процесс тем кто делает с нуля свои станции или кто хочет изменить что-то. Т.к. на форуме ограничение вложений в 1Мб, из исходников выкинуты все сгенерированные CubeMX файлы, он их пересоздаст при записи проекта снова.

Изображение

Изображение

Изображение

Изображение

Изображение


Вложения:
fen.zip [100.77 KiB]
Скачиваний: 894
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Паяльный фен (термофен) на STM32 (STM32F030) с исходника
СообщениеДобавлено: Сб апр 21, 2018 20:24:49 
Друг Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 1121
Зарегистрирован: Пт ноя 27, 2009 18:12:27
Сообщений: 4625
Откуда: Черкассы, UA
Рейтинг сообщения: 0
Значения напряжения ADC конвертируется в температуру через таблицу для темопар типа C.

А почему С? В фенах используются термопары К-типа. Это в жалах Т12 термопары С-типа. И то в оригинальных. В китайских подделках вообще непоймичто установлено

_________________
Изображение

В мире нет вредных веществ, в мире есть вредные количества © Д.И.Менделеев
Когда на форуме переходят на "Вы", в реальной жизни уже давно бьют морду © автор неизвестен.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y