`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`File Name: EXEC_A.ASM
`
`{8436985: }
`
`
`
`Horizon Exhibit 2014
`Curt Manufacturing, LLC,v.Horizon Global Americas Inc. - IPR2019-00625
`2014-1
`
`
`
`
`
`;
`LIST P=16C71, F=INHX8M, C=240
`;================================================================
`;Module Name : EXEC_A.ASM Date: 05\18\93
`;File Name : c:\picstart\brakesrc\exec_a.ASM Revision: 0.0.1.1
`;Author : Stephen A. Zavodny
`;
`; | Revision | Name | Date |
`; +------------------------------+-------------------+--------+
`; | Revised to include Level Out | S A Zavodny |05/18/93|
`; | and Brakelight Drive Out | | |
`; | | | |
`; +------------------------------+-------------------+--------+
`;
`;Identification: Company: Tekonsha Engineering
`; 537 N Church St.
`; Tekonsha, MI 49092
`; (517) 767-4142
`; Project: Next Generation Controller
`; Language: PIC 16CXX Assembly Language
`; Target Machine: MICROCHIP PIC 16C71
`;
`;===============================================================
`; REGISTER AND I/O DEFINITIONS, CONSTANT EQUATE STATEMENTS.
`;===============================================================
`; Include Sysmbol Definitions/Equates
`;
`include "c:\picstart\brakesrc\brake_a.h"
`;
`;===============================================================
`; MACRO INSTRUCTION ROUTINES
`;===============================================================
`; Move Register to Register Macro
`;
`MOVE MACRO FILE1,FILE2
` movf FILE1,w
` movwf FILE2
`ENDM
`;
`;---------------------------------------------------------------
`; Move Literal to Register Macro
`;
`MOVELF MACRO FILE1,FILE2
` movlw FILE1
` movwf FILE2
`ENDM
`;
`;===============================================================
`; MAIN ROUTINES
`;===============================================================
`; Interrupt Manager [Called by All Interrupt Sources]
`;
`
`{8436985: }
`
`
`2
`
`Horizon Exhibit 2014
`Curt Manufacturing, LLC,v.Horizon Global Americas Inc. - IPR2019-00625
`2014-2
`
`
`
`
`
`; Include Interrupt Handler & Reset Vector Table
`;
`include "c:\picstart\library\intrsubs\vector_b.asm"
`;
`;---------------------------------------------------------------
`; Main Routine [Called by Reset Manager]
`; (Initializes Registers, and Timers)
`;
`;
`MAIN bsf STAT,RP0 ;Switch to Upper Reg. Bank
` movlw 0x00 ;Option Register Init Value
` movwf OPTN ;Initialize Option Register
` movlw 0x73 ;Port RB Setup Init Value
` movwf TRISB ;Initialize Port RB Config Reg
` bcf STAT,RP0 ;Switch to Lower Reg. Bank
` bcf RB,PWMOUT ;Clr PWMOUT to Initial State
` bcf RB,BRKLITEO ;Clr Brake Lite Driver
` bcf RB,LEVELED ;Set Inert Sensor Leved Out
`;
`;---------------------------------------------------------------
`; Include Initiate Memory Service Routine
`include "c:\picstart\brakesrc\initmem.asm"
`;---------------------------------------------------------------
`;
` movlw RTCINTA
` movwf RTCC
` movlw INTCONSET
` movwf INTCON
`;
`;
`EXEC movf PWMCNT,W ;Is this the 128 PWM count?
` sublw 0x7F ;Revised PWM Bit Count 3/1/93
` btfss STAT,Z
` goto EXEC ;if not goto BACK_GND loop
`;
`; [Timing Manager controls operation of tming counter]
`;
`TMMAN clrf PWMCNT ;Otherwise clear PWMCNT &
` clrf SHRTCNT ;Clear Short Count Register
` incf WDCTNR ;Inc WD Timer SWR RST Counter
` incf RTMRCNT ;Inc Rmp Timer Update Rate Cntr
`;
`; [Checks for Watch Dog Timer Software Reset Time]
`;
`WDTST movf WDCTNR,W ;Tst WDCTNR for WDT Clear Time
` sublw 0x05 ;5*3.33mS PWM Times (~16.7mS)
` btfss STAT,Z ;
` goto RMPTME ;If Not WDT Clr Time goto RMPTME
`RWDT clrwdt ; else Clear WDT Hardware
` clrf WDCTNR ;and Clr WDTCTNR to Rst WDT RST Logic
`;
`; [Ramp Time Manager checks for Ramp Timer Update Time]
`
`{8436985: }
`
`
`3
`
`Horizon Exhibit 2014
`Curt Manufacturing, LLC,v.Horizon Global Americas Inc. - IPR2019-00625
`2014-3
`
`
`
`
`
`;
`RMPTME movf RTMRCNT,W ;Tst RTMRCNT for RAMPTMR Update
` sublw 0x1E ;30*3.33mS PWM Times ~0.0999 S
` btfss STAT,Z ;
` goto EXEC ;If not Ramp Up Time goto EXEC
` incf RAMPTMR ;else, inc Ramp Timer and...
` clrf RTMRCNT ; reset Ramp Time Counter
`;
`; [PWM Calculator Computes the desired %DC Output]
`;
`PWMCALC movf RB,W ;Determine Controller Type
` andlw 03 ;
` movwf FEATURE ;Load System Feature>FEATURE
` movwf INERTADR ;Load Inertial Sensor Address
` call BACKGND ;Call PWM Scaling Inputs
`;
`; [[Brake Light Driver Active Test Logic]]
`; (This Routine checks the status of the Manual Control Brake
`; Lite Driver, If it is set the system assumes that a Manual
`; Braking Event is in progress, and the Brake Light Test
`; and Automatic Brake Operation are invalid at this time.)
`;
`BRKLITE btfsc RB,BRKLITEO ;Test Brakelite Driver active (HIGH)
` goto MANINIT ; If Active then skip Brklite Tst
`;
`; [[Brake Light Test Logic (Active High Mod 5/18/93)]]
`;
`BRKLIT btfsc RB,BRAKELITE ;Test for Brakelite active (HIGH)
` goto AUTOTST ;If Active, goto Autobrake Tst
`MANINIT clrf AUTODC ; else Clear % Autodc
` movf MANDC,W ; Test for Manual %DC > 0
` btfsc STAT,Z ;If MANDC = 00Hex
` bcf RB,BRKLITEO ; then Clear Brake Lite Driver
` goto INRTMAN ; Calc Manual %DC [INRTMAN]
`;
`; [Brake Active Control Logic]
`;
`AUTOTST movf FEATURE,W ;Test for Time Activator Mode
` btfss STAT,Z ;if Feature <> 00Hex
` goto INRTAUTO ; then goto Inert Auto PWM
`;
`; [Ramped Brake Control Logic]
`;
`TMRAUTO call RAMPPWM ; else call Ramp PWM Calculator
` movwf AUTODC ;Load Automatic Brake % DC
`;
`; [Analog Manual Brake Control Logic]
`;
`ANALMAN call ANALPWM ;Call Analog PWM Calculator
`MANDCLD movwf MANDC ;Load Manual Brake % DC
`;
`; [Manual Brake Light Drive Logic]
`
`{8436985: }
`
`
`4
`
`Horizon Exhibit 2014
`Curt Manufacturing, LLC,v.Horizon Global Americas Inc. - IPR2019-00625
`2014-4
`
`
`
`
`
`;
` movf MANDC,W ;Test for Manual %DC > 0
` btfss STAT,Z ;If MANDC > 00Hex
` bsf RB,BRKLITEO ; then Set Brake Lite Driver
`; else continue...
`;
`; [Calculate the Scaled PWM Output % Duty Cycle]
`;
`PWMSCL call PWMSOUT ;Call PWM Output Scaling Routine
`;
` goto EXEC ;Return to Exec
`;
`; [Inertial Sensor PWM Control Logic]
`;
`INRTAUTO call INRTPWM ;Call Inertial PWM Calculator
` movwf AUTODC ;Load Inertial % DC
`INRTMAN movlw 0x02 ;Test for Brake Controller Type
` subwf FEATURE,W ;
` btfsc STAT,C ; if neither Timer or Voyager
` goto CMNDMAN ; then goto Cmndr Man Brake Logic
` clrf RAMPTMR ; else Clear Ramp Up Timer,
` goto ANALMAN ; Goto Analog Manual % DC Calc
`;
`; [Commander Type Ramped Manual Brake Logic]
`;
`CMNDMAN clrw ;Clear Temp Manual % DC
` btfss RB,MAN_BRAKE ;Test for Manual Brake SW Active
` goto CMANRMP ; if Active goto CMNDR Man Ramp
` clrf RAMPTMR ; else Clear Ramp Up Timer,
` goto MANDCLD ; goto Manual PWM Load
`;
`; [Commander Type Manual Brake Active Logic]
`;
`CMANRMP call RAMPPWM ; else call RAMP PWM Calculator
` goto MANDCLD ;goto Manual Brake PWM Load
`;
`;
`;===============================================================
`; Brake Controller Subroutine Listings
`;===============================================================
`;
`; Include Background Loop SWR Routine
`include "c:\picstart\brakesrc\backgnd.asm"
`;---------------------------------------------------------------
`; Include ADC Converter SWR Routine
`include "c:\picstart\library\adcsubs\adcnvrt.asm"
`;---------------------------------------------------------------
`; Include RAMPED PWM Calculator SWR Routine
`include "c:\picstart\brakesrc\RAMP.asm"
`;---------------------------------------------------------------
`; Include Analog PWM Calculator SWR Routine
`include "c:\picstart\brakesrc\ANALOG.asm"
`
`{8436985: }
`
`
`5
`
`Horizon Exhibit 2014
`Curt Manufacturing, LLC,v.Horizon Global Americas Inc. - IPR2019-00625
`2014-5
`
`
`
`
`
`;---------------------------------------------------------------
`; Include Inertial PWM Calculator SWR Routine
`include "c:\picstart\brakesrc\INERT.asm"
`;---------------------------------------------------------------
`; Include PWM Output Scaling SWR Routine
`include "c:\picstart\library\pwmsubs\pwmout.asm"
`;---------------------------------------------------------------
`; Include 8X8 Multiplier SWR Routine
`include "c:\picstart\library\mathsubs\mult8x8f.asm"
`;---------------------------------------------------------------
`; Include PWM Modulator SWR Routine
`include "c:\picstart\library\pwmsubs\pwmman_a.asm"
`;---------------------------------------------------------------
`; Include Inertial Sensor Conversion Table
`include "c:\picstart\brakesrc\icnvrsn.tbl"
`;
`;===============================================================
`; End of Brake Controller Software Listing
`END
`;===============================================================
`;
`
`
`
`
`
`
`{8436985: }
`
`
`6
`
`Horizon Exhibit 2014
`Curt Manufacturing, LLC,v.Horizon Global Americas Inc. - IPR2019-00625
`2014-6
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`File Name: ICNVRSN.TBL
`
`
`
`{8436985: }
`
`
`7
`
`Horizon Exhibit 2014
`Curt Manufacturing, LLC,v.Horizon Global Americas Inc. - IPR2019-00625
`2014-7
`
`
`
`
`
`;---------------------------------------------------------------
`;
`; Inertial Conversion Table [Called by INERT]
`; (This Table Convertes the Inertial Sensor Input to PWM %DC)
`; ** [Note: This Table is Subject to Significant Change !!!] **
`;
`ICNVSN org 0x300
` addwf PC,1
` org 0x31A
`INRT19 retlw 0xFF ;
`INRT1A retlw 0xFE ;
`INRT1B retlw 0xFB ;
`INRT1C retlw 0xF8 ;
`INRT1D retlw 0xF4 ;
`INRT1E retlw 0xF1 ;
`INRT1F retlw 0xED ;
`INRT20 retlw 0xEA ;
`INRT21 retlw 0xE7 ;
`INRT22 retlw 0xE3 ;
`INRT23 retlw 0xE0 ;
`INRT24 retlw 0xDC ;
`INRT25 retlw 0xD9 ;
`INRT26 retlw 0xD6 ;
`INRT27 retlw 0xD2 ;
`INRT28 retlw 0xCF ;
`INRT29 retlw 0xCC ;
`INRT2A retlw 0xC8 ;
`INRT2B retlw 0xC5 ;
`INRT2C retlw 0xC1 ;
`INRT2D retlw 0xBE ;
`INRT2E retlw 0xBB ;
`INRT2F retlw 0xB7 ;
`INRT30 retlw 0xB4 ;
`INRT31 retlw 0xB0 ;
`INRT32 retlw 0xAD ;
`INRT33 retlw 0xAA ;
`INRT34 retlw 0xA6 ;
`INRT35 retlw 0xA3 ;
`INRT36 retlw 0x9F ;
`INRT37 retlw 0x9C ;
`INRT38 retlw 0x99 ;
`INRT39 retlw 0x95 ;
`INRT3A retlw 0x92 ;
`INRT3B retlw 0x8F ;
`INRT3C retlw 0x8B ;
`INRT3D retlw 0x84 ;
`INRT3E retlw 0x81 ;
`INRT3F retlw 0x7E ;
`INRT40 retlw 0x7A ;
`INRT41 retlw 0x77 ;
`INRT42 retlw 0x73 ;
`INRT43 retlw 0x70 ;
`
`{8436985: }
`
`
`8
`
`Horizon Exhibit 2014
`Curt Manufacturing, LLC,v.Horizon Global Americas Inc. - IPR2019-00625
`2014-8
`
`
`
`
`
`INRT44 retlw 0x6D ;
`INRT45 retlw 0x69 ;
`INRT46 retlw 0x66 ;
`INRT47 retlw 0x62 ;
`INRT48 retlw 0x5F ;
`INRT49 retlw 0x5C ;
`INRT4A retlw 0x58 ;
`INRT4B retlw 0x55 ;
`INRT4C retlw 0x51 ;
`INRT4D retlw 0x4E ;
`INRT4E retlw 0x4B ;
`INRT4F retlw 0x47 ;
`INRT50 retlw 0x44 ;
`INRT51 retlw 0x41 ;
`INRT52 retlw 0x3D ;
`INRT53 retlw 0x3A ;
`INRT54 retlw 0x36 ;
`INRT55 retlw 0x33 ;
`INRT56 retlw 0x30 ;
`INRT57 retlw 0x2C ;
`INRT58 retlw 0x29 ;
`INRT59 retlw 0x25 ;
`INRT5A retlw 0x22 ;
`INRT5B retlw 0x1F ;
`INRT5C retlw 0x1B ;
`INRT5D retlw 0x18 ;
`INRT5E retlw 0x14 ;
`INRT5F retlw 0x11 ;
`INRT60 retlw 0x0E ;
`INRT61 retlw 0x0A ;
`INRT62 retlw 0x07 ;
`INRT63 retlw 0x03 ;
`INRT64 retlw 0x00 ;
`INRT65 retlw 0x00 ;
`INRT66 retlw 0x00 ;
`INRT67 retlw 0x00 ;
`;
`
`
`
`
`
`
`{8436985: }
`
`
`9
`
`Horizon Exhibit 2014
`Curt Manufacturing, LLC,v.Horizon Global Americas Inc. - IPR2019-00625
`2014-9
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`File Name: INERT.ASM
`
`{8436985: }
`
`
`10
`
`Horizon Exhibit 2014
`Curt Manufacturing, LLC,v.Horizon Global Americas Inc. - IPR2019-00625
`2014-10
`
`
`
`
`
`;---------------------------------------------------------------
`;
`; Inertial PWM Subroutine [Called by EXEC (Several Places)]
`; (This Routine Calculates the Inertial PWM %DC)
`; ** [Note: This Routine is Subject to Significant Change !!!] **
`;
`INRTPWM movf INERTADR,W ;Setup ADC Routine for INERTPWM
` movwf ADCSEL ;Write Analog Input Mux Address
` call ADCVTR ;Call ADConverter Subroutine
` movwf TEMP ;Subtract IOFFSET
`;
`; [Test for Out-of-Range Inert Values]
`;
` movlw 0x1A ;Test for Out-of-Range High
` subwf TEMP,W ;
` btfss STAT,C ;If INERT < 19Hex
` goto INRTORH ; Goto Out of Range High
` movlw 0x63 ;Test for Out-of-Range Low
` subwf TEMP,W ;
` btfsc STAT,C ;If INERT > 64Hex
` goto INRTORL ; Goto Out of Range Low
`;
`; [Call Inert to %DC Conversion Table]
`;
` movlw 0x03 ;
` movwf PCLATH ;
` movf TEMP,W ;Reload Inert Sensor Value
` call ICNVSN ;Call Conversion Table
` clrf PCLATH ;
` goto IFLTR ;Goto Inert Filter Routine
`;
`; [Inert ADC Value Out-of-Range High Logic]
`;
`INRTORH movlw 0xFF ;Returns FFHex
` goto IFLTR ;Goto Inert Filter Routine
`;
`; [Inert ADC Value Out-of-Range Low Logic]
`;
`INRTORL movlw 0x00 ;Returns 00Hex
` goto IFLTR ;Goto Inert Filter Routine
`;
`; [Inertial Sensor Low Pass Filter]
`; Calculates Average of Two Samples
`;
`IFLTR movwf INERT0 ;Store Latest Inert Sample
` addwf INERT1,0 ;Sum Current and Last Samples
` movwf TEMP ;Save Sample Sum
` rrf TEMP,1 ;Scale Sum (Calc Averag)
` movf TEMP,W ;Updates Last Sample Register
` movwf INERT1 ; ...Cont....
` movf TEMP,W ;Updates current Sensor Average
`;
`
`{8436985: }
`
`
`11
`
`Horizon Exhibit 2014
`Curt Manufacturing, LLC,v.Horizon Global Americas Inc. - IPR2019-00625
`2014-11
`
`
`
`
`
`; [Inertial Sensor Level Scaling Logic]
`;
` movf INRTINIT,W ;
` bcf STAT,C ;
` subwf TEMP,W ;
` btfss STAT,C ;
` clrw ;
`;
`;
`;
` return ;Return to Calling Routine
`;
`;
`
`
`
`
`
`{8436985: }
`
`
`12
`
`Horizon Exhibit 2014
`Curt Manufacturing, LLC,v.Horizon Global Americas Inc. - IPR2019-00625
`2014-12
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`File Name: ANALOG.ASM
`
`{8436985: }
`
`
`13
`
`Horizon Exhibit 2014
`Curt Manufacturing, LLC,v.Horizon Global Americas Inc. - IPR2019-00625
`2014-13
`
`
`
`
`
`;---------------------------------------------------------------
`;
`; Analog PWM Subroutine [Called by EXEC (Several Places)]
`; (This Routine Calculates the Analog PWM %DC)
`;
`ANALPWM MOVELF ANALIN,ADCSEL ;Setup ADC Routine for AnalPWM
` call ADCVTR ;Call ADConverter Subroutine
` return ;Return to Calling Routine
`;
`
`
`
`
`
`{8436985: }
`
`
`14
`
`Horizon Exhibit 2014
`Curt Manufacturing, LLC,v.Horizon Global Americas Inc. - IPR2019-00625
`2014-14
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`File Name: BACKGND.ASM
`
`
`
`{8436985: }
`
`
`15
`
`Horizon Exhibit 2014
`Curt Manufacturing, LLC,v.Horizon Global Americas Inc. - IPR2019-00625
`2014-15
`
`
`
`
`
`;===============================================================
`;
`; Background Loop Routine [Called By Exec]
`; (Back Ground checks for Offset and Gain/Attenuation
`; values, and computes Maximum PWM Duty Cycle [MAXOUT])
`;
`BACKGND MOVELF GAINADR,ADCSEL ;Setup ADC Subroutine for ATTEN
` call ADCVTR ;Call ADConverter Subroutine
` movwf ATTEN ;Store Attenuation Update
`MAXPWM movf ATTEN,W ;Calculated MAXOUT where...
` sublw MAXM ; MAXOUT=MAX-ATTEN
` movwf MAXOUT ;
` btfss STAT,C ;Is result < 0 ?
` clrf MAXOUT ;Clear MAXOUT if so
`;
`; [Inertial Sensor Leveled Test Software Logic]
`;
` MOVE INERTADR,ADCSEL ;Setup ADC Subroutine for INERT
` call ADCVTR ;Call ADConverter Subroutine
` movwf TEMP ;Store Inert Input Temp
` sublw ISLVLDH ;Compare Inrt In to Hgh Thresh
` btfsc STAT,C ;If I-Sensor<Threshold
` goto NLEVELD ; Then Clear Leveled Lamp
` movf TEMP,W ;Load Inrt Sensor Out to W Reg
` sublw ISLVLDL ;Compare Inrt In to Low Thresh
` btfss STAT,C ;If I-Sensor>Threshold
` goto NLEVELD ; Then Clear Leveled Lamp
`;
`; [[I-Sensor Leveled, Set Level Lamp]]
`;
`LEVELD bsf RB,LEVELED ;Turns on the LEVELED LED
`;
`; [[Determine New Inert Sensor Zero Point Value]]
`;
` movlw 0x03 ;Set up PCLATH for Table Lookup
` movwf PCLATH ;to address 03XX
` movf TEMP,W ;Setup Lookup Table Index
` call ICNVSN ;Call Lookup Table
` clrf PCLATH ;Clear PCLATH to Addr 00XX
` movwf INRTINIT ;Save Inert Sensor INIT Value
`;
` return ;Return
`;
`; [[I-Sensor Not Leveled, Clear Level Lamp]]
`;
`NLEVELD bcf RB,LEVELED ;Turns on the LEVELED LED
` return ;Return
`
`
`
`
`
`
`{8436985: }
`
`
`16
`
`Horizon Exhibit 2014
`Curt Manufacturing, LLC,v.Horizon Global Americas Inc. - IPR2019-00625
`2014-16
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`File Name: BRAKE.&H
`
`
`
`{8436985: }
`
`
`17
`
`Horizon Exhibit 2014
`Curt Manufacturing, LLC,v.Horizon Global Americas Inc. - IPR2019-00625
`2014-17
`
`
`
`
`
`;
`;====================================================================
`; REGISTER AND I/O DEFINITIONS, CONSTANT EQUATE STATEMENTS.
`;====================================================================
`;
`; Special Function Register Definitions
`;
`RTCC equ 0x01 ;Real Time Clock Counter Register
`PC equ 0x02 ;Program Counter
`STAT equ 0x03 ;CPU Status Register
`FSR equ 0x04 ;File Select Register
`RA equ 0x05 ;Port RA Read/Write Register
`RB equ 0x06 ;Port RB Read/Write Register
`ADCON0 equ 0x08 ;ADC Configuration Register 0
`ADRES equ 0x09 ;ADC Result Register
`PCLATH equ 0x0A ;
`INTCON equ 0x0B ;Interrupt Configuration Register
`W equ 0x0 ;CPU General Purpose Register/Accumulator
`;
`; The following Register Addresses Require the Upper
`; Register Page be Selected via STATUS Reg, Bit RP0=1
`;
`OPTN equ 0x81 ;Timer Options Register [Addr 81H]
`TRISA equ 0x85 ;Port A Tristate Driver Cntrl Reg [Addr 85H]
`TRISB equ 0x86 ;Port B Tristate Driver Cntrl Reg [Addr 86H]
`ADCON1 equ 0x88 ;ADC Configuration Register 1 [Addr 88H]
`;
`;Input Definitions:
`; (Digital)
`;
`BRAKELITE equ 0x06 ;RB6 Brake Light Input
`CURRENT equ 0x04 ;RB4 Tst Bit Output Current Sense Mod 3/25/93
`MAN_BRAKE equ 0x05 ;RB5 Manual Brake Input
`;OFFST_SEL equ 0x04 ;RB4 Offset Level Select Input [Disabled]
`FEATURE_0 equ 0x00 ;RB0 Ftr Bit 3210 Feature Selected
`FEATURE_1 equ 0x01 ;RB1 XX00 Time Actuator
`FEATURE_2 equ 0x02 ;RB2 XX01 Inert w Man Hndbrk
`FEATURE_3 equ 0x03 ;RB3 XX10 Inert w Rmpd Hndbrk
`; XX11 Reserved
`; (Analog)
`;
`ATTENIN equ 0x00 ;RA0/AIN0 Attenuation Input 0% to 100% DC
`SLOPEIN equ 0x01 ;RA1/AIN1 Ramp Time/Slope Input 3 to 10 Sec
`ANALIN equ 0x02 ;RA2/AIN2 Analog Brake Level 0% to 100% DC
`;CURRENT equ 0x03 ;RA3/AIN3 Output Current Sense
`INERTIN equ 0x00 ;RA0/AIN0 Mode 0-Time Activator (Not Req.)
`; RA1/AIN1 Mode 1-Inert. w Man Hndbrk
`; RA2/AIN2 Mode 2-Inert. w Rmpd Hndbrk
`;
`; Output Definations:
`;
`PWMOUT equ 0x07 ;RB7 PWM Brake Level Output (PWM)
`
`{8436985: }
`
`
`18
`
`Horizon Exhibit 2014
`Curt Manufacturing, LLC,v.Horizon Global Americas Inc. - IPR2019-00625
`2014-18
`
`
`
`
`
`;
`; Memory
`; (Variables)
`;
`ATTEN equ 0x0C ;Attenuation Factor 0-100% DC
`AUTODC equ 0x0D ;Automatic Braking Factor 0-100% DC
`DCOUT equ 0x0E ;Output Braking Duty Cycle 0-97.7%
`FEATURE equ 0x0F ;Scaled Feature settings
`H_BYTE equ 0x10 ;8X8 Mult Subroutine Result High Byte
`INERTADR equ 0x11 ;Inertial Sensor ADC Input Address
`INTW equ 0x12 ;Inter. Serv. Routine W Register Store
`INTSTAT equ 0x13 ;Inter. Serv. Routine CPU Status Store
`ADCSEL equ 0x14 ;ADC Mux Select Address
`MANDC equ 0x15 ;Manual Braking Factor 0-100% DC
`MAXOUT equ 0x16 ;Max Output Duty Cycle
`MULCND equ 0x17 ;8X8 Mult Subroutine 8 Bit Multiplicand
`MULPLR equ 0x18 ;8X8 Mult Subroutine 8 Bit Multiplier
`OFFSET equ 0x19 ;Offset % Duty Cycle 0% or 10% DC
`ADCTMR equ 0x1A ;ADC Startup Delay Timer
`PWMCNT equ 0x1B ;PWM Subroutine Counter 0 to 256 dec
`RAMPTMR equ 0x1C ;Ramp Funct Timer 0 to 10 s @ 0.1s update
`RTMRCNT equ 0x1D ;Ramp Timer Update Rate Counter
`SLOPE equ 0x1E ;Ramp Time/Slope Vaiable [3 sec to 10 sec]
`TEMP equ 0x1F ;Temporary ALU Storage Register
`WDCTNR equ 0x20 ;Software Watch Dog Timer Reset Counter
`SCALE equ 0x21 ;PWM Output Scaling Scratchpad Memory
`INTZ equ 0x22 ;Inter. Serv. Routine STATUS Z-BIT Store
`L_BYTE equ 0x23 ;8X8 Mult Subroutine Result Low Byte
`INERT0 equ 0x24 ;Inert Sensor Filter New Sample Reg
`INERT1 equ 0x25 ;Inert Sensor Filter Old Sample Reg
`SHRTCNT equ 0x26 ;Short/Overcurrent Fault Counter
`;
`; (Constants)
`;
`ANALADR equ 0x02 ;Analog Braking Sensor Input ADC Addr
`ADCDLY equ 0x0D ;10uS ADC Setup Delay [N=(Delay-250nS)/750nS]
`ADCINIT0 equ 0x80 ;ADCON0 Initialization Value
`ADCINTMSK equ 0x02 ;ADC Interrupt Mask Byte
`ADCMSK equ 0x18 ;ADC Multiplexer Address Mask
`ADCSETUP0 equ 0x81 ;ADCON0 Register Setup Byte
`ADCSETUP1 equ 0x00 ;ADCON1 Register Setup Byte
`GAINADR equ 0x00 ;Gain/Attenuation Input ADC Add
`INTCONSET equ 0xA0 ;INTCON Register Setup Byte, Clears All
`; Interrupts, Disables All Inter Sources
`; Except RTCC, and ENABLES the Interrupt
`; Logic.
`INTMANSET equ 0x20 ;INTCON Register Setup Byte, Clears All
`; Interrupts and Disables All Inter Sources
`; Except RTCC.
`INTMSK equ 0x07 ;INTCON Interrupt Mask Byte
`ISCALE equ 0x04 ;Inertial Sensor Scaling Byte [TBD]
`IOFFSET equ 0x19 ;Inertial Sensor Offset Byte [TBD]
`
`{8436985: }
`
`
`19
`
`Horizon Exhibit 2014
`Curt Manufacturing, LLC,v.Horizon Global Americas Inc. - IPR2019-00625
`2014-19
`
`
`
`
`
`MAXM equ 0xFA ;Maximum %DC Output [97.7% for Flting GND]
`OPTINIT equ 0x48 ;Option SFR Initialization Value
`RBINIT equ 0x7F ;RB Control Register Initialization Value
`RTCINTA equ 0xCE ;RTCC 12.5uS Timeout Value
`RTCINTB equ 0xD5 ;RTCC 10.5uS Timeout Value
`RTMRCNST equ 0x1E ;Ramp Timer Update Rate [1 dec =3.33mS]
`SETOFFSET equ 0x1A ;Offset Selected Value [(%OFFSET*256)/100%]
`SHORTADR equ 0x03 ;Current Sensor Input ADC Addr
`SHRTFLT equ 0x05 ;Short/Over Current Fault Count Threshold
`SHUTDWNI equ 0x76 ;Shutdwn Irs Current [2(AIN3)+2>=SHUTDWNI]
`SLOPEADR equ 0x01 ;Ramp Time/Slope Input ADC Addr
`WDTMRCNT equ 0x05 ;WD Timer SWR Rst Cntr Rate [1 dec =3.33mS]
`;
`; (Special Function Register Bit Definitions)
`;
`C equ 0x0 ;Carry Bit, Status Register
`DC equ 0x1 ;Decimal (Least Sig Nibble), Status Register
`Z equ 0x2 ;Zero Bit, Status Reqiter
`PD equ 0x3 ;
`TO equ 0x4 ;Timer 0 Input
`RBIF equ 0x0 ;Port RB Interrupt Flag
`INTIF equ 0x1 ;Ext Interrupt Input Flag
`RTIF equ 0x2 ;Real Time Counter Interrupt Flag
`ADIF equ 0x1 ;ADC Done Interrupt Flag
`DONE equ 0x2 ;ADC Done Status Flag, ADCON0 Register
`GO equ 0x2 ;ADC Conversion Start Cmnd, ADCON0 Register
`RP0 equ 0x5 ;Status Register, Register Page Select Bit
`;
`;
`
`
`
`
`
`{8436985: }
`
`
`20
`
`Horizon Exhibit 2014
`Curt Manufacturing, LLC,v.Horizon Global Americas Inc. - IPR2019-00625
`2014-20
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`File Name: BRAKE.CFG
`
`
`
`{8436985: }
`
`
`21
`
`Horizon Exhibit 2014
`Curt Manufacturing, LLC,v.Horizon Global Americas Inc. - IPR2019-00625
`2014-21
`
`
`
`
`
`[PCIB]
`Base=300
`
`[Serial]
`Port=0 19200 0
`
`[Processor]
`Type=30
`Mode=0 256 0 1 1 0 0 0
`
`[Pod]
`Cntl2=221
`Freq=16000000.000000
`
`[Code]
`File=C:\BRAKESRC\EXEC_A.OBJ
`
`[Window]
`Main=1 0 0 0 0
`Regs=1 8 25 1c9 a4
`Stack=0 8 25 1c9 a4
`Stack_Status=0 8 25 1c9 a4
`ProgLo=0 8 25 1c9 a4
`ProgHi=0 8 25 1c9 a4
`Trace=1 8 a0 15c 1dd
`SFR=1 198 108 278 1dd
`Timer=0 198 108 278 1dd
`Counter=0 198 108 278 1dd
`Modify=1 f8 c6 1be 1c7
`Run=1 1e8 36 26c d9
`Browse=0 1e8 36 26c d9
`Force=0 1e8 36 26c d9
`EEPROMMem=0 1e8 36 26c d9
`
`[Watch]
`Num=0
`
`[Break]
`Num=1
`Name[0]=90 90 1 Range#1 0x90 0x90
`
`[Trace]
`Num=1
`Name[0]=84 a0 1 Range#1 BACKGND 0xA0
`
`[Arm]
`Num=0
`
`[Trig]
`Num=0
`
`
`
`
`{8436985: }
`
`
`22
`
`Horizon Exhibit 2014
`Curt Manufacturing, LLC,v.Horizon Global Americas Inc. - IPR2019-00625
`2014-22
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`File Name: BRAKE.H
`
`
`
`{8436985: }
`
`
`23
`
`Horizon Exhibit 2014
`Curt Manufacturing, LLC,v.Horizon Global Americas Inc. - IPR2019-00625
`2014-23
`
`
`
`
`
`;
`;====================================================================
`; REGISTER AND I/O DEFINITIONS, CONSTANT EQUATE STATEMENTS.
`;====================================================================
`;
`; Special Function Register Definitions
`;
`RTCC equ 0x01 ;Real Time Clock Counter Register
`PC equ 0x02 ;Program Counter
`STAT equ 0x03 ;CPU Status Register
`FSR equ 0x04 ;File Select Register
`RA equ 0x05 ;Port RA Read/Write Register
`RB equ 0x06 ;Port RB Read/Write Register
`ADCON0 equ 0x08 ;ADC Configuration Register 0
`ADRES equ 0x09 ;ADC Result Register
`PCLATH equ 0x0A ;
`INTCON equ 0x0B ;Interrupt Configuration Register
`W equ 0x0 ;CPU General Purpose Register/Accumulator
`;
`; The following Register Addresses Require the Upper
`; Register Page be Selected via STATUS Reg, Bit RP0=1
`;
`OPTN equ 0x81 ;Timer Options Register [Addr 81H]
`TRISA equ 0x85 ;Port A Tristate Driver Cntrl Reg [Addr 85H]
`TRISB equ 0x86 ;Port B Tristate Driver Cntrl Reg [Addr 86H]
`ADCON1 equ 0x88 ;ADC Configuration Register 1 [Addr 88H]
`;
`;Input Definitions:
`; (Digital)
`;
`BRAKELITE equ 0x06 ;RB6 Brake Light Input
`CURRENT equ 0x04 ;RB4 Tst Bit Output Current Sense Mod 3/25/93
`MAN_BRAKE equ 0x05 ;RB5 Manual Brake Input
`;OFFST_SEL equ 0x04 ;RB4 Offset Level Select Input [Disabled]
`FEATURE_0 equ 0x00 ;RB0 Ftr Bit 3210 Feature Selected
`FEATURE_1 equ 0x01 ;RB1 XX00 Time Actuator
`FEATURE_2 equ 0x02 ;RB2 XX01 Inert w Man Hndbrk
`FEATURE_3 equ 0x03 ;RB3 XX10 Inert w Rmpd Hndbrk
`; XX11 Reserved
`; (Analog)
`;
`ATTENIN equ 0x00 ;RA0/AIN0 Attenuation Input 0% to 100% DC
`SLOPEIN equ 0x01 ;RA1/AIN1 Ramp Time/Slope Input 3 to 10 Sec
`ANALIN equ 0x02 ;RA2/AIN2 Analog Brake Level 0% to 100% DC
`;CURRENT equ 0x03 ;RA3/AIN3 Output Current Sense
`INERTIN equ 0x00 ;RA0/AIN0 Mode 0-Time Activator (Not Req.)
`; RA1/AIN1 Mode 1-Inert. w Man Hndbrk
`; RA2/AIN2 Mode 2-Inert. w Rmpd Hndbrk
`;
`; Output Definations:
`;
`PWMOUT equ 0x07 ;RB7 PWM Brake Level Output (PWM)
`
`{8436985: }
`
`
`24
`
`Horizon Exhibit 2014
`Curt Manufacturing, LLC,v.Horizon Global Americas Inc. - IPR2019-00625
`2014-24
`
`
`
`
`
`;
`; Memory
`; (Variables)
`;
`ATTEN equ 0x0C ;Attenuation Factor 0-100% DC
`AUTODC equ 0x0D ;Automatic Braking Factor 0-100% DC
`DCOUT equ 0x0E ;Output Braking Duty Cycle 0-97.7%
`FEATURE equ 0x0F ;Scaled Feature settings
`H_BYTE equ 0x10 ;8X8 Mult Subroutine Result High Byte
`INERTADR equ 0x11 ;Inertial Sensor ADC Input Address
`INTW equ 0x12 ;Inter. Serv. Routine W Register Store
`INTSTAT equ 0x13 ;Inter. Serv. Routine CPU Status Store
`ADCSEL equ 0x14 ;ADC Mux Select Address
`MANDC equ 0x15 ;Manual Braking Factor 0-100% DC
`MAXOUT equ 0x16 ;Max Output Duty Cycle
`MULCND equ 0x17 ;8X8 Mult Subroutine 8 Bit Multiplicand
`MULPLR equ 0x18 ;8X8 Mult Subroutine 8 Bit Multiplier
`OFFSET equ 0x19 ;Offset % Duty Cycle 0% or 10% DC
`ADCTMR equ 0x1A ;ADC Startup Delay Timer
`PWMCNT equ 0x1B ;PWM Subroutine Counter 0 to 256 dec
`RAMPTMR equ 0x1C ;Ramp Funct Timer 0 to 10 s @ 0.1s update
`RTMRCNT equ 0x1D ;Ramp Timer Update Rate Counter
`SLOPE equ 0x1E ;Ramp Time/Slope Vaiable [3 sec to 10 sec]
`TEMP equ 0x1F ;Temporary ALU Storage Register
`WDCTNR equ 0x20 ;Software Watch Dog Timer Reset Counter
`SCALE equ 0x21 ;PWM Output Scaling Scratchpad Memory
`INTZ equ 0x22 ;Inter. Serv. Routine STATUS Z-BIT Store
`L_BYTE equ 0x23 ;8X8 Mult Subroutine Result Low Byte
`INERT0 equ 0x24 ;Inert Sensor Filter New Sample Reg
`INERT1 equ 0x25 ;Inert Sensor Filter Old Sample Reg
`SHRTCNT equ 0x26 ;Short/Overcurrent Fault Counter
`;
`; (Constants)
`;
`ANALADR equ 0x02 ;Analog Braking Sensor Input ADC Addr
`ADCDLY equ 0x0D ;10uS ADC Setup Delay [N=(Delay-250nS)/750nS]
`ADCINIT0 equ 0x80 ;ADCON0 Initialization Value
`ADCINTMSK equ 0x02 ;ADC Interrupt Mask Byte
`ADCMSK equ 0x18 ;ADC Multiplexer Address Mask
`ADCSETUP0 equ 0x81 ;ADCON0 Register Setup Byte
`ADCSETUP1 equ 0x00 ;ADCON1 Register Setup Byte
`GAINADR equ 0x00 ;Gain/Attenuation Input ADC Add
`INTCONSET equ 0xA0 ;INTCON Register Setup Byte, Clears All
`; Interrupts, Disables All Inter Sources
`; Except RTCC, and ENABLES the Interrupt
`; Logic.
`INTMANSET equ 0x20 ;INTCON Register Setup Byte