Страница 360 из 371
Re: Цифровая паяльная станция своими руками.(V 2.0)
Добавлено: Пт июл 09, 2021 21:54:45
alcxa
[uquote="Victor_P.",url="/forum/viewtopic.php?p=4058663#p4058663"]alcxa, все ж есть в мануалке: "Если таймер включен, то на индикаторе в младшем разряде светится точка."
Сейчас проверил работу датчика вибрации (положения), все нормально, точка мигает при смене положения паяльника.[/uquote]Так она горит, при отключенном датчике вибрации, когда включаю, не горит, загорается если паяльник поставить в положение когда датчик замкнут. на старой прошивке с этим же паяльником и силовой платой, все нормально
Re: Цифровая паяльная станция своими руками.(V 2.0)
Добавлено: Пт июл 09, 2021 22:11:30
Victor_P.
У меня только одна мысль для этого случая,- на вход датчика идет какой-то периодический сигнал, который постоянно сбрасывает таймер когда датчик разомкнут.
Re: Цифровая паяльная станция своими руками.(V 2.0)
Добавлено: Сб июл 10, 2021 07:41:43
alcxa
[uquote="Victor_P.",url="/forum/viewtopic.php?p=4058676#p4058676"]У меня только одна мысль для этого случая,- на вход датчика идет какой-то периодический сигнал, который постоянно сбрасывает таймер когда датчик разомкнут.[/uquote]Как программно отслеживается вибро? на прерываниях ? (EXT_INT0 или PC_INT0) ?
в старых платах v.1.13 сигнал VRS на порту PB6(INT6), в новых PB0(INT0)
Осциллографом посмотрел = там чисто
Но почему старое ПО работает тогда ?
Re: Цифровая паяльная станция своими руками.(V 2.0)
Добавлено: Сб июл 10, 2021 12:28:53
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).
Re: Цифровая паяльная станция своими руками.(V 2.0)
Добавлено: Сб июл 10, 2021 20:35:56
alcxa
именно о той: аппаратная версия 1.13 только мега168
Re: Цифровая паяльная станция своими руками.(V 2.0)
Добавлено: Сб июл 10, 2021 21:25:20
Victor_P.
alcxa, тогда мыслей нету. Как вариант можно проверить наличие напряжения на PINB6 без датчика, там включена подтяжка, должна быть единица.
А также попробовать сделать цепь датчика как в более поздних версиях:

Еще можно выбрать режим реакции на датчик 2 или 3, сам датчик отключить, на порт припаять провод. Когда станция заснет тыкнуть этим проводом на землю, должна проснуться. Оставить этот провод на земле, подождать пока опять заснет и отключить от земли, опять должна проснуться.
Re: Цифровая паяльная станция своими руками.(V 2.0)
Добавлено: Сб июл 10, 2021 22:15:04
alcxa
Ставил я с кондером и на 10nF и на 100nF, оставил 100nF = осц там чистая единичка, мысля есть мегу заменить
т.е. я спаял плату управления с 168 мегой и поставил вместо платы с 8мегой, на которой вибро нормально работает
Re: Цифровая паяльная станция своими руками.(V 2.0)
Добавлено: Вс июл 11, 2021 11:00:50
amigo60
[uquote="alcxa",url="/forum/viewtopic.php?p=4058950#p4058950"]спаял плату управления с 168 мегой и поставил вместо платы с 8мегой, на которой вибро нормально работает[/uquote]
Не взаимозаменяемы,- совпадает только распиновка
http://ww1.microchip.com/downloads/en/A ... oc2553.pdf
Re: Цифровая паяльная станция своими руками.(V 2.0)
Добавлено: Вс июл 11, 2021 13:25:13
GDN
alcxa у тебя датчик подключен отдельным проводом на массу,или общим в ручке.Были у меня подобные загоны когда пытался подключить ручку с четырехпроводным кабелем,поменял на пятипроводной и забыл о этой проблеме навсегда.
Re: Цифровая паяльная станция своими руками.(V 2.0)
Добавлено: Ср июл 14, 2021 10:37:44
alcxa
Вот потестил подробнее (силовая аппаратная часть 1.13, меняется только платка управления)
подключил ручку без вибродатчика с тремя проводами (дабы не вытаскивать силовую плату из корпуса и не отпаивать провода), эмуляция датчика пинцетом путем замыкания на землю VRS:
на 168меге (новая прошивка): при включении точка не горит, загорается когда замкнешь и горит пока замкнуто
на 8меге (старая прошивка): при включении точка горит, кратковременно гаснет при замыкании и при размыкании
Раз реакция на замыкание VRS есть - значит порт меги рабочий (да и на 2х мегах проверял) = т.е. проблема программная (может инициализация порта не правильная или где-то в коде физически порт прописан, а не по условию)
Re: Цифровая паяльная станция своими руками.(V 2.0)
Добавлено: Ср июл 14, 2021 19:14:39
GDN
alcxa все остальное работает корректно,только с датчиком проблема ?
Re: Цифровая паяльная станция своими руками.(V 2.0)
Добавлено: Ср июл 14, 2021 19:44:31
alcxa
[uquote="GDN",url="/forum/viewtopic.php?p=4060733#p4060733"]alcxa все остальное работает корректно,только с датчиком проблема ?[/uquote]Я только т12 подключал, паять можно
Re: Цифровая паяльная станция своими руками.(V 2.0)
Добавлено: Пт июл 16, 2021 09:07:12
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
После этого точка в правом разряде начала отмаргивать состояние вибродатчика
Re: Цифровая паяльная станция своими руками.(V 2.0)
Добавлено: Пт июл 16, 2021 10:56:51
RX24
В последней версии станция питается от 3.7 вольт. Фьюзы даны для 3.7 и 5 вольт. Станцию можно питать 5 вольтами, без каких либо переделок, установив фьюзы для 5 вольт?
Re: Цифровая паяльная станция своими руками.(V 2.0)
Добавлено: Пт июл 16, 2021 11:19:33
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 можно сделать байтовой, чтоб небыло неявных преобразований, но что это даст?
Re: Цифровая паяльная станция своими руками.(V 2.0)
Добавлено: Пт июл 16, 2021 11:36:18
RX24
Victor_P., А где можно увидеть версию станции 1.30 с пятью вольтами? Скачал архив со всеми версиями там только версия 1.30 где питание 3.7 вольт, может я что то просмотрел, или недопонял?
Re: Цифровая паяльная станция своими руками.(V 2.0)
Добавлено: Пт июл 16, 2021 11:41:15
Victor_P.
[uquote="RX24",url="/forum/viewtopic.php?p=4061619#p4061619"]Victor_P., А где можно увидеть версию станции 1.30 с пятью вольтами?[/uquote]1.30 нигде, она только с 3.6В. Но есть же 1.20 и 1.13, вот в них и можно посмотреть.
Re: Цифровая паяльная станция своими руками.(V 2.0)
Добавлено: Пт июл 16, 2021 11:59:31
RX24
Victor_P., Можно еще вопрос, можно ли в версии, например 1.13 применить драйвер по схеме версии 1.30? В версии 1.30 2 транзистора, в версиях 1.13 и выше 4 транзистора.
Re: Цифровая паяльная станция своими руками.(V 2.0)
Добавлено: Пт июл 16, 2021 12:00:24
alcxa
[uquote="Victor_P.",url="/forum/viewtopic.php?p=4061612#p4061612"]Предложите как его изменить на более правильный.[/uquote]ввести логическую переменную и в нее считать данные с порта и потом уже с ней работать (заодно уберется двойное считывание порта),
но возможно и прокатит так:
нужно смотреть как это компилятор преобразует
Если компилятор 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) но это не так, я думаю понятно куда клоню
Re: Цифровая паяльная станция своими руками.(V 2.0)
Добавлено: Пт июл 16, 2021 13:26:19
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"]но возможно и прокатит так:
нужно смотреть как это компилятор преобразует[/uquote]? при этом после обработки препроцессором получим опрос порта в двойных скобках, вот так:
зачем?
[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]Понятно, но компилятор по идее должен перед сравнением провести преобразование типов. Хотя вот этот момент нужно продумать, скорее всего собака зарыта где-то рядом. Возможно нужно сделать явное преобразование так:
или так
или вообще _VSensLS обьявить байтовой.
Добавлено after 5 minutes 22 seconds:
[uquote="RX24",url="/forum/viewtopic.php?p=4061632#p4061632"]
Victor_P.можно ли в версии, например 1.13 применить драйвер по схеме версии 1.30?[/uquote]можно.