cocus / vc288-alt-fw

VC288 Volt-amp meter alternative firware. Targets the cheap DSN-VC288 volt-amp meter and the STM8S003F MCU.
22 stars 12 forks source link

Dynamic comma #7

Open ksv-success opened 4 years ago

ksv-success commented 4 years ago

если я правильно понял с запятой нужно работать здесь?

void set_segments(uint8_t data) { PA_ODR_ODR2 = data & 1; data >>= 1; // G PC_ODR_ODR4 = data & 1; data >>= 1; // F PC_ODR_ODR7 = data & 1; data >>= 1; // E PC_ODR_ODR6 = data & 1; data >>= 1; // D PC_ODR_ODR3 = data & 1; data >>= 1; // C PA_ODR_ODR3 = data & 1; data >>= 1; // B

ifndef SWIM_DEBUG_ENABLED

PD_ODR_ODR1 = data & 1; data >>= 1;     // A (same pin of SWIM)

else

data >>= 1;

endif

 PC_ODR_ODR5 = data & 1; data >>= 1;     // Dp       

}

void select_digit(uint8_t digit) { PD_ODR_ODR4 = digit != 0; PD_ODR_ODR6 = digit != 1; PD_ODR_ODR5 = digit != 2;

PB_ODR_ODR5 = digit != 3;
PB_ODR_ODR4 = digit != 4;
PA_ODR_ODR1 = digit != 5;

}

cocus commented 4 years ago

No, the 8th bit of the argument "data" of that function will actually decide if the decimal place is lit or not. There are no access to that since it's on the TO-DO list. Maybe in the upcoming future I can add that.

ksv-success commented 4 years ago

Хорошо спасибо буду ждать будущее

cocus commented 4 years ago

Please have a look at this branch.

https://github.com/cocus/vc288-alt-fw/tree/cocus/calibration-and-moving-decimal-point-test

Note that if you changed any of the "calibrations" you should review these in this code. In order to calibrate the offset (i.e. reading non zero values when nothing is applied), you should disconnect any inputs, and tie the Voltage input to ground. Short the J2 and then power on the device. After a moment, release the short and after a moment it should do it.

Dynamic comma is also applied, but not tried. I don't have my meter at hand to try it out.

cocus commented 4 years ago

Hello, did you manage to try this? I'm interested on some feedback!

ksv-success commented 4 years ago

Спасибо! извините что так долго отвечал, только увидел сообщение на почте, попробую сегодня или завтра и напишу что у меня вышло )

ksv-success commented 4 years ago

все так же нет запятой к сожалению...

ksv-success commented 4 years ago

Пожалуйста, посмотрите на эту ветку.

https://github.com/cocus/vc288-alt-fw/tree/cocus/calibration-and-moving-decimal-point-test

Обратите внимание, что если вы изменили какую-либо из «калибровок», вам следует просмотреть их в этом коде. Чтобы откалибровать смещение (т. Е. Считать ненулевые значения, когда ничего не применяется), вы должны отсоединить все входы и привязать вход напряжения к земле. Замкните J2 и включите устройство. Через мгновение отпустите короткое и через мгновение оно должно это сделать.

Динамическая запятая также применяется, но не пробуется. У меня нет под рукой моего счетчика, чтобы опробовать его.

сделал так как вы сказали но ничего не изменилось все так же как и было

cocus commented 4 years ago

even if you supply some voltage to the input? Have you calibrated it before starting?

ksv-success commented 4 years ago

https://github.com/cocus/vc288-alt-fw/tree/cocus/calibration-and-moving-decimal-point-test совсем ничего не горит даже после калибровки

ksv-success commented 4 years ago

вообщем никаких показаний не показывает даже не горит не один сегмент ни до калибровки ни после возможно потому что у меня STM8S103F3P ничего не работает хотя первый код работал вполне нормально без каких либо изменений

ksv-success commented 4 years ago

нет индикации совсем

ksv-success commented 4 years ago

изменил значение 0 на 1 gpio.c "uint8_t read_programming_pin(void) { return PD_IDR_IDR6 == 1; }" и появилась индикация амперметра показывает 97.0 A... Вольтметр не показывает пока не подключишь измерение напряжения

ksv-success commented 4 years ago

1579793486361499439349

ksv-success commented 4 years ago

Заработало осталось только откалибровать

ksv-success commented 4 years ago

не калибруется думаю нужно поставить резисторы правильного номинала

ksv-success commented 4 years ago

калибровка не работает(

cocus commented 4 years ago

If you change the 1 to 0 as you've mentioned, you're bypassing the calibration routine. You need to short that pin briefly and wait a little bit. After that it should calibrate.

ksv-success commented 4 years ago

else if (value >= 0.001) { / 0.001 - 0.999 / set_display_from_int(value*1000, 3, 1); }

возможно ли добавить такой код чтобы показывал значения до 1 Вольта

ksv-success commented 4 years ago

замыкаю j2 и контакт измерений на землю и подаю питание загорается индикатор А центральный вольтметра после больше 30 секунд отпускаю и ничего

ksv-success commented 4 years ago

IMG_20200124_195101_HHT

ksv-success commented 4 years ago

Я уже и резистор 270кОм заменил на 300 кОм на амперметре так как на вольтметре тоже 300 кОм возможно нужно точное значение измерить мультиметром и добавить в программу ?

ksv-success commented 4 years ago

спалил программатор при попытке замерить напряжения 12 вольт после калибровки теперь у программатора 3 вольта закорочено на землю возможно что программа сработала неправильно? но как через резистор 300 кОм могло поступить напряжение на линию 3 вольта странно

ksv-success commented 4 years ago

ну вообщем спасибо за вашу работу не бросайте я все же спустя долгое время смог восстановить свой испорченный вольтметр благодаря вам и вашей программе после ремонта программатора или покупки нового буду опять пробовать вашу программу надеюсь STM8 жива )) может быть изначально с программатором проблема была криво устанавливал программу вообщем до встречи )

cocus commented 4 years ago

Hi, I've updated the branch. Please download it again. Note that on the first time you use this, you need to comment out line 170 out of main.c; and a calibration will take place when you start the meter. After that, please un-comment it. A proper calibration trigger will be added later. Dynamic comma should work "ok" now, and the amps should display something useful as well. Although the gain value for the amps is not right.

ksv-success commented 4 years ago

Привет! хорошо обновлю сейчас только недавно вроде бы восстановил свой программатор вышедший из строя после неудачного замера напряжения сгорел микроконтроллер stm32 заменил прошил буду пробывать заказа новый с Китая теперь будет 2 программатора ))

ksv-success commented 4 years ago

проэкт не компилируется ошибки выбивают но я пробывал старую версию вообщем и STM8 умерла буду ждать с китая STM8 закажу с излишком штук 10 мало ли ))) как получу и перепаяю установлю вашу программу и напишу обязательно

ksv-success commented 4 years ago

image https://github.com/cocus/vc288-alt-fw/tree/cocus/calibration-and-moving-decimal-point-test

cocus commented 4 years ago

Good catch! I forgot to push that file! Please clone again, I've pushed that file.

ksv-success commented 4 years ago

image или мой программатор неисправен или stm8 буду разбираться в чем проблема спасибо вам защищайтесь от короновируса ) вы нужный человек!

cocus commented 4 years ago

I'm not sure why that happens. do you mind cleaning all and then trying to just build and if that worsk, then debug?

ksv-success commented 4 years ago

Спасибо за ожидание получил программатор новый ! прошил новый stm8f003f3 все супер запятая есть все работает ! показывает 2.7 вольт при замере 3.3 ну это не критично. Спасибо огромное за ваш труд и поддержку !

ksv-success commented 4 years ago

IMG_20200413_165103 Странные показания посторонние

ksv-success commented 4 years ago

IMG_20200413_165100 Как обнулить амперметр ? Я пробывал изменять настройки которые вы говорили в прошлой версии но мало что изменяется

ksv-success commented 4 years ago

Амперы показывает на оборот не +10 а в -10 то есть должен показывать например 10 ампер а он показывает -10

ksv-success commented 4 years ago

Значения идут в минус

ksv-success commented 4 years ago

IMG_20200414_110611 IMG_20200414_110603 Изменил значение семплов на 2 вроде бы показывает почти 3.3 вольта но обманывает на 0.10 вольт не критично но все же что сделать чтобы показывало верно от 0.01 вольта

ksv-success commented 4 years ago

What do I need to do to calibrate?

ksv-success commented 4 years ago

only the change #define ADC_AVERAGE_SAMPLES_BASE_2 5

ksv-success commented 4 years ago

other settings do not change readings, all readings remain unchanged

ksv-success commented 4 years ago

what needs to be done so that the readings after the decimal point smoothly change, for example, from 0.01 to 0.99 (0.02, 0.03, 0.04 and so on)

ksv-success commented 4 years ago

Is calibration possible once with firmware?

ksv-success commented 4 years ago

Sorry I will wait for an answer dear friend

ksv-success commented 4 years ago

image

ksv-success commented 4 years ago

когда замыкаю JP2 минуту удерживаю показания не изменяются буду пробывать подбирать резисторы R2 и R3 но буду рад если ответите спасибо вам!

ksv-success commented 4 years ago

Я не знаю, почему это происходит. Вы возражаете очистки всех, а затем пытается просто построить, и если это worsk, то отладить?

my ST-Link was faulty I ordered a new one in China, that's just got it and immediately started to flash, the first one for some reason burned out, I restored it STM32 firmware but does not want to flash STM8 :D , there is apparently something else failed, so this message was I now have everything in order the new programmer works properly.

cocus commented 4 years ago

So, the calibration doesn't start by itself. you need to remove the input voltage (i.e. the one you'd measure) and then flash it with main.c:173 commented. This will run the calibration ALWAYS. After it boots for the first time, revert this change (i.e. un-comment the same line) and then it should work. I haven't figured a good value for the amps gain, which means that you'll read COUNTS from the ADC rather than amps. if you figure out the ratio (i.e. 1A on the input means for instance 300 counts, then the ratio is 1/300, which you could change on GAIN_FOR_AMPS and the repeat these steps).

ksv-success commented 4 years ago

а почему показания не изменяются когда я меняю значения в

define AMPS_R3_RV2 200000.0

define VOLTS_R2_RV1 301500.0

я их изменил , но это ничего не изменило

ksv-success commented 4 years ago

я заметил погрешность в 1-2 вольт при изменении напряжения от 1 до 20 вольт

cocus commented 4 years ago

Because those are the reference values that will be stored on the calibration. so if you change those defines, you need to "re-calibrate" your device. That small error you saw on the voltage on that range I think its due to the non linearity that this ADC shows (which I didn't do anything to fix it for now).

ksv-success commented 4 years ago

понял буду пробовать тестировать но уже делал замену резисторов)) на вольтметре вроде бы удачно а вот амперметр бог знает чет непонятное на нем ))) что то показывает какие то числа когда ничего не подключено )))

амперметр показывает постоянно разные числа 200, 185, 197 очень быстро иногда удается разглядеть и при подключении нагрузки , измеряет в обратном направлении то есть если показывает 200 становится 180 то есть показания идут как бы в минус