Updated firmware version 1.3
Sorry for the delay, but have been busy and the display refresh change turned into a real chore. Turns out my ADC rolling average of 16 (for analog filtering) relies on the time of the display routine. In bypassing it for x number of cycles, it significantly impacts this averaging algorithm. So I had to redo one timer routine and make adjustments throughout the code.
Charge mode(for those will halls sensors for bAmps)
1. Powering on will display the charge screen after 2 seconds if charge current (bAmp) greater than 2A is detected. Mode LED blinks once per second. After 2 minutes, charge screen will display even if charge current goes to 0. This was done so that when charging is finished and the charger turns off (all depends on your charger), the charge screen will remain displayed so you can check the total charge time and final SOC.
2. In charge mode, the bAmp level is still monitored. When it is =< parameter min_cAmp, the charge timer will stop and Mode LED will stop blinking. This is necessary to display an accurate cTime. i.e. timer will stop when charging is complete or when moving into trickle charge
3. SW1 serves no function, you are locked into the charge screen.
VR1 setup
For those who already had their systems up and running in their car, you should make the following re-adjustment to VR1 BEFORE programming with this new code.
Turn VR1 clockwise until bAmp shows 25A (Tamura 400A) or 45A (Lem Hass 300). After programming, bAmps should be exactly 0A with no battery current flowing.
For those using this code on a new build your procedure is a little different since position of VR1 is unknown. 4 seconds after poweron, see which screen is showing.
-If it is the Volts, amp screen, VR1 should be turned counterclockwise to lower battery amps to 0. Turn VR1 slowly and stop right as 0 shows.
-If it is the charge mode screen, turn VR1 clockwise. bAmps will decrease and it will switch to Volt, amp screen. Continue turning until bAmp increases to 3, then reverse to counterclockwise to bring it just down to 0. I have added a bit of hysteresis on the charge side so charge currents less than 2A will not put it into charge mode display.
Display Refresh Rate
Parameter “D_refresh” determines how fast the LCD display will update values.
1 is default and is the same as current. A value of 50 makes it update once per second.
100 once every 2 seconds, etc. NOTE: This does exactly as it says, so if you have your refresh setup for 2 seconds and you press SW1 to change screens, you may have to wait that long depending when the switch was detected during the timing loop.
I updated the docs to support/explain all of this, but too large to attach here.
Attached are the ASM's only. Sawickm, I'll email you the updates this evening.
|