Вот полная инициализация (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено SM 13 февраля 2005 г. 16:33
В ответ на: Кто работал с TLV320AIC23 есть вопросы (+) отправлено dementiy 13 февраля 2005 г. 16:20

и портов проца, и кодека. Проц VC5501. Под прием и передачу в DMA. Кодек мастером, но как помню не IIS режим, а обычный, для стандартного сериального синхронного последовательного порта.


CODEC_CTL: .macro adr,data
mov adr << #9, ac0
or data,ac0
call send_spi
.endm

....................................................................

; MCBSP #0 - SPI, codec control

mov #0, port(#SPCR1_0) ; RRST=0
and #0, port(#SPCR2_0) ; XRST=0, GRST=0, frst=0

rpt #100h
nop

mov #1800h,port(#SPCR1_0)
mov #0,port(#SPCR2_0)
mov #0b09h,port(#PCR0) ; 0b09
mov #0040h,port(#RCR1_0)
mov #1,port(#RCR2_0) ;
mov #0040h,port(#XCR1_0)
mov #1,port(#XCR2_0) ;
mov #1314h,port(#SRGR1_0) ; 00FF
mov #2000h,port(#SRGR2_0)
mov #0,port(#MCR1_0)
mov #0,port(#MCR2_0)

or #0C0h,port(#SPCR2_0) ; enable SR generator

rpt #0F000h
nop ; wait for >=2 SR periods

or #1,port(#SPCR2_0)
or #1,port(#SPCR1_0)

rpt #0F000h
nop ; wait for >=2 SR periods


CODEC_CTL #0Fh,#0h
rpt #0F000h
nop ; wait for >=2 SR periods

CODEC_CTL #0Fh,#0h
rpt #0F000h
nop ; wait for >=2 SR periods

CODEC_CTL #0Fh,#0h
rpt #0F000h
nop ; wait for >=2 SR periods

CODEC_CTL #0,#01Ch
CODEC_CTL #1,#01Ch
CODEC_CTL #2,#0F9h
CODEC_CTL #3,#0F9h
CODEC_CTL #4,#012h ; 015
CODEC_CTL #5,#000h ;002h
CODEC_CTL #6,#100h
CODEC_CTL #7,#053h ; 13h for slave
CODEC_CTL #8,#018h
CODEC_CTL #9,#001h

; MCBSP #1 - codec data

mov #0, port(#SPCR1_1) ; RRST=0
and #0, port(#SPCR2_1) ; XRST=0, GRST=0, frst=0

rpt #100h
nop

mov #0000h,port(#SPCR1_1)
mov #0000h,port(#SPCR2_1)
mov #0003h,port(#PCR1) ; 0b09
mov #0140h,port(#RCR1_1)
mov #0001h,port(#RCR2_1) ;
mov #0140h,port(#XCR1_1)
mov #0001h,port(#XCR2_1) ;
mov #0047h,port(#SRGR1_1) ; 00FF
mov #0000h,port(#SRGR2_1)
mov #0000h,port(#MCR1_1)
mov #0000h,port(#MCR2_1)

rpt #1000
nop

; rpt #0F000h
; nop

; DMAC's
; #0 - RX
;fedcba9876543210
mov #0100011101000101b, port(#DMA_CCR0)
mov #0000000000000000b, port(#DMA_CICR0)
mov #0000000000001101b, port(#DMA_CSDP0)
mov #(DRR1_1 << 1) & 0FFFFh, port(#DMA_CSSA_L0)
mov #(DRR1_1 >> 15) , port(#DMA_CSSA_U0)
mov #(RXBUF << 1) & 0FFFFh, port(#DMA_CDSA_L0)
mov #(RXBUF >> 15) , port(#DMA_CDSA_U0)
mov #BUFSZ*2, port(#DMA_CEN0)
mov #2, port(#DMA_CFN0)

; #1 - TX
;fedcba9876543210
mov #0001011101000110b, port(#DMA_CCR1)
mov #0000000000101000b, port(#DMA_CICR1)
mov #0000011000000001b, port(#DMA_CSDP1)
mov #(TXBUF << 1) & 0FFFFh, port(#DMA_CSSA_L1)
mov #(TXBUF >> 15) , port(#DMA_CSSA_U1)
mov #(DXR1_1 << 1) & 0FFFFh, port(#DMA_CDSA_L1)
mov #(DXR1_1 >> 15) , port(#DMA_CDSA_U1)
mov #BUFSZ*2, port(#DMA_CEN1)
mov #2, port(#DMA_CFN1)


rpt #200h
nop

or #80h,port(#DMA_CCR0)
or #80h,port(#DMA_CCR1)


.....................................................................................

send_spi: btst #1,port(#SPCR2_0),TC1
bcc send_spi,!TC1
mov ac0,port(#DXR1_0)
ret


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru