Here is my code in assem, I can't get anything but a 1 out of the
TPU3 A CH0
I am trying to get a squarewave out of CH0 can someone help?
* Initialization
.text
.org 0x4000 ;begin at memory location
$4000
* Disable channels during initialization by clearing channel priority
register (CPR)
addi r5,0,$0000 ;$0000>r5
addis r6,0,$0030 ;TPUA address upper word
($0030)>r6[0:15]
addi r6,r6,$401E ;CPR1_A address lower word
($401E)>r6[16:31]
sthx r5,0,r6 ;(r5)>CPR1 - ch2,1,0=disabled
* Set up channel function select registers (CFSR)
addi r5,0,$01A3 ;$07A9>r5
addis r6,0,$0030 ;TPUA address upper word
($0030)>r6[0:15]
addi r6,r6,$4012 ;CFSR3_A address lower word
($4012)>r6[16:31]
sthx r5,0,r6 ;(r5)>CFSR3_A - ch2=1=SPWM,
ch1=A=ITC, ch0=3=PWM
* Set up Host Sequence Register (HSQR)
addi r5,0,$000C ;$000C>r5
addis r6,0,$0030 ;TPUA address upper word
($0030)>r6[0:15]
addi r6,r6,$4016 ;HSQR1_A address lower word
($4016)>r6[16:31]
sthx r5,0,r6 ;(r5)>HSQR1 ch1
ITC=continual&links, ch2 SPWM=mode 0
* PWM Initialization for Channel 0
addi r5,0,$0092 ;$0092>r5
addis r6,0,$0030 ;TPUA address upper word
($0030)>r6[0:15]
addi r6,r6,$4100 ;TPUA PRAM0_0 address lower
word ($4100)>r6[16:31]
sthx r5,0,r6 ;(r5)>TPUA PRAM0_0=Ch
control, use TCR1, init to pin=low
addi r5,0,$0500 ;$0500>r5
addis r6,0,$0030 ;TPUA address upper word
($0030)>r6[0:15]
addi r6,r6,$4104 ;TPUA PRAM0_2 address lower
word ($4104)>r6[16:31]
sthx r5,0,r6 ;(r5)>TPUA PRAM0_2 pulse
hightime =$500
addi r5,0,$1000 ;$1000>r5
addis r6,0,$0030 ;TPUA address upper word
($0030)>r6[0:15]
addi r6,r6,$4106 ;TPUA PRAM0_3 address lower
word ($4106)>r6[16:31]
sthx r5,0,r6 ;(r5)>TPUA PRAM0_3 pulse
period=$1000
* ITC Initialization for Channel 1
addi r5,0,$0007 ;$0007>r5
addis r6,0,$0030 ;TPUA address upper word
($0030)>r6[0:15]
addi r6,r6,$4110 ;TPUA PRAM1_0 address lower
word ($4110)>r6[16:31]
sthx r5,0,r6 ;(r5)>TPUA PRAM1_0=Ch
control, detect rising edge, use TCR1
addi r5,0,$210E ;$210E>r5
addis r6,0,$0030 ;TPUA address upper word
($0030)>r6[0:15]
addi r6,r6,$4112 ;TPUA PRAM1_1 address lower
word ($4112)>r6[16:31]
sthx r5,0,r6 ;(r5)>TPUA PRAM1_1=start link
ch=2; link ch cnt=1
addi r5,0,$0001 ;$0001>r5
addis r6,0,$0030 ;TPUA address upper word
($0030)>r6[0:15]
addi r6,r6,$4114 ;TPUA PRAM1_2 address lower
word ($4114)>r6[16:31]
sthx r5,0,r6 ;(r5)>TPUA PRAM1_2 max count=1
* SPWM Initialization for Channel 2
addi r5,0,$0092 ;$0092>r5
addis r6,0,$0300 ;TPUA address upper word
($0030)>r6[0:15]
addi r6,r6,$4120 ;TPUA PRAM2_0 address lower
word ($4120)>r6[16:31]
sthx r5,0,r6 ;(r5)>TPUA PRAM2_0=Ch
control, use TCR1, init to pin=low
addi r5,0,$0050 ;$0050>r5
addis r6,0,$0030 ;TPUA address upper word
($0030)>r6[0:15]
addi r6,r6,$4124 ;TPUA PRAM2_2 address lower
word ($4124)>r6[16:31]
sthx r5,0,r6 ;(r5)>TPUA PRAM2_2
hightime=$50
addi r5,0,$0100 ;$0100>r5
addis r6,0,$0300 ;TPUA address upper word
($0030)>r6[0:15]
addi r6,r6,$4126 ;TPUA PRAM2_3 address lower
word ($4126)>r6[16:31]
sthx r5,0,r6 ;(r5)>TPUA PRAM2_3 period=$100
addi r5,0,$0018 ;$0018>r5
addis r6,0,$0030 ;TPUA address upper word
($0030)>r6[0:15]
addi r6,r6,$4128 ;TPUA PRAM2_4 address lower
word ($4128)>r6[16:31]
sthx r5,0,r6 ;(r5)>TPUA PRAM2_4
refaddr1=ch1parm4 ($0018)
addi r5,0,$0500 ;$0500>r5
addis r6,0,$0030 ;TPUA address upper word
($0030)>r6[0:15]
addi r6,r6,$412A ;TPUA PRAM2_5 address lower
word ($412A)>r6[16:31]
sthx r5,0,r6 ;(r5)>TPUA PRAM2_5 delay =
$0500
* Set channel priority register (CPR)
addi r5,0,$00FF ;$00FF>r5
addis r6,0,$0030 ;TPUA address upper word
($0030)>r6[0:15]
addi r6,r6,$401E ;CPR1_A address lower word
($401E)>r6[16:31]
sthx r5,0,r6 ;(r5)>CPR1 - ch2,1,0=high
priority
* Service Initialization Request (HSRR)
addi r5,0,$0026 ;$0026>r5
addis r6,0,$0030 ;TPUA address upper word
($0030)>r6[0:15]
addi r6,r6,$401A ;HSRR1_A address lower word
($401A)>r6[16:31]
sthx r5,0,r6 ;(r5)>HSRR1 - ch1 ITC=init
TCR mode,ch2,0 PWM=init
finish:
b finish