TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: albertoie en 01 de Abril de 2008, 20:22:33
-
buenas tardes,
la duda que me ocupa hoy es como puedo manejar un ads1210 no logro hacerlo funcionar, si alguien me pudiera ayudar con algo ya sea alguna inforamacion o con un programa que lo haga funcionar, estoy trabajando con asm y con un 16f873 por medio de spi pero no logro que funcione.
gracias por su ayuda
nota:por fin me acorde que los post se escriben con minuscula
-
Hola
Puedes empezar publicando los programas que has hecho para partir de ahí y ayudarte. También puedes subir el diagrama de conexión del bus spi, incluyendo la unión de las terminales de datos con una resistencia (si es que lo requiere).
-
buenas tardes, todavia estoy trabajndo con el ADS1210, adjunto el programa que hice espero que me puedan indicar cual puede ser la causa para que no funcione gracias por la ayuda
-
buenos dias, adjunto programa que estoy utilizando para manejar el ads1210, espero me puedan indicar donde esta el problema gracias por la ayuda
INICIO BSF STATUS,5 ;CAMBIA AL BANCO 1
CLRF PORTA ;PUERTO A SALIDA
CLRF PORTB ;PUERTO B SALIDA
MOVLW B'00010000' ;SCK SALIDA, MAESTRO, SDI ENTRADA
MOVWF PORTC ;SDO ENTRADA
MOVLW B'01000000' ;MUESTREO MITAD DATO, TRANSMISION EN ALTO
MOVWF SSPSTAT
BCF STATUS,5 ;CAMBIA AL BANCO 0
MOVLW B'00110001' ;MODE 1,1 SPI MAESTRO,RELOG ALTO, FOSC/16
MOVWF SSPCON
BCF PORTC,2 ;HABILITA ESCLAVO
MOVLW B'00000100' ;TOMA DATO, ESCRIBE,LONGITUD 1 BYTE, 3 REGISTRO DE COMANDO
MOVWF SSPBUF ;LO LLEVA AL REGISTRO SERIE
BSF STATUS,5 ;CAMBIA AL BANCO 1
CHAR1 BTFSS SSPSTAT,BF ;REVISA ENVIO DE DATO
GOTO CHAR1 ;NO, REVISA DE NUEVO
BCF STATUS,5 ;SI, CAMBIA AL BANCO 0
MOVF SSPBUF,W ;LEE DATO DE REGISTRO SERIE
BSF PORTC,2 ;DESHABILITA ESCALVO
MOVWF PORTB ;LLEVA DATO RECIBIDO AL PUERTO
CALL PDELAY ;RETARDO PARA ESTABILIZAR
CALL PDELAY
BCF PORTC,2 ;HABILITA ESCLAVO
MOVLW B'00111010' ;ESCRIBE,UNIPOLAR, BIAS OFF,BINARIO,SDOUT,LSBY,MSBI 3 REGISTRO DE COMANDO
MOVWF SSPBUF ;LO LLEVA AL REGISTRO SERIE
BSF STATUS,5 ;CAMBIA AL BANCO 1
CHAR2 BTFSS SSPSTAT,BF ;REVISA ENVIO DE DATO
GOTO CHAR2 ;NO, REVISA DE NUEVO
BCF STATUS,5 ;SI, CAMBIA AL BANCO 0
MOVF SSPBUF,W ;LEE DATO DE REGISTRO SERIE
BSF PORTC,2 ;DESHABILITA ESCALVO
MOVWF PORTB ;LLEVA DATO RECIBIDO AL PUERTO
CALL PDELAY ;RETARDO PARA ESTABILIZAR
CALL PDELAY
BCF PORTC,2 ;HABILITA ESCLAVO
MOVLW B'00000101' ;ESCRIBE,LONGITUD 1 BYTE, 2 REGISTRO DE COMANDO
MOVWF SSPBUF ;LO LLEVA AL REGISTRO SERIE
BSF STATUS,5 ;CAMBIA AL BANCO 1
CHAR3 BTFSS SSPSTAT,BF ;REVISA ENVIO DE DATO
GOTO CHAR3 ;NO, REVISA DE NUEVO
BCF STATUS,5 ;SI, CAMBIA AL BANCO 0
MOVF SSPBUF,W ;LEE DATO DE REGISTRO SERIE
BSF PORTC,2 ;DESHABILITA ESCALVO
MOVWF PORTB ;LLEVA DATO RECIBIDO AL PUERTO
CALL PDELAY ;RETARDO PARA ESTABILIZAR
CALL PDELAY
BCF PORTC,2 ;HABILITA ESCLAVO
MOVLW B'00000000' ;MODO NORMAL,GANACIA 1,CANAL 1, 2 REGISTRO DE COMANDO
MOVWF SSPBUF ;LO LLEVA AL REGISTRO SERIE
BSF STATUS,5 ;CAMBIA AL BANCO 1
CHAR4 BTFSS SSPSTAT,BF ;REVISA ENVIO DE DATO
GOTO CHAR4 ;NO, REVISA DE NUEVO
BCF STATUS,5 ;SI, CAMBIA AL BANCO 0
MOVF SSPBUF,W ;LEE DATO DE REGISTRO SERIE
BSF PORTC,2 ;DESHABILITA ESCALVO
MOVWF PORTB ;LLEVA DATO RECIBIDO AL PUERTO
CALL PDELAY ;RETARDO PARA ESTABILIZAR
CALL PDELAY
BCF PORTC,2 ;HABILITA ESCLAVO
MOVLW B'00000000' ;ESCRIBE,LONGITUD 1 BYTE, 1 REGISTRO DE COMANDO
MOVWF SSPBUF ;LO LLEVA AL REGISTRO SERIE
BSF STATUS,5 ;CAMBIA AL BANCO 1
CHAR5 BTFSS SSPSTAT,BF ;REVISA ENVIO DE DATO
GOTO CHAR5 ;NO, REVISA DE NUEVO
BCF STATUS,5 ;SI, CAMBIA AL BANCO 0
MOVF SSPBUF,W ;LEE DATO DE REGISTRO SERIE
BSF PORTC,2 ;DESHABILITA ESCALVO
MOVWF PORTB ;LLEVA DATO RECIBIDO AL PUERTO
CALL PDELAY ;RETARDO PARA ESTABILIZAR
CALL PDELAY
BCF PORTC,2 ;HABILITA ESCLAVO
MOVLW B'00010000' ;MODO TURBO,RATA DE DATOS, 1 REGISTRO DE COMANDO
MOVWF SSPBUF ;LO LLEVA AL REGISTRO SERIE
BSF STATUS,5 ;CAMBIA AL BANCO 1
CHAR6 BTFSS SSPSTAT,BF ;REVISA ENVIO DE DATO
GOTO CHAR6 ;NO, REVISA DE NUEVO
BCF STATUS,5 ;SI, CAMBIA AL BANCO 0
MOVF SSPBUF,W ;LEE DATO DE REGISTRO SERIE
BSF PORTC,2 ;DESHABILITA ESCALVO
MOVWF PORTB ;LLEVA DATO RECIBIDO AL PUERTO
CALL PDELAY ;RETARDO PARA ESTABILIZAR
CALL PDELAY
BCF PORTC,2 ;HABILITA ESCLAVO
MOVLW B'00000111' ;ESCRIBE,LONGITUD 1 BYTE, 0 REGISTRO DE COMANDO
MOVWF SSPBUF ;LO LLEVA AL REGISTRO SERIE
BSF STATUS,5 ;CAMBIA AL BANCO 1
CHAR7 BTFSS SSPSTAT,BF ;REVISA ENVIO DE DATO
GOTO CHAR7 ;NO, REVISA DE NUEVO
BCF STATUS,5 ;SI, CAMBIA AL BANCO 0
MOVF SSPBUF,W ;LEE DATO DE REGISTRO SERIE
BSF PORTC,2 ;DESHABILITA ESCALVO
MOVWF PORTB ;LLEVA DATO RECIBIDO AL PUERTO
CALL PDELAY ;RETARDO PARA ESTABILIZAR
CALL PDELAY
BCF PORTC,2 ;HABILITA ESCLAVO
MOVLW B'00010110' ;RATA DE DATOS, 0 REGISTRO DE COMANDO
MOVWF SSPBUF ;LO LLEVA AL REGISTRO SERIE
BSF STATUS,5 ;CAMBIA AL BANCO 1
CHAR8 BTFSS SSPSTAT,BF ;REVISA ENVIO DE DATO
GOTO CHAR8 ;NO, REVISA DE NUEVO
BCF STATUS,5 ;SI, CAMBIA AL BANCO 0
MOVF SSPBUF,W ;LEE DATO DE REGISTRO SERIE
BSF PORTC,2 ;DESHABILITA ESCALVO
MOVWF PORTB ;LLEVA DATO RECIBIDO AL PUERTO
CALL PDELAY ;RETARDO PARA ESTABILIZAR
CALL PDELAY
BCF PORTC,2 ;HABILITA ESCLAVO
MOVLW B'10000010' ;LECTURA, LONGITUD 1 BYTE, BYTE 0 REGISTRO SALIDA DATO
MOVWF SSPBUF ;LO LLEVA AL REGISTRO SERIE
BSF STATUS,5 ;CAMBIA AL BANCO 1
CHAR9 BTFSS SSPSTAT,F ;REVISA ENVIO DE DATO
GOTO CHAR9 ;NO, REVISA DE NUEVO
BCF STATUS,5 ;SI, CAMBIA AL BANCO 0
MOVF SSPBUF,W ;LEE DATO DE REGISTRO SERIE
BSF PORTC,2 ;DESHABILITA ESCALVO
MOVWF PORTB ;LLEVA DATO RECIBIDO AL PUERTO
CALL PDELAY ;RETARDO PARA ESTABILIZAR
ENVIO BCF PORTC,2 ;HABILITA ESCLAVO
MOVLW B'10000010' ;LECTURA, LONGITUD 1 BYTE, BYTE 0 REGISTRO SALIDA DATO
MOVWF SSPBUF ;LO LLEVA AL REGISTRO SERIE
BSF STATUS,5 ;CAMBIA AL BANCO 1
CHAR10 BTFSS SSPSTAT,BF ;REVISA ENVIO DE DATO
GOTO CHAR10 ;NO, REVISA DE NUEVO
BCF STATUS,5 ;SI, CAMBIA AL BANCO 0
MOVF SSPBUF,W ;LEE DATO DE REGISTRO SERIE
BSF PORTC,2 ;DESHABILITA ESCALVO
MOVWF PORTB ;LLEVA DATO RECIBIDO AL PUERTO
CALL PDELAY ;RETARDO PARA ESTABILIZAR
GOTO ENVIO ;INICIA DE NUEVO
-
hola albertoie mira, yo tambien programo en assembler y estoy tratando de comunicarme con un convertidor externo, pero en mi caso, como yo requiero mucha velocidad, estoy utilizando el HI574A de Intersil, su salida es de 12bits paralelo tipo 3 estados,... (eso fue a modo de comentario simplemente)
para que te pueda ayudar requiero que postees el esquemáticoasi se nos hace más claro al momento de leer el programa...
saludos