aP23KIS Demo Board user manual
for aP23xxx I2C & SPI interface control
Part no. : aP23KIS
Pcb no. : 6601
For body : aP23085, aP23170, aP23341, aP23682 --- 8 pin & 16 pin
Mcu simulator the I2C & SPI interface control for aP23xxx IC
1. ADAPTER 5V or POWER SUPPLY 5V
2. Select slide sw. [ I2C ] or [ SPI ] control
3. DAC or PWM select :
1/9 ver1.2
4. Set up message address [ DIP SW. x 8 ] :
ex: address-6
5. Insert aP23xxx IC [ 8 pin ] or [ 16 pin ] to TEXTOOL :
6. Power sw. = [ ON ]
7. Key x 8 : PU-PLAY-PD , VOL+ , VOL- , PAUSE , RESUME , PLAY , PU , PD
7a. PU-PLAY-PD key :
7a1. PWM : send command [ PU1 = 101001xxxxxxxxxx ] to aP23xxx IC
& wake up ic without RampUp
DAC : send command [ PU2 = 101010xxxxxxxxxx ] to aP23xxx IC
& wake up ic with RampUp about 160ms
7a2. Send command [ PLAY = 100110-0000000110] to aP23xxx IC
& start playing [sound-06] & busy-H [ or busy-L] …………………
7a3. Detect out1 pin = busy-H to busy-L [or busy-L to busy-H] ………….. Loop [7a3]
23xxx 8 pin : out1 pin-5[ SBT ]
23xxx 16 pin : out1 pin-8 [ out1]
7a4. PWM : send command [PD1= 101101xxxxxxxxxx ] to aP23xxx IC
& IC shut down without RampDown
DAC : send command [PD2= 101110xxxxxxxxxx ] to aP23xxx IC
& IC shut down with RampDown about 160ms
7b. VOL+ key : volume level control [ ADD +1 ]
Sound playing ……. send command [ VOL++ = 010010xxxxxxxxxx ]
7c. VOL- key : volume level control [ DEC -1 ]
Sound playing ……. send command [ VOL-- = 010101xxxxxxxxxx ]
7d. PAUSE key :
Sound playing ……. send command [ PAUSE = 011001xxxxxxxxxx ]
7e. RESUME key :
Sound playing ……. send command [ RESUME = 011010xxxxxxxxxx ]
2/9 ver1.2
7f. PU key : only wake up IC & no play
PWM : send command [ PU1 = 101001xxxxxxxxxx ] to aP23xxx IC
& wake up ic without RampUp
DAC : send command [ PU2 = 101010xxxxxxxxxx ] to aP23xxx IC
& wake up ic with RampUp about 160ms
7g. PD key : stop play & IC shut down
PWM : send command [PD1= 101101xxxxxxxxxx ] to 23xxx IC
& IC shut down without RampDown
DAC : send command [PD2= 101110xxxxxxxxxx ] to aP23xxx IC
& IC shut down with RampDown about 160ms
7h. PLAY key :
7h1. IC wake up :
Send command [ PLAY = 100110-0000000110] to aP23xxx IC
start playing [sound-06] & busy-H [ or busy-L] …………………
7h2. IC SLEEP [ no wake up ] :
Send command [ PLAY = 100110-0000000110] to aP23xxx IC
IC wake up --- PWM no Ramp , DAC with RampUp about 160ms
start playing [sound-06] & busy-H [ or busy-L] …………………
PS : play ended , ic no shut down
3/9 ver1.2
I2C mode interface control :
I2C mode : S2 = SCLK // S3 = SDATA // SBT= busy-H
D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
PLAY 1 0 0 1 1 0 098h + address [ A9~A0 ]
PU1 1 0 1 0 0 1 0A4h + address don’t care --- without Ramp-up
PD1 1 0 1 1 0 1 0B4h + address don’t care --- without Ramp-down
PU2 1 0 1 0 1 0 0A8h + address don’t care --- with Ramp-up
PD2 1 0 1 1 1 0 0B8h + address don’t care --- with Ramp-down
VOL 0 1 0 0 0 1 0 0 0 0 0 0 VOL [ 3:0 ]
VOL++ 0 1 0 0 1 0 048h + address don’t care
VOL-- 0 1 0 1 0 1 054h + address don’t care
1. Power on create 一 [ stop condition ], ex: PD1 or PD2
IC enter I2C mode & IC shut down
2. I2C mode data format :
2a. START condition : S3[sdata] high to low + delay + S2[sclk] high to low
2b. D15~D10 : command bit
2c. D9~D0 : address bit
2d. SCK low to high [ LATCH ] the [ DI ]
2e. STOP condition : S2[sclk] low to high + delay + S3[sdata] low to high
2f. S3[sadat] change the data,must be S2[sclk]=low
3. IC wake up : send PU1/PU2
3a. PU1 = 0A4h + address don’t care --- without Ramp-up --- for PWM
4/9 ver1.2
3b. PU2 = 0A8h + address don’t care --- with Ramp-up about 160ms --- for DAC
4. PLAY command :
4a. PLAY command :
--- SBT[ 8 pin ] / OUT1 [ 16 pin ] : set up [ busy-H ]
Play address-00 [ 1001-1000-0000-0000 ] = playing sw1.
Play address-01 [ 1001-1000-0000-0001 ] = playing sw2.
Play address-05 [ 1001-1000-0000-0101 ] = playing sw6.
Play address-11 [ 1001-1000-0000-1011 ] = playing sw12.
Send play command : playing sound & busy pin low to high ………….
4b. Stop play :
4b1. Send PD1 or PD2 : stop play & IC shut down
4b2. Playing…… retrigger play [ mute ]
5. play ended & shut down :
5a. play ended : check busy pin high to low
Playing sound …… : busy pin = high
Play ended : busy pin --- High to Low
5b1 send next play command & playing new sound ……..
5b2. IC shut down : send PD1/PD2 stop play & ic shut down
PD1 : without Ramp down for PWM
PD2 : with Ramp down 160ms for DAC
5/9 ver1.2
6. Flow chart :
6/9 ver1.2
SPI mode interface control :
SPI mode : S1 = CS // S2 = SCLK // S3 = SDATA//out1 = busy-H
D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
PLAY 1 0 0 1 1 0 098h + address [ A9~A0 ]
PU1 1 0 1 0 0 1 0A4h + address don’t care --- without Ramp-up
PD1 1 0 1 1 0 1 0B4h + address don’t care --- without Ramp-down
PU2 1 0 1 0 1 0 0A8h + address don’t care --- with Ramp-up
PD2 1 0 1 1 1 0 0B8h + address don’t care --- with Ramp-down
VOL 0 1 0 0 0 1 0 0 0 0 0 0 VOL [ 3:0 ]
VOL++ 0 1 0 0 1 0 048h + address don’t care
VOL-- 0 1 0 1 0 1 054h + address don’t care
1. SPI mode data format :
1a.. D15~D10 : command bit
1b.. D9~D0 : address bit
1d. SCK low to high [ LATCH ] the [ DI ]
1e. S3[sadat] change the data,must be S2[sclk]=low
2. IC wake up : send PU1/PU2
2a. PU1 = 0A4h + address don’t care --- without Ramp-up --- for PWM
2b. PU2 = 0A8h + address don’t care --- with Ramp-up about 160ms --- for DAC
7/9 ver1.2
3. PLAY command :
3a. PLAY command :
--- SBT [ 8 pin ] / OUT1 [ 16 pin ] : set up [ busy-H ]
Play address-00 [ 1001-1000-0000-0000 ] = playing sw1.
Play address-01 [ 1001-1000-0000-0001 ] = playing sw2.
Play address-05 [ 1001-1000-0000-0101 ] = playing sw6.
Play address-11 [ 1001-1000-0000-1011 ] = playing sw12.
Send play command : playing sound & busy pin low to high ………….
3b. Stop play :
Send PD1 or PD2 : stop play & IC shut down
Playing…… retrigger play [ mute ]
4. play ended & shut down :
5a. play ended : check busy pin high to low
Playing sound …… : busy pin = high
Play ended : busy pin --- High to Low
5b1 send next play command & playing new sound ……..
5b2. IC shut down : send PD1/PD2 stop play & ic shut down
PD1 : without Ramp down for PWM
PD2 : with Ramp down 160ms for DAC
8/9 ver1.2
Play command v.s. Load command :
1. play one times :
play command = Load command
2. repeat playing …. :
2a. play command repeat playing :
2a1. playing sound[ N ] ……. & busy pin low to high
2a2. check play ended ? …… busy high to low
2a3. send play command address[ N+1 ] & play sound[ N+1 ]
2a4. loop play with [ gap ] , gap time = clk x 16 or [ cs ] time
2b. LOAD command repeat playing :
2b1. Send pup command for Ic wake up
PU1 : for PWM without Ramp-up
PU2 : for DAC with Ramp-up 160ms
2b2. Send [ LOAD ] command & start play sound…………
2b3. Playing……check Load output pin & send next load command
& LOAD out1 pin low to high
2b3. Current sound play ended auto repeat playing ……..
& load out1 pin = high to low
2b4. ……… Loop play : no gap
2b5 stop play : load play [ mute ] + send PD1/PD2 command for shut down
9/9 ver1.2