-
Notifications
You must be signed in to change notification settings - Fork 388
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add support for Maytech 20A, 30A, 40A, 60A with calibrated complement…
…ary PWM.
- Loading branch information
Showing
6 changed files
with
247 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
;******************************* | ||
;* Maytech 30A and 20A * | ||
;* Pin-compatible with bs_nfet * | ||
;******************************* | ||
|
||
.equ F_CPU = 16000000 | ||
.equ USE_INT0 = 1 | ||
.equ USE_I2C = 0 ; We could, but FETs are on the I2C ports | ||
.equ USE_UART = 0 | ||
.equ USE_ICP = 0 | ||
.equ COMP_PWM = 1 | ||
|
||
.equ DEAD_LOW_NS = 300 ; 20A and 30A boards clean at 300ns | ||
.equ DEAD_HIGH_NS = 300 | ||
|
||
;********************* | ||
; PORT D definitions * | ||
;********************* | ||
;.equ = 7 | ||
;.equ = 6 | ||
.equ AnFET = 5 | ||
.equ ApFET = 4 | ||
;.equ = 3 | ||
.equ rcp_in = 2 | ||
|
||
.equ INIT_PD = (1<<ApFET) | ||
.equ DIR_PD = (1<<AnFET)+(1<<ApFET) | ||
|
||
.equ AnFET_port = PORTD | ||
.equ ApFET_port = PORTD | ||
|
||
;********************* | ||
; PORT C definitions * | ||
;********************* | ||
.equ mux_b = 7 ; ADC7 | ||
.equ mux_a = 6 ; ADC6 | ||
.equ BpFET = 5 | ||
.equ BnFET = 4 | ||
.equ CpFET = 3 | ||
.equ mux_voltage = 2 ; ADC2 voltage input (220k from Vbat, 51k to gnd, 10.10V -> 1.900V at ADC2) | ||
.equ mux_temperature = 1 ; ADC1 temperature input (some boards) (10k NTC to 5V, 820 to gnd) | ||
.equ mux_c = 0 ; ADC0 | ||
|
||
.equ O_POWER = 220 | ||
.equ O_GROUND = 51 | ||
|
||
.equ INIT_PC = (1<<BpFET)+(1<<CpFET) | ||
.equ DIR_PC = (1<<BnFET)+(1<<BpFET)+(1<<CpFET) | ||
|
||
.equ BpFET_port = PORTC | ||
.equ BnFET_port = PORTC | ||
.equ CpFET_port = PORTC | ||
|
||
;********************* | ||
; PORT B definitions * | ||
;********************* | ||
;.equ = 7 | ||
;.equ = 6 | ||
;.equ = 5 (sck stk200 interface) | ||
;.equ = 4 (miso stk200 interface) | ||
;.equ = 3 (mosi stk200 interface) | ||
.equ GND_PIN = 2 ; Seems to be grounded on this board | ||
;.equ = 1 | ||
.equ CnFET = 0 | ||
|
||
.equ INIT_PB = 0 | ||
.equ DIR_PB = (1<<CnFET) | ||
|
||
.equ CnFET_port = PORTB | ||
|
||
.MACRO RED_on | ||
.ENDMACRO | ||
.MACRO RED_off | ||
.ENDMACRO | ||
.MACRO GRN_on | ||
.ENDMACRO | ||
.MACRO GRN_off | ||
.ENDMACRO |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
;***************************** | ||
;* Maytech 40A * | ||
;* Pin-compatible with bs40a * | ||
;***************************** | ||
|
||
.equ F_CPU = 16000000 | ||
.equ USE_INT0 = 1 | ||
.equ USE_I2C = 0 ; We could, but FETs are on the I2C ports | ||
.equ USE_UART = 0 | ||
.equ USE_ICP = 0 | ||
.equ COMP_PWM = 1 | ||
|
||
.equ DEAD_LOW_NS = 950 ; Noise at 700ns, 800ns, clean at 850ns, 900ns | ||
.equ DEAD_HIGH_NS = 950 ; Noise at 850ns, mostly clean at 900ns, clean at 950ns | ||
|
||
;********************* | ||
; PORT D definitions * | ||
;********************* | ||
;.equ = 7 | ||
;.equ = 6 | ||
.equ CnFET = 5 | ||
.equ ApFET = 4 | ||
;.equ = 3 | ||
.equ rcp_in = 2 | ||
|
||
.equ INIT_PD = 0 | ||
.equ DIR_PD = (1<<CnFET)+(1<<ApFET) | ||
|
||
.equ CnFET_port = PORTD | ||
.equ ApFET_port = PORTD | ||
|
||
;********************* | ||
; PORT C definitions * | ||
;********************* | ||
.equ mux_b = 7 ; ADC7 | ||
.equ mux_a = 6 ; ADC6 | ||
.equ BpFET = 5 | ||
.equ BnFET = 4 | ||
.equ CpFET = 3 | ||
.equ mux_voltage = 2 ; ADC2 voltage input (220k from Vbat, 51k to gnd, 10.10V -> 1.900V at ADC2) | ||
;.equ = 1 | ||
.equ mux_c = 0 ; ADC0 | ||
|
||
.equ O_POWER = 220 | ||
.equ O_GROUND = 51 | ||
|
||
.equ INIT_PC = 0 | ||
.equ DIR_PC = (1<<BnFET)+(1<<BpFET)+(1<<CpFET) | ||
|
||
.equ BpFET_port = PORTC | ||
.equ BnFET_port = PORTC | ||
.equ CpFET_port = PORTC | ||
|
||
;********************* | ||
; PORT B definitions * | ||
;********************* | ||
;.equ = 7 | ||
;.equ = 6 | ||
;.equ = 5 (sck stk200 interface) | ||
;.equ = 4 (miso stk200 interface) | ||
;.equ = 3 (mosi stk200 interface) | ||
;.equ = 2 | ||
;.equ = 1 | ||
.equ AnFET = 0 | ||
|
||
.equ INIT_PB = 0 | ||
.equ DIR_PB = (1<<AnFET) | ||
|
||
.equ AnFET_port = PORTB | ||
|
||
.MACRO RED_on | ||
.ENDMACRO | ||
.MACRO RED_off | ||
.ENDMACRO | ||
.MACRO GRN_on | ||
.ENDMACRO | ||
.MACRO GRN_off | ||
.ENDMACRO |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
;***************************** | ||
;* Maytech 60A * | ||
;* Pin-compatible with bs40a * | ||
;***************************** | ||
|
||
.equ F_CPU = 16000000 | ||
.equ USE_INT0 = 1 | ||
.equ USE_I2C = 0 ; We could, but FETs are on the I2C ports | ||
.equ USE_UART = 0 | ||
.equ USE_ICP = 0 | ||
.equ COMP_PWM = 1 | ||
|
||
.equ DEAD_LOW_NS = 1050 ; Noise at 900, 950, clean at 1000, 1050, 1100 | ||
.equ DEAD_HIGH_NS = 1050 ; Noise at 800, 900, gone at 1000, clean at 1050, 1100 | ||
|
||
;********************* | ||
; PORT D definitions * | ||
;********************* | ||
;.equ = 7 | ||
;.equ = 6 | ||
.equ CnFET = 5 | ||
.equ ApFET = 4 | ||
;.equ = 3 | ||
.equ rcp_in = 2 | ||
|
||
.equ INIT_PD = 0 | ||
.equ DIR_PD = (1<<CnFET)+(1<<ApFET) | ||
|
||
.equ CnFET_port = PORTD | ||
.equ ApFET_port = PORTD | ||
|
||
;********************* | ||
; PORT C definitions * | ||
;********************* | ||
.equ mux_b = 7 ; ADC7 | ||
.equ mux_a = 6 ; ADC6 | ||
.equ BpFET = 5 | ||
.equ BnFET = 4 | ||
.equ CpFET = 3 | ||
.equ mux_voltage = 2 ; ADC2 voltage input (220k from Vbat, 51k to gnd, 10.10V -> 1.900V at ADC2) | ||
;.equ = 1 | ||
.equ mux_c = 0 ; ADC0 | ||
|
||
.equ O_POWER = 220 | ||
.equ O_GROUND = 51 | ||
|
||
.equ INIT_PC = 0 | ||
.equ DIR_PC = (1<<BnFET)+(1<<BpFET)+(1<<CpFET) | ||
|
||
.equ BpFET_port = PORTC | ||
.equ BnFET_port = PORTC | ||
.equ CpFET_port = PORTC | ||
|
||
;********************* | ||
; PORT B definitions * | ||
;********************* | ||
;.equ = 7 | ||
;.equ = 6 | ||
;.equ = 5 (sck stk200 interface) | ||
;.equ = 4 (miso stk200 interface) | ||
;.equ = 3 (mosi stk200 interface) | ||
;.equ = 2 | ||
;.equ = 1 | ||
.equ AnFET = 0 | ||
|
||
.equ INIT_PB = 0 | ||
.equ DIR_PB = (1<<AnFET) | ||
|
||
.equ AnFET_port = PORTB | ||
|
||
.MACRO RED_on | ||
.ENDMACRO | ||
.MACRO RED_off | ||
.ENDMACRO | ||
.MACRO GRN_on | ||
.ENDMACRO | ||
.MACRO GRN_off | ||
.ENDMACRO |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters