请选择 进入手机版 | 继续访问电脑版

MiniDSO产品技术交流  迷你示波器-袖珍示波器-示波器探头-

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1645|回复: 2

[Firmware update] Possible fix for LOW VOLT at transition to IDLE

[复制链接]

2

主题

8

帖子

43

积分

新手上路

Rank: 1

积分
43
发表于 2018-11-21 03:42:51 | 显示全部楼层 |阅读模式
[i = s] posts by Steini in 2018-11-21 03:54 Edit

Symptom: LOW VOLT occurs with several power sources when leaving working mode to enter standby mode (long press "B" key during heating operation)

I downloaded the source code of firmware 1.06 and took a look:

1) working mode is TEMP_CTR (CTRL.c, line 600) state of the state machine

2) switch-case handles long press of "B" key to enter standby mode (CTRL.c, line 619)
2a) state is set to IDLE for next pass of state machine (CTRL.c, line 622)
2b) voltage is set to 5 volts (CTRL.c, line 623 calling Vol_Set in line 190 with value 1)
2c) break leaves switch-case but current pass of state machine in state TEMP_CTR will be continued... (CTRL.c, line 624)

3) Read_Vb() is called to detect abnormal voltage (CTRL.c, line 686)
3a) Read_Vb() sets gAlarm_type to LOW_VOLTAGE is voltage is below gTurn_mixv*10 (HARDWARE.c, line 131-133)
3b) gTurn_mixv is set to 60 (HARDWARE.c, line 33) which results in LOW_VOLTAGE in gAlarm_type below 6 volts (being true for fast power supplies as voltage has been set to 5 volts in 2b)
3c) with 3b being true, value 2 is returned (HARDWARE.c, line 134)

4) return value of Read_Vb() not being 0 has no immediate impact, 200 consecutive times would be necessary (CTRL.c, lines 686-698)

5) Get_AlarmType() > NORMAL_TEMP is similar to Get_AlarmType() > 1 (CTRL.c, line 699 combined with CTRL.h, line 54)
5a) Get_AlarmType() returns gAlarm_type (HARDWARE.c, line 112)
5b) gAlarm_type is LOW_VOLTAGE (see 3b) which is 5 (CTRL.h, line 58)
5c) with Get_AlarmType() == 5 > 1, state for next pass is set to ALARM (CTRL.c, line 701) instead of IDLE (see 2a)

6) new state ALARM will display LOW VOLT instead of entering the IDLE state (see symptom)

My recommandation to fix this bug:
a) replace with ((Get_AlarmType() == HIGH_TEMP) || (Get_AlarmType() == SEN_ERR)) (immediate voltage based alarm types would be ignored), or
b) after possible transition to another state, make sure state is still TEMP_CTR after line 625 in CTRL.c before proceeding

回复

使用道具 举报

162

主题

914

帖子

1868

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1868

社区居民忠实会员

发表于 2018-11-21 09:40:05 | 显示全部楼层
Thank you, we will try this.
回复 支持 反对

使用道具 举报

0

主题

59

帖子

59

积分

注册会员

Rank: 2

积分
59
发表于 2019-5-6 13:07:38 | 显示全部楼层
失望到了极限就好像所有的热情瞬间被熄灭!! 悬浮门 http://www.ssmdd.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|MiniDSO产品技术交流 迷你示波器-袖珍示波器-示波器探头- ( 粤ICP备07030012号 )

GMT+8, 2019-8-22 01:53 , Processed in 0.129815 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表