collin80 / GEVCU

Generalized Electric Vehicle Control Unit
114 stars 56 forks source link

Output 4 does not work #58

Open collin80 opened 10 years ago

collin80 commented 10 years ago

It appears that output 4 is inoperable on GEVCU4 hardware. Attempts to set the pin state high seem to be ignored. This pin corresponds to D2 / TIOA0

Test on additional hardware and track down whether this pin is allocated to hardware by some part of the code base.

jrickard commented 10 years ago

What's odd is that if you set it to 10, instead of 2, it then DOES work. I don't understand THAT either.

Jack

On Thu, Feb 27, 2014 at 1:23 PM, Collin Kidder notifications@github.comwrote:

It appears that output 4 is inoperable on GEVCU4 hardware. Attempts to set the pin state high seem to be ignored. This pin corresponds to D2 / TIOA0

Test on additional hardware and track down whether this pin is allocated to hardware by some part of the code base.

Reply to this email directly or view it on GitHubhttps://github.com/collin80/GEVCU/issues/58 .

http://www.EVTV.me http://EVTV.me

Electric Vehicle Television - KickinGas - One Car at a Time.

collin80 commented 10 years ago

I have confirmed this behavior on my end with a GEVCU 4.2 board and the current (as of right now) version from the ArduinoDue branch. It still doesn't make sense to me but this is confirmed to be an issue.

collin80 commented 10 years ago

Additional debugging info: Device starts up and soon after output 4 is active. It never seems to deactivate on its own. This makes sense, output 4 is listed as the main contactor. It would be closed when the system is active. The D4 output does pass current at this point. All other 7 outputs are high impedance (off). Using the K command causes all 8 outputs to properly pass current. Using the J command causes all 8 outputs to go high impedance. At no point during any of this does the L command properly reflect the state of D4 - it always shows 0 whether it is on or not. However, the output does seem to actually work, the L command just does not reflect this.

So, this really seems to be an issue with state reporting by the L command. Please, someone let me know if your experience is different than this.

collin80 commented 10 years ago

Revisited this after Jack mentioned it to me at EVCCON. It seems that the issue is likely that TIOA is configured as an output by the Timer Counter hardware as soon as the first timer is set up. This happens nearly immediately in the sketch. Some of our other digital output pins are also TCIO pins but for much higher up timers and so we never get there and they don't get taken over. Oddly enough, we don't seem to be asking the hardware to do anything to TIOA0 so you'd think it would just stay an output and we could set it. We can set it but it reads back as off all of the time. Further testing should be done by trying to toggle this pin without having ever set up a timer.

collin80 commented 9 years ago

Is this still happening with the 5.2 hardware? I should find out.