hola señores del foro
ante todo agradezco el que ustedes me puedan ayudar en las solucion del siguiente problema.
estoy tratando de transmitir desde un DSPIC30F3014 con oscilador externo de cristal de 4MHZ, datos hacia un convertidor digital analogo (D/A AD5764 de analog devices), estoy intentando mandar datos de 16 bits a traves del pin SDO, con el circuito aun desacoplado, pero mirando la salida en un osciloscopio, este no me muestra nada a la salida mas que una linea en cero volt.. Me paso entonces a mirar con el osciloscopio la señal de reloj SCLK e igualmente me meustra una linea continua en cero volt. si la amplio en la escala de volt. me muestra es mucho ruido.
no entiendo entonces la situacion, les escibo entonces el codigo de la trasmison hecho en MPLAB, con su respectva explicacion para determinar dodne puede ser el error
transmision1:
mov contador,W2; **** se mueve a W2 el contebidod e datos a enviar
BCLR IFS0,#8;**** clareo la bandfera de interrupcion
BCLR IEC0,#8;*** deshabilito la interrupcion
mov #0x077F,W0,***mueve el literal a W0
mov W0,SPI1CON; configuro el SPICON en modo maestro, trans. 16bits preesacalado y
prim y sec. a 1:1
mov #0x8000,W0,;*** habilito el modulo con SPIEN=1
mov W0,SPI1STAT
mov W2,SPI1BUF;***muevo los datos a SPIBUF
lead: BTSS SPI1STAT,#1;***verifico el estado del buffer
bra lead
BCLR IFS0,#8 ;*** clareo bandera de interrupcion
return ; **retirna al llamado
como pueden ver señores , hago todo lo que especifica la guia del modulo, pero no se a que se debe el no funcionamiento del mismo. agradezco su colaboracion
anexo ahora el codigo completo, ya que la señal de dato proviene de un contador ascendente descendente
.equ _p30F3014,1
.include "p30F3014.inc"
.global _main
.global contador
.section .data
contador: .hword 0x0000
.section .text
retardo: mov #0x00FF,W3
tres: mov #0x0052,W2
dos: mov #0x002F,W1
uno: dec W1,W1
bra NZ,uno
dec W2,W2
bra NZ,dos
dec W3,W3
bra NZ,tres
return
transmision1:
mov contador,W2
BCLR IFS0,#8
BCLR IEC0,#8
mov #0x077F,W0
mov W0,SPI1CON
mov #0x8000,W0
mov W0,SPI1STAT
mov W2,SPI1BUF
lead: BTSS SPI1STAT,#1
bra lead
BCLR IFS0,#8
return
_main:
mov #0xFFFF,W0
mov W0,ADPCFG
CLR TRISB
CLR PORTB
CLR TRISD
CLR PORTD
CLR contador
BCLR PORTD,#0
ascendente: BSET PORTD,#1
mov contador,W0
mov W0,PORTB
call retardo
call transmision1
inc contador
mov contador,W0
mov #0xFFFF,W1
cpseq W1,W0
goto ascendente
goto descendente
descendente:
mov contador, W0
mov W0,PORTB
call transmision1
dec contador
mov contador,W0
mov #0x0000,W1
cpseq W1,W0
goto descendente
goto ascendente
.end
MIL GRACIAS COMPAÑEROS