While debugging the ESide routine for setting VPP to 12V, I decided to modify the result codes. Should the ignition voltage be out of range OR the VPP be out of range, an error message is generated. This all is of little use to the tech trying to re-flash. I added ignition voltage and VPP voltage to the reply. I am concerned how this will affect other code that might use the routine ??steveo??
Code works now. I made a bunch of changes to port it from the TSide example I was using to the ESide. Here is the code I am using now.
To convert the VPP voltage, divide result by 17.5.
Code:
*************************************************
* APPLY VPP 12 VOLT
*************************************************
VPP_12VOLT LDAA #$00 ; START A/D CONVERTER CH0
STAA CPU_ADCTL ;
ASLD ; TIME DELAY TO A/D COMPLETE
MUL ;
MUL ;
MUL ;
LDAA CPU_ADR1 ; READ ESIDE PCM IGNITION VOLTAGE
STAA @IGN_VOLTAGE ;
CMPA #$66 ; 10.2 VOLTS
BCS VPP_ERR_IVOOR ; IGNITION UNDER VOLTAGE
CMPA #$A1 ; 16.1 VOLTS
BLS VPP_IVIR ; IGNITION VOLTAGE IN RANGE
VPP_ERR_IVOOR LDD #$0602 ; MODE 6 MESSAGE: IGNITION VOLTAGE OUT OF RANGE
BRA VPP_SEND_MSG ; SEND MESSAGE
VPP_IVIR LDAA PRU_PA ; PRU PORT A
ORAA #$80 ; TURN ON VPP
STAA PRU_PA ; UPDATE AND WAIT FOR VPP TO SETTLE
JSR @D_RESET_COP ; RESET COP TIMERS
JSR @D_D10MS_DELAY ; 10MS DELAY
JSR @D_RESET_COP ; RESET COP TIMERS
JSR @D_D10MS_DELAY ; 10MS DELAY
LDAA #$01 ; START A/D CONVERTER CH1
STAA CPU_ADCTL ;
ASLD ; TIME DELAY TO A/D COMPLETE
MUL ;
MUL ;
MUL ;
LDAA CPU_ADR1 ; READ VPP VOLTAGE
STAA @VPP_VOLTAGE ;
CMPA #$BC ; 10.5 VOLTS
BCS VPP_ERR_PVOOR ; VPP UNDER VOLTAGE
CMPA #$E9 ; 13.0 VOLTS
BLS VPP_PVIR ; VPP IN RANGE
VPP_ERR_PVOOR LDAA PRU_PA ; VPP UNDER/OVER VOLTAGE
ANDA #$7F ; TURN OFF VPP
STAA PRU_PA ; UPDATE
LDD #$0603 ; MODE 6 MESSAGE: VPP 12V OUT OF RANGE
BRA VPP_SEND_MSG ; SEND MESSAGE
VPP_PVIR LDD #$06AA ; MODE 6 MESSAGE: APPLY VPP 12V SUCCESS
VPP_SEND_MSG PSHX ; MAKE ROOM FOR MESSAGE CONTENT ON STACK
PSHX ;
TSX ; MESSAGE POINTER TO IX
STD $00,X ; SET MESSAGE CONTENT
LDAA @IGN_VOLTAGE ;
LDAB @VPP_VOLTAGE ;
STD $02,X ; SET MESSAGE CONTENT
LDAB #$04 ; MESSAGE PAYLOAD 4 BYTES
JSR @D_SEND_ALDL ; SEND MESSAGE
PULX ;
PULX ; RESTORE STACK POSITION
RTS ; DONE
-Tom
Bookmarks