Цифровая паяльная станция своими руками.(V 2.0)

Вопросы и замечания по статьям и схемам, представленным на нашем сайте

При поддержке РадиоКОТструктор.ру


Аватара пользователя
alcxa
Это не хвост, это антенна
Сообщения: 1347
Зарегистрирован: Ср мар 26, 2014 21:50:55
Откуда: RF-73 ULN
Контактная информация:

Re: Цифровая паяльная станция своими руками.(V 2.0)

Сообщение alcxa »

[uquote="Victor_P.",url="/forum/viewtopic.php?p=4058663#p4058663"]alcxa, все ж есть в мануалке: "Если таймер включен, то на индикаторе в младшем разряде светится точка."
Сейчас проверил работу датчика вибрации (положения), все нормально, точка мигает при смене положения паяльника.[/uquote]Так она горит, при отключенном датчике вибрации, когда включаю, не горит, загорается если паяльник поставить в положение когда датчик замкнут. на старой прошивке с этим же паяльником и силовой платой, все нормально
Аватара пользователя
Victor_P.
Поставщик валерьянки для Кота
Сообщения: 2168
Зарегистрирован: Сб окт 10, 2009 10:34:07
Откуда: Україна, Хорол

Re: Цифровая паяльная станция своими руками.(V 2.0)

Сообщение Victor_P. »

У меня только одна мысль для этого случая,- на вход датчика идет какой-то периодический сигнал, который постоянно сбрасывает таймер когда датчик разомкнут.
Мои паяльные станции: первая, вторая, фен.
Аватара пользователя
alcxa
Это не хвост, это антенна
Сообщения: 1347
Зарегистрирован: Ср мар 26, 2014 21:50:55
Откуда: RF-73 ULN
Контактная информация:

Re: Цифровая паяльная станция своими руками.(V 2.0)

Сообщение alcxa »

[uquote="Victor_P.",url="/forum/viewtopic.php?p=4058676#p4058676"]У меня только одна мысль для этого случая,- на вход датчика идет какой-то периодический сигнал, который постоянно сбрасывает таймер когда датчик разомкнут.[/uquote]Как программно отслеживается вибро? на прерываниях ? (EXT_INT0 или PC_INT0) ?
в старых платах v.1.13 сигнал VRS на порту PB6(INT6), в новых PB0(INT0)

Осциллографом посмотрел = там чисто
Но почему старое ПО работает тогда ?
Аватара пользователя
Victor_P.
Поставщик валерьянки для Кота
Сообщения: 2168
Зарегистрирован: Сб окт 10, 2009 10:34:07
Откуда: Україна, Хорол

Re: Цифровая паяльная станция своими руками.(V 2.0)

Сообщение Victor_P. »

[uquote="alcxa",url="/forum/viewtopic.php?p=4058729#p4058729"]Как программно отслеживается вибро? на прерываниях ? (EXT_INT0 или PC_INT0) ?[/uquote]Да зачем там прерывание? Сильно жирно для этого. В одном скане с опросом кнопок с периодом 10мс. Состояние изменилось, значит была стработка.
[uquote="alcxa",url="/forum/viewtopic.php?p=4058729#p4058729"]в старых платах v.1.13 сигнал VRS на порту PB6(INT6), в новых PB0(INT0)[/uquote]Мы сейчас о какой прошивке говороим вообще? Я о той, что просил GDN для старых плат, но если туда поставить 168 мегу вместо 8й. Т.е. все порты остались остались старые (для плат 1.13).
Мои паяльные станции: первая, вторая, фен.
Аватара пользователя
alcxa
Это не хвост, это антенна
Сообщения: 1347
Зарегистрирован: Ср мар 26, 2014 21:50:55
Откуда: RF-73 ULN
Контактная информация:

Re: Цифровая паяльная станция своими руками.(V 2.0)

Сообщение alcxa »

именно о той: аппаратная версия 1.13 только мега168
Аватара пользователя
Victor_P.
Поставщик валерьянки для Кота
Сообщения: 2168
Зарегистрирован: Сб окт 10, 2009 10:34:07
Откуда: Україна, Хорол

Re: Цифровая паяльная станция своими руками.(V 2.0)

Сообщение Victor_P. »

alcxa, тогда мыслей нету. Как вариант можно проверить наличие напряжения на PINB6 без датчика, там включена подтяжка, должна быть единица.
А также попробовать сделать цепь датчика как в более поздних версиях:
Изображение
Еще можно выбрать режим реакции на датчик 2 или 3, сам датчик отключить, на порт припаять провод. Когда станция заснет тыкнуть этим проводом на землю, должна проснуться. Оставить этот провод на земле, подождать пока опять заснет и отключить от земли, опять должна проснуться.
Мои паяльные станции: первая, вторая, фен.
Аватара пользователя
alcxa
Это не хвост, это антенна
Сообщения: 1347
Зарегистрирован: Ср мар 26, 2014 21:50:55
Откуда: RF-73 ULN
Контактная информация:

Re: Цифровая паяльная станция своими руками.(V 2.0)

Сообщение alcxa »

Ставил я с кондером и на 10nF и на 100nF, оставил 100nF = осц там чистая единичка, мысля есть мегу заменить
т.е. я спаял плату управления с 168 мегой и поставил вместо платы с 8мегой, на которой вибро нормально работает
amigo60
Первый раз сказал Мяу!
Сообщения: 37
Зарегистрирован: Ср июн 15, 2011 20:02:07

Re: Цифровая паяльная станция своими руками.(V 2.0)

Сообщение amigo60 »

[uquote="alcxa",url="/forum/viewtopic.php?p=4058950#p4058950"]спаял плату управления с 168 мегой и поставил вместо платы с 8мегой, на которой вибро нормально работает[/uquote]
Не взаимозаменяемы,- совпадает только распиновка
http://ww1.microchip.com/downloads/en/A ... oc2553.pdf
Аватара пользователя
GDN
Потрогал лапой паяльник
Сообщения: 354
Зарегистрирован: Пт ноя 20, 2015 18:49:43

Re: Цифровая паяльная станция своими руками.(V 2.0)

Сообщение GDN »

alcxa у тебя датчик подключен отдельным проводом на массу,или общим в ручке.Были у меня подобные загоны когда пытался подключить ручку с четырехпроводным кабелем,поменял на пятипроводной и забыл о этой проблеме навсегда.
Аватара пользователя
alcxa
Это не хвост, это антенна
Сообщения: 1347
Зарегистрирован: Ср мар 26, 2014 21:50:55
Откуда: RF-73 ULN
Контактная информация:

Re: Цифровая паяльная станция своими руками.(V 2.0)

Сообщение alcxa »

Вот потестил подробнее (силовая аппаратная часть 1.13, меняется только платка управления)
подключил ручку без вибродатчика с тремя проводами (дабы не вытаскивать силовую плату из корпуса и не отпаивать провода), эмуляция датчика пинцетом путем замыкания на землю VRS:
на 168меге (новая прошивка): при включении точка не горит, загорается когда замкнешь и горит пока замкнуто
на 8меге (старая прошивка): при включении точка горит, кратковременно гаснет при замыкании и при размыкании


Раз реакция на замыкание VRS есть - значит порт меги рабочий (да и на 2х мегах проверял) = т.е. проблема программная (может инициализация порта не правильная или где-то в коде физически порт прописан, а не по условию)
Аватара пользователя
GDN
Потрогал лапой паяльник
Сообщения: 354
Зарегистрирован: Пт ноя 20, 2015 18:49:43

Re: Цифровая паяльная станция своими руками.(V 2.0)

Сообщение GDN »

alcxa все остальное работает корректно,только с датчиком проблема ?
Аватара пользователя
alcxa
Это не хвост, это антенна
Сообщения: 1347
Зарегистрирован: Ср мар 26, 2014 21:50:55
Откуда: RF-73 ULN
Контактная информация:

Re: Цифровая паяльная станция своими руками.(V 2.0)

Сообщение alcxa »

[uquote="GDN",url="/forum/viewtopic.php?p=4060733#p4060733"]alcxa все остальное работает корректно,только с датчиком проблема ?[/uquote]Я только т12 подключал, паять можно
Аватара пользователя
alcxa
Это не хвост, это антенна
Сообщения: 1347
Зарегистрирован: Ср мар 26, 2014 21:50:55
Откуда: RF-73 ULN
Контактная информация:

Re: Цифровая паяльная станция своими руками.(V 2.0)

Сообщение alcxa »

В общем поглядев код, нашел следующее:

Код: Выделить всё

   in   r18,p03       = читаем с порта
   andi   r18,0x40     = маска по биту вибродатчика
   ldi   r19,0                                                                     <= это лишний код связанный с преобразованием типа данных char = int
   lds   r20,D01CC  = тут хранится переменная которая 0 или 1
   ldi   r21,0                                                                     <= это лишний код связанный с преобразованием типа данных char = int
   lds   r24,D01A1
   cp   r18,r20      = если равно, но тут сравнение с переменной которая 0 или 1
   cpc   r19,r21                                                                   <= это лишний код связанный с преобразованием типа данных char = int
   breq   L0947

********  далее

L0947:
   in   r25,p03       = второй раз читаем порт (а если уже состояние порта изменилось ????? т.е. дребезг)
   bst   r25,b6        сохраняем состояние порта вибродатчика во флаг
   clr   r25
   bld   r25,b0        флаг пишем в младший бит
   sts   D01CC,r25  сохраняем в памяти: тут запоминается либо 0 либо 1 (т.е. видимо boolean)

т.е. получается что сравниваем значение с порта (char) с логической переменной, в новой аппаратной версии порт вибродатчика нулевой и поэтому это сравнение работает, а для старой этот алгоритм уже не прокатывает

[uquote="Victor_P.",url="/forum/viewtopic.php?p=4058780#p4058780"]Да зачем там прерывание? Сильно жирно для этого.[/uquote]вот пишете что жирно, - а хранение логических переменных в целом байте это не жирно?
AVR отлично работают с битами, и если упаковать все битовые переменные и еще выделить под это регистр то код станет намного быстрее и меньше

И если навести порядок с типами переменных (может галка в компиляторе где нить) = то код получится намного меньше и все влезет в 8 мегу
(в CVAVR например убрать галку "Promote chat to int")

----------
Таблетка: Нужно изменить в прошивке по адресу 0x1294 байт 0x90 на 0x96
После этого точка в правом разряде начала отмаргивать состояние вибродатчика
RX24
Потрогал лапой паяльник
Сообщения: 367
Зарегистрирован: Ср мар 02, 2016 16:40:45

Re: Цифровая паяльная станция своими руками.(V 2.0)

Сообщение RX24 »

В последней версии станция питается от 3.7 вольт. Фьюзы даны для 3.7 и 5 вольт. Станцию можно питать 5 вольтами, без каких либо переделок, установив фьюзы для 5 вольт?
Аватара пользователя
Victor_P.
Поставщик валерьянки для Кота
Сообщения: 2168
Зарегистрирован: Сб окт 10, 2009 10:34:07
Откуда: Україна, Хорол

Re: Цифровая паяльная станция своими руками.(V 2.0)

Сообщение Victor_P. »

RX24, есть схемы с питанием 5В и 3.6В. Питать 3.6В схему пятью вольтами можно, но номиналы некоторых резисторов придется поменять. Собственно, если сравнить между собой схемы, все станет понятно.

alcxa, сравнивать значение байта (да чего угодно) с логической переменной в С никто не запрещает, при этом 0 будет false, все остальное true. Думаю, это Вы и без меня знали. Какие неявные преобразования при этом делает компилятор я не в курсе да и не интересно мне это. Я не програмист в том смысле, что не работаю им, не пишу код постоянно и не вникаю в тонкости языка. Что выучил, тем и пользуюсь как могу.

Не совсем понял эту фразу "в новой аппаратной версии порт вибродатчика нулевой и поэтому это сравнение работает, а для старой этот алгоритм уже не прокатывает". А какая разницы для этого алгоритма какой порт, 0 или 6?

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

Сам код опроса вибродатчика выглядит так (только он не в одной куче как здесь):

Код: Выделить всё

#include <stdbool.h>
...
#define V_SENS   (PINB&(1<<PINB6))
uint8_t VSMode;
bool _VSensLS = false;
bool VSAlarm;
...
   if (V_SENS != _VSensLS)   {
      switch (VSMode)   {
         case 1:   {
            if (StMainMode < SMM_STB_DE) VSAlarm = true;
            break;
         };
         case 2:   {
            if (StMainMode < SMM_OFF_DE) VSAlarm = true;
            break;
         };
         case 3:   {
            VSAlarm = true;
            break;
         };
      }
   }
   _VSensLS = V_SENS;   

Предложите как его изменить на более правильный. Я так понимаю _VSensLS можно сделать байтовой, чтоб небыло неявных преобразований, но что это даст?
Последний раз редактировалось Victor_P. Пт июл 16, 2021 11:39:55, всего редактировалось 1 раз.
Мои паяльные станции: первая, вторая, фен.
RX24
Потрогал лапой паяльник
Сообщения: 367
Зарегистрирован: Ср мар 02, 2016 16:40:45

Re: Цифровая паяльная станция своими руками.(V 2.0)

Сообщение RX24 »

Victor_P., А где можно увидеть версию станции 1.30 с пятью вольтами? Скачал архив со всеми версиями там только версия 1.30 где питание 3.7 вольт, может я что то просмотрел, или недопонял?
Аватара пользователя
Victor_P.
Поставщик валерьянки для Кота
Сообщения: 2168
Зарегистрирован: Сб окт 10, 2009 10:34:07
Откуда: Україна, Хорол

Re: Цифровая паяльная станция своими руками.(V 2.0)

Сообщение Victor_P. »

[uquote="RX24",url="/forum/viewtopic.php?p=4061619#p4061619"]Victor_P., А где можно увидеть версию станции 1.30 с пятью вольтами?[/uquote]1.30 нигде, она только с 3.6В. Но есть же 1.20 и 1.13, вот в них и можно посмотреть.
Мои паяльные станции: первая, вторая, фен.
RX24
Потрогал лапой паяльник
Сообщения: 367
Зарегистрирован: Ср мар 02, 2016 16:40:45

Re: Цифровая паяльная станция своими руками.(V 2.0)

Сообщение RX24 »

Victor_P., Можно еще вопрос, можно ли в версии, например 1.13 применить драйвер по схеме версии 1.30? В версии 1.30 2 транзистора, в версиях 1.13 и выше 4 транзистора.
Аватара пользователя
alcxa
Это не хвост, это антенна
Сообщения: 1347
Зарегистрирован: Ср мар 26, 2014 21:50:55
Откуда: RF-73 ULN
Контактная информация:

Re: Цифровая паяльная станция своими руками.(V 2.0)

Сообщение alcxa »

[uquote="Victor_P.",url="/forum/viewtopic.php?p=4061612#p4061612"]Предложите как его изменить на более правильный.[/uquote]ввести логическую переменную и в нее считать данные с порта и потом уже с ней работать (заодно уберется двойное считывание порта),
но возможно и прокатит так:

Код: Выделить всё

   if ((V_SENS) != _VSensLS)   {
нужно смотреть как это компилятор преобразует
Если компилятор CVAVR то объявлять битовые переменные лучше "bit", и потом в условиях будет сравнивать биты, а не байты, да еще компилятор упакует все битовые переменные в байт

[uquote="Victor_P.",url="/forum/viewtopic.php?p=4061612#p4061612"]Не совсем понял эту фразу "в новой аппаратной версии порт вибродатчика нулевой и поэтому это сравнение работает, а для старой этот алгоритм уже не прокатывает". А какая разницы для этого алгоритма какой порт, 0 или 6?[/uquote]VRS в версии 1.13 = B6, а в версии 1.30 = B0
т.е.: по исходнику мы читаем состояние порта вибродатчика и для старой версии имеем 0 или 32 (1 << 6) и это число сравниваем с сохраненным значением 0 или 1: и (32==1) но это не так, я думаю понятно куда клоню
Аватара пользователя
Victor_P.
Поставщик валерьянки для Кота
Сообщения: 2168
Зарегистрирован: Сб окт 10, 2009 10:34:07
Откуда: Україна, Хорол

Re: Цифровая паяльная станция своими руками.(V 2.0)

Сообщение Victor_P. »

[uquote="alcxa",url="/forum/viewtopic.php?p=4061633#p4061633"]ввести логическую переменную и в нее считать данные с порта и потом уже с ней работать[/uquote]И мы опять получим неявное преобразование типов из байта в булевскую величину (не пишу в бит, т.к. не уверен что там именно бит).
[uquote="alcxa",url="/forum/viewtopic.php?p=4061633#p4061633"](заодно уберется двойное считывание порта),[/uquote]А где у меня двойное считывание?
[uquote="alcxa",url="/forum/viewtopic.php?p=4061633#p4061633"]но возможно и прокатит так:

Код: Выделить всё

   if ((V_SENS) != _VSensLS)   {
нужно смотреть как это компилятор преобразует[/uquote]? при этом после обработки препроцессором получим опрос порта в двойных скобках, вот так:

Код: Выделить всё

if (((PINB&(1<<PINB0))) != _VSensLS)   {
зачем?
[uquote="alcxa",url="/forum/viewtopic.php?p=4061633#p4061633"]Если компилятор CVAVR то ...[/uquote]avr gcc, насколько я в курсе. IDE Microchip(Atmel)Studio.
[uquote="alcxa",url="/forum/viewtopic.php?p=4061633#p4061633"]т.е.: по исходнику мы читаем состояние порта вибродатчика и для старой версии имеем 0 или 32 (1 << 6) и это число сравниваем с сохраненным значением 0 или 1: и (32==1) но это не так, я думаю понятно куда клоню[/uquote]Понятно, но компилятор по идее должен перед сравнением провести преобразование типов. Хотя вот этот момент нужно продумать, скорее всего собака зарыта где-то рядом. Возможно нужно сделать явное преобразование так:

Код: Выделить всё

if (V_SENS != (uint8_t)_VSensLS)   {
или так

Код: Выделить всё

if ((bool)V_SENS != _VSensLS)   {
или вообще _VSensLS обьявить байтовой.

Добавлено after 5 minutes 22 seconds:
[uquote="RX24",url="/forum/viewtopic.php?p=4061632#p4061632"]Victor_P.можно ли в версии, например 1.13 применить драйвер по схеме версии 1.30?[/uquote]можно.
Мои паяльные станции: первая, вторая, фен.
Ответить

Вернуться в «Статьи»