Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dynamic comma #7

Open
ksv-success opened this issue Jan 13, 2020 · 64 comments
Open

Dynamic comma #7

ksv-success opened this issue Jan 13, 2020 · 64 comments

Comments

@ksv-success
Copy link

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

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
Copy link
Owner

cocus commented Jan 13, 2020

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
Copy link
Author

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

@cocus
Copy link
Owner

cocus commented Jan 14, 2020

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
Copy link
Owner

cocus commented Jan 20, 2020

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

@ksv-success
Copy link
Author

ksv-success commented Jan 21, 2020

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

@ksv-success
Copy link
Author

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

@ksv-success
Copy link
Author

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

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

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

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

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

@cocus
Copy link
Owner

cocus commented Jan 22, 2020

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

@ksv-success
Copy link
Author

ksv-success commented Jan 22, 2020

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

@ksv-success
Copy link
Author

ksv-success commented Jan 22, 2020

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

@ksv-success
Copy link
Author

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

@ksv-success
Copy link
Author

ksv-success commented Jan 23, 2020

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

@ksv-success
Copy link
Author

1579793486361499439349

@ksv-success
Copy link
Author

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

@ksv-success
Copy link
Author

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

@ksv-success
Copy link
Author

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

@cocus
Copy link
Owner

cocus commented Jan 24, 2020

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
Copy link
Author

ksv-success commented Jan 24, 2020

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

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

@ksv-success
Copy link
Author

ksv-success commented Jan 24, 2020

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

@ksv-success
Copy link
Author

IMG_20200124_195101_HHT

@ksv-success
Copy link
Author

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

@ksv-success
Copy link
Author

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

@ksv-success
Copy link
Author

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

@cocus
Copy link
Owner

cocus commented Feb 10, 2020

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
Copy link
Author

ksv-success commented Feb 17, 2020

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

@ksv-success
Copy link
Author

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

@ksv-success
Copy link
Author

ksv-success commented Mar 17, 2020

@cocus
Copy link
Owner

cocus commented Mar 17, 2020

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

@ksv-success
Copy link
Author

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

@ksv-success
Copy link
Author

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

@ksv-success
Copy link
Author

What do I need to do to calibrate?

@ksv-success
Copy link
Author

only the change #define ADC_AVERAGE_SAMPLES_BASE_2 5

@ksv-success
Copy link
Author

other settings do not change readings, all readings remain unchanged

@ksv-success
Copy link
Author

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
Copy link
Author

Is calibration possible once with firmware?

@ksv-success
Copy link
Author

Sorry I will wait for an answer dear friend

@ksv-success
Copy link
Author

image

@ksv-success
Copy link
Author

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

@ksv-success
Copy link
Author

Я не знаю, почему это происходит. Вы возражаете очистки всех, а затем пытается просто построить, и если это 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
Copy link
Owner

cocus commented Apr 15, 2020

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
Copy link
Author

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

#define VOLTS_R2_RV1 301500.0

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

@ksv-success
Copy link
Author

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

@cocus
Copy link
Owner

cocus commented Apr 15, 2020

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
Copy link
Author

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

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

@cocus
Copy link
Owner

cocus commented Apr 15, 2020

Okay, the amp wasn't tried that much, but it could have some issues. Next time I have time to work on it will try to make the amp meter to work properly. Probably the formula for the gain is wrong. I'll have to debug it more closely. But the volt meter should work "kind of ok" for now.

@ksv-success
Copy link
Author

если правильно понял после того как я уберу комментирование //while(!read_programming_pin());
будет работать калибровка замыкания JP2

@cocus
Copy link
Owner

cocus commented Apr 15, 2020

ehhh technically it should work from the beginning but I catched an issue with that pin. it seems like the LEDs connect from the SWIM line to that pin, and if you ground it, you'll pull the SWIM line low, which would break your debug session. I think it might work if you're not debugging it, but I think it won't work regardless. That's an issue with the design of the board. I will see what other methods I can come up with for triggering a calibration.

@ksv-success
Copy link
Author

Хорошо буду ждать дополнений ! и тестировать то что вы сказали спасибо вам огромное!

@ksv-success
Copy link
Author

настроил вольтметр подбором резисторов показывает правильно ! только после запятой ошибается и считает не от 1.00 до 1.99 а хаотично 1.23 , 1.11, 1.37 как то так хотя мультиметр показывает четко где можно настроить это исправить значения после запятой?

@ksv-success
Copy link
Author

Где можно в программе изменить значения RV1 и R2 потому что у меня другое значение и найти точно такой же резистор с маркировкой 274 не могу поэтому поставил с маркировкой 304
подобрал 200k и 75k но я так понял нужно ровно 291k... а возможно что бы калибровка шла от опорного напряжения ? там же идет на питание 3.3 вольта ровно или калибровка так и работает может я тупой жаль плохо понимаю английский ))) без переводчика да и с переводчиком тоже плохо)))

@ksv-success
Copy link
Author

теперь я понял отредактировал main.c показывает 3.3 вольта ура! )) спасибо вам ! переведу ваши комментарии в коде на русский выложу вам может добавите в ваш код что бы другие понимали о чем речь кто плохо понимает английский как я ))))
image

@ksv-success
Copy link
Author

@cocus я получил сегодня новый вольтамперметр с Китая на STM8 :D

@ksv-success
Copy link
Author

IMG_20200417_130145
Вот этот новый китайский VC 288 на STM8 xD значит Naviton аналог Китайский 😕

@cocus
Copy link
Owner

cocus commented Apr 20, 2020

Hey good, I don't speak russian myself and seems like english is a good "global" language for all projects, I hope you can translate those. Cool to see a proper STM8 meter.
The values for the resistors and such are on the config_8s003.h file, with comments on what each parameter means. You can skew the values by tweaking those potentitometers, but I picked a value (on the code) where they're on their middle point.

@ksv-success
Copy link
Author

ksv-success commented Apr 23, 2020

я взял новый китайский VC288 на котором была установлена STM8 и прошил его вашей прошивкой xD. Скажите как настроить его что бы он вел расчет правильно где настроить это?
Он отображает вольтаж 1.00 и перескакивает до 1.11 , 1.22 и так далее., не плавно отображает значения где это можно настроить и какие значения нужно изменять? изначально он показывает нормально и более мение точно но он не показывал значения в 0.01 вольта минимум 0.1 вольт а ваш прошивка лучше но исправить бы амперметр и вольтметр чуть и будет лучше чем оригинал !

@ksv-success
Copy link
Author

IMG_20200424_091426
IMG_20200424_091132
Ничего не меняется в чем причина может быть не программист к сожалению может что нибудь не так с этими настройками ----> config_8s003.h

@ksv-success
Copy link
Author

странно почему эта формула не работает ?
#define GAIN_FOR_VOLTAGE (((VOLTS_R2_RV1 + VOLTS_R1) / VOLTS_R1) * ADC_SCALE)
я ее изменяю до такого состояния
#define GAIN_FOR_VOLTAGE ADC_SCALE
и ничего не меняется, показания остаются прежними это странно

@ksv-success
Copy link
Author

Hello! how can I configure the ADC so that it shows 3.30 volts and not 3.17 - 3.29

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants