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

Calibration #15

Open MrDrGEM opened 3 years ago

MrDrGEM commented 3 years ago

Привет всем. Столкнулся тоже с проблемой калибровки. Залил актуальную прошивку. Версия платы 1, при подаче питания 5в - показания 11,3 6в - 21,5 7в - 32.8 8в - 43,0 Резисторы перепроверил тестером и вроде соответствуют скетчу RV1,2 - 20k , R1-8k2 , R2-270k , R3-180k , R4-8k2 Подскажите правильное направление решения. Спасибо. ENG Hello everybody. I also ran into a calibration problem. Uploaded the current firmware. Board version 1, when the input power is 5V - display show 11.3 6v - 21.5 7v - 32.8 8v - 43.0 I checked the resistors with a tester and seem to correspond to the sketch RV1,2 - 20k, R1-8k2, R2-270k, R3-180k, R4-8k2 Prompt the right direction of the solution. Thank you.

MrDrGEM commented 3 years ago

С точкой и показаниями разобрался. Теперь на амперметре не могу выставить точку, вместо 1А показывает 10

cocus commented 3 years ago

So, current firmware has been modified lately and it's broken if you try to use it with PlatformIO. I don't know if it still works with IAR. In any case, go to config_8s003.h and modify which board revision you have:

//#define BOARD_HW_V1
//#define BOARD_HW_V2
#define BOARD_HW_V3

pick one of these.

Then, make sure you run a re-calibration by shoring the calibration pin (D6) and then powering up the device. (Don't connect anything to the voltage input).

MrDrGEM commented 3 years ago

Здравствуй. Напишу по порядку. У меня чип 8S003F3P6 . Сам чип таков что не могу его стирать но я иду в вкладку секуре бит и включаю потом выключаю бит защиты , тем самым получаю чистый чип. Скачал Ваш проект и поменял версию железа на

define BOARD_HW_V1

//#define BOARD_HW_V2 //#define BOARD_HW_V3 После прошивки подключаю только питание вольтметра (без замера) замыкаю пин д6 и подаю питание (в моем случае 5в) светится один верхний сегмент в среднем разряде вольтметра. Через пару секунд снимаю перемычку с д6 и на дисплее появляются нули. Подключаю измерительный пин и точка на вольтметре не совпадает, вместо 5.00 показывает 50.0 иду в майн.с в строке 171 value = roundf(value 100.0); правлю value = roundf(value 10.0); и точка начинает работать правильно а вот амперметр не хочет менять точку таким способом. Менял значения в 114 строке но он показывает 10.0А вместо 1.00 ENG Hello. Thank for you ansver. I'll write in order. I have a 8S003f3p6 chip. The chip itself is such that I cannot erase it, but I go to the secure bit tab and turn it on, then turn off the protection bit, thereby getting a clean chip. I downloaded your project and changed the hardware version to

define BOARD_HW_V1

// # define BOARD_HW_V2 // # define BOARD_HW_V3 After the firmware, I connect only the power supply of the voltmeter (without measurement), I close pin d6 and apply power (in my case, 5v), one upper segment glows in the middle display of the voltmeter. After a couple of seconds, I remove the jumper from d6 and zeros appear on the display. I connect the measuring pin and the point on the voltmeter does not match instead of 5.00 it shows 50.0 I go to the main.c in the line 171 value = roundf (value 100.0); change to 117 value = roundf (value 10.0); and the point starts working correctly, but the ammeter does not want to change the point in this way. Changed values ​​in line 114 but it shows 10.0A instead of 1.00 How to corect ampermetter ?

cocus commented 3 years ago

This is good. I'll have a look at it to see what could have gone wrong with the last merge. Maybe @alexasf could add some clarification since I didn't test these changes.

alexasf commented 3 years ago

Здравствуй. Напишу по порядку. У меня чип 8S003F3P6 . Сам чип таков что не могу его стирать но я иду в вкладку секуре бит и включаю потом выключаю бит защиты , тем самым получаю чистый чип. Скачал Ваш проект и поменял версию железа на

define BOARD_HW_V1

//#define BOARD_HW_V2 //#define BOARD_HW_V3 После прошивки подключаю только питание вольтметра (без замера) замыкаю пин д6 и подаю питание (в моем случае 5в) светится один верхний сегмент в среднем разряде вольтметра. Через пару секунд снимаю перемычку с д6 и на дисплее появляются нули. Подключаю измерительный пин и точка на вольтметре не совпадает, вместо 5.00 показывает 50.0 иду в майн.с в строке 171 value = roundf(value 100.0); правлю value = roundf(value 10.0); и точка начинает работать правильно а вот амперметр не хочет менять точку таким способом. Менял значения в 114 строке но он показывает 10.0А вместо 1.00 ENG Hello. Thank for you ansver. I'll write in order. I have a 8S003f3p6 chip. The chip itself is such that I cannot erase it, but I go to the secure bit tab and turn it on, then turn off the protection bit, thereby getting a clean chip. I downloaded your project and changed the hardware version to

define BOARD_HW_V1

// # define BOARD_HW_V2 // # define BOARD_HW_V3 After the firmware, I connect only the power supply of the voltmeter (without measurement), I close pin d6 and apply power (in my case, 5v), one upper segment glows in the middle display of the voltmeter. After a couple of seconds, I remove the jumper from d6 and zeros appear on the display. I connect the measuring pin and the point on the voltmeter does not match instead of 5.00 it shows 50.0 I go to the main.c in the line 171 value = roundf (value 100.0); change to 117 value = roundf (value 10.0); and the point starts working correctly, but the ammeter does not want to change the point in this way. Changed values ​​in line 114 but it shows 10.0A instead of 1.00 How to corect ampermetter ?

Моя рабочая ветка https://github.com/alexasf/vc288-alt-fw В ней все исправлено. Но изменения почему-то не попали в основную ветку.

ksv-success commented 3 years ago

кто вкурсе че тут происходит? не получается залить в стм8

src\main.c:92: warning 112: function 'roundf' implicit declaration src\main.c:103: warning 112: function 'roundf' implicit declaration src\main.c:122: warning 112: function 'roundf' implicit declaration src\main.c:141: warning 112: function 'roundf' implicit declaration src\main.c:173: warning 112: function 'roundf' implicit declaration src\main.c:184: warning 112: function 'roundf' implicit declaration src\main.c:203: warning 112: function 'roundf' implicit declaration src\main.c:92: error 101: too many parameters src\main.c:103: error 101: too many parameters src\main.c:122: error 101: too many parameters src\main.c:141: error 101: too many parameters src\main.c:173: error 101: too many parameters src\main.c:184: error 101: too many parameters src\main.c:203: error 101: too many parameters src\display_7seg.c:41: warning 158: overflow in implicit constant conversion *** [.pio\build\stm8sblue_debug\src\main.rel] Error 1 ==================================================== [FAILED] Took 1.95 seconds ====================================================

Environment Status Duration


stm8sblue_debug FAILED 00:00:01.947 =============================================== 1 failed, 0 succeeded in 00:00:01.947 ===============================================The terminal process "C:\Users.platformio\penv\Scripts\platformio.exe 'run', '--environment', 'stm8sblue_debug'" terminated with exit code: 1.

Terminal will be reused by tasks, press any key to close it.

cocus commented 3 years ago

@ai-big-boss That's because of the last merge, where some bugs were introduced inadvertly. After my PR got merged, you should be able to build it again: https://github.com/cocus/vc288-alt-fw/pull/17

ksv-success commented 3 years ago

@ai-big-boss That's because of the last merge, where some bugs were introduced inadvertly. After my PR got merged, you should be able to build it again:

17

ok thanks you bro! its working !

ksv-success commented 3 years ago

image как исправить ?

cocus commented 3 years ago

Please modify the config_8s003.h so it's set as following:

define BOARD_HW_V1

// # define BOARD_HW_V2 // # define BOARD_HW_V3

because these changes also default to a different board revision than the one you (and I) have.

ksv-success commented 3 years ago

Please modify the config_8s003.h so it's set as following:

define BOARD_HW_V1

// # define BOARD_HW_V2 // # define BOARD_HW_V3

because these changes also default to a different board revision than the one you (and I) have.

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

ksv-success commented 3 years ago

Здравствуй. Напишу по порядку. У меня чип 8S003F3P6 . Сам чип таков что не могу его стирать но я иду в вкладку секуре бит и включаю потом выключаю бит защиты , тем самым получаю чистый чип. Скачал Ваш проект и поменял версию железа на

define BOARD_HW_V1

//#define BOARD_HW_V2 //#define BOARD_HW_V3 После прошивки подключаю только питание вольтметра (без замера) замыкаю пин д6 и подаю питание (в моем случае 5в) светится один верхний сегмент в среднем разряде вольтметра. Через пару секунд снимаю перемычку с д6 и на дисплее появляются нули. Подключаю измерительный пин и точка на вольтметре не совпадает, вместо 5.00 показывает 50.0 иду в майн.с в строке 171 value = roundf(value 100.0); правлю value = roundf(value 10.0); и точка начинает работать правильно а вот амперметр не хочет менять точку таким способом. Менял значения в 114 строке но он показывает 10.0А вместо 1.00 ENG Hello. Thank for you ansver. I'll write in order. I have a 8S003f3p6 chip. The chip itself is such that I cannot erase it, but I go to the secure bit tab and turn it on, then turn off the protection bit, thereby getting a clean chip. I downloaded your project and changed the hardware version to

define BOARD_HW_V1

// # define BOARD_HW_V2 // # define BOARD_HW_V3 After the firmware, I connect only the power supply of the voltmeter (without measurement), I close pin d6 and apply power (in my case, 5v), one upper segment glows in the middle display of the voltmeter. After a couple of seconds, I remove the jumper from d6 and zeros appear on the display. I connect the measuring pin and the point on the voltmeter does not match instead of 5.00 it shows 50.0 I go to the main.c in the line 171 value = roundf (value 100.0); change to 117 value = roundf (value 10.0); and the point starts working correctly, but the ammeter does not want to change the point in this way. Changed values ​​in line 114 but it shows 10.0A instead of 1.00 How to corect ampermetter ?

разобрался?

MrDrGEM commented 3 years ago

К сожалению пока не разобрался. Прошил с ветки alexasf но там после калибровки не идет замер то есть замер делается только один раз только при включении. Если включил на 9 вольт то индикация не меняется если меняю вольтаж на измеряющем пине. Так и показывает 9 при любом входящем напряжении. Не исключено что я что то не правильно делаю, сейчас немного занят другим проектом и скоро вернусь к этому.

alexasf commented 3 years ago

К сожалению пока не разобрался. Прошил с ветки alexasf но там после калибровки не идет замер то есть замер делается только один раз только при включении. Если включил на 9 вольт то индикация не меняется если меняю вольтаж на измеряющем пине. Так и показывает 9 при любом входящем напряжении. Не исключено что я что то не правильно делаю, сейчас немного занят другим проектом и скоро вернусь к этому.

Похоже АЦП затыкается. Уменьши частоту измерения до двух в файле config.h

define FREQ_AVERAGE_NETWORK 2 /Hz/

define ADC_AVERAGE_SAMPLES_BASE_2 5

Это вернет измерение к исходным значениям базовой ветки Проверить пока не могу, так как нет платы.

alexasf commented 3 years ago

Протестировал измерение, на плате от термометра W1209. На частоте 50 герц затыкался АЦП. Уменьшил делитель частоты АЦП с 8 на 4. АЦП перестал затыкаться.