Some code from the Tside used to monitor low side drivers on both boards for short and open condition...
-Tom
Code:
************************************************
* READ STATUS OF OUTPUT DRIVERS THROUGH SPI
************************************************
BAA2 12 B3 01 03 BRSET @$B3,$01,$BAA9 ; SPI FRAME TX IN PROGRESS
BAA6 7E BB 29 JMP $BB29 ; DONE
BAA9 13 7F 10 03 BRCLR @$7F,$10,$BAB0 ; BRANCH IF BATTERY NOT LOW
BAAD 7E BB 29 JMP $BB29 ; DONE
BAB0 0F SEI ; DISABLE INTERRUPTS
BAB1 7F 10 28 CLR $1028 ; RE-INITIALIZE SPI FOR MASTER
BAB4 86 50 LDAA #$50 ; MODE AND DIFFERENT CLOCK PHASE
BAB6 B7 10 28 STAA $1028 ; TO MATCH LOW SIDE DRIVER CHIPS
BAB9 CE 18 00 LDX #$1800 ; PORT REPLACEMENT CHIP
* C1 (RED) CONNECTOR DRIVER
BABC 1D 00 10 BCLR $00,X,$10 ; SELECT FIRST LOW SIDE DRIVER
BABF B6 10 29 LDAA $1029 ; READ SPI STATUS AND WRITE
BAC2 B7 10 2A STAA $102A ; STATUS AS DATA TO INITIATE TRANSFER
BAC5 3D MUL ; REAL TIME DELAY
BAC6 3D MUL ;
BAC7 B6 10 2A LDAA $102A ; READ SPI DATA
BACA 9A 90 ORRA @$90 ; UPDATE OPEN CIRCUIT STATUS
BACC 97 90 STAA @$90 ;
BACE B6 10 29 LDAA $1029 ; READ SPI STATUS
BAD1 B7 10 2A STAA $102A ; INITIATE TRANSFER
BAD4 3D MUL ; REAL TIME DELAY
BAD5 3D MUL ;
BAD6 B6 10 2A LDAA $102A ; READ SPI DATA
BAD9 9A 8F ORRA @$8F ; UPDATE SHORT CIRCUIT STATUS
BADB 97 8F STAA @$8F ;
BADD 1C 00 10 BSET $00,X,$10 ; DE-SELECT FIRST LOW SIDE DRIVER
* C2 (BLACK) CONNECTOR DRIVER
BAE0 1D 00 20 BCLR $00,X,$20 ; SELECT SECOND LOW SIDE DRIVER
BAE3 B6 10 29 LDAA $1029 ; READ SPI STATUS AND WRITE
BAE6 B7 10 2A STAA $102A ; STATUS AS DATA TO INITIATE TRANSFER
BAE9 3D MUL ; REAL TIME DELAY
BAEA 3D MUL ;
BAEB B6 10 2A LDAA $102A ; READ SPI DATA
BAEE 9A 92 ORRA @$92 ; UPDATE OPEN CIRCUIT STATUS
BAF0 97 92 STAA @$92 ;
BAF2 B6 10 29 LDAA $1029 ; READ SPI STATUS
BAF5 B7 10 2A STAA $102A ; INITIATE TRANSFER
BAF8 3D MUL ; REAL TIME DELAY
BAF9 3D MUL ;
BAFA B6 10 2A LDAA $102A ; READ SPI DATA
BAFD 9A 91 ORRA @$91 ; UPDATE SHORT CIRCUIT STATUS
BAFF 97 91 STAA @$91 ;
BB01 1C 00 20 BSET $00,X,$20 ; DE-SELECT SECOND LOW SIDE DRIVER
* BLUE CONNECTOR DRIVER
BB04 1D 00 40 BCLR $00,X,$40 ; SELECT THIRD LOW SIDE DRIVER
BB07 B6 10 29 LDAA $1029 ; READ SPI STATUS AND WRITE
BB0A B7 10 2A STAA $102A ; STATUS AS DATA TO INITIATE TRANSFER
BB0D 3D MUL ; REAL TIME DELAY
BB0E 3D MUL ;
BB0F B6 10 2A LDAA $102A ; READ SPI DATA
BB12 9A 94 ORRA @$94 ; UPDATE OPEN CIRCUIT STATUS
BB14 97 94 STAA @$94 ;
BB16 B6 10 29 LDAA $1029 ; READ SPI STATUS
BB19 B7 10 2A STAA $102A ; INITIATE TRANSFER
BB1C 3D MUL ; REAL TIME DELAY
BB1D 3D MUL ;
BB1E B6 10 2A LDAA $102A ; READ SPI DATA
BB21 9A 93 ORRA @$93 ; UPDATE SHORT CIRCUIT STATUS
BB23 97 93 STAA @$93 ;
BB25 1C 00 40 BSET $00,X,$40 ; DE-SELECT THIRD LOW SIDE DRIVER
BB28 0E CLI ; ENABLE INTERRUPTS
BB29 39 RTS ; DONE
Bookmarks