Autor Tema: libreria para conversor A/D (ADC101S021) por SPI  (Leído 5848 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Pchuqui_1

  • PIC16
  • ***
  • Mensajes: 187
libreria para conversor A/D (ADC101S021) por SPI
« en: 19 de Julio de 2010, 14:13:43 »
Hola a todos. Quisiera saber si existe una libreria para manejar el conversor ADC101S021 por SPI en ccs c ?? Tengo que crear la libreria o puedo utilizar otra de otro DAC con similares caracteristicas?

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: libreria para conversor A/D (ADC101S021) por SPI
« Respuesta #1 en: 19 de Julio de 2010, 15:23:16 »
Sería interesante que la realices, en el proceso se aprenden muchas cosas  ;-)


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado Pchuqui_1

  • PIC16
  • ***
  • Mensajes: 187
Re: libreria para conversor A/D (ADC101S021) por SPI
« Respuesta #2 en: 19 de Julio de 2010, 15:47:24 »
Ok Suky. Esa es la idea, estoy buscando un empujoncito para empezar, uno no diseña librería todos los días. jaa Saludos

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: libreria para conversor A/D (ADC101S021) por SPI
« Respuesta #3 en: 19 de Julio de 2010, 15:59:19 »
Ok Suky. Esa es la idea, estoy buscando un empujoncito para empezar, uno no diseña librería todos los días. jaa Saludos

Pero una librería no son más que funciones especificas del dispositivo, o sea programar  :mrgreen: Lo esencial es el datasheet del dispositivo. Si necesitas tener una referencia de como es una librería, toma la de cualquier conversor y observa las funciones que realiza.

Saludos!  ;-)
No contesto mensajes privados, las consultas en el foro

Desconectado Pchuqui_1

  • PIC16
  • ***
  • Mensajes: 187
Re: libreria para conversor A/D (ADC101S021) por SPI
« Respuesta #4 en: 20 de Julio de 2010, 13:01:45 »
Hola otra ves. Esta libreria que voy a tratar de crear es para utilizar los girocopos LISY300LA de parallax que tienen un conversor adc ADC101S021 por SPI. Me voy a guiar por la libreria que trae CCS C de un DAC por SPI tambien, es la MCP3208. Quisiera que mientra vaya posteando los avances me ayuden con posibles errores ya, que van a ser muchos. Gracias.  :oops:

Desconectado Pchuqui_1

  • PIC16
  • ***
  • Mensajes: 187
Re: libreria para conversor A/D (ADC101S021) por SPI
« Respuesta #5 en: 20 de Julio de 2010, 20:53:26 »
Hola otra ves. Esta libreria que voy a tratar de crear es para utilizar los girocopos LISY300LA de parallax que tienen un conversor adc ADC101S021 por SPI. Me voy a guiar por la libreria que trae CCS C de un DAC por SPI tambien, es la MCP3208. Quisiera que mientra vaya posteando los avances me ayuden con posibles errores ya, que van a ser muchos. Gracias.  :oops:

Hola. Aca muestro el diagrama que hay que utilizar para crear la comunicación.



Aca muestro la parte que creo hay que programar para iniciar la memoria.



Bueno el pedazo que realize es el siguente, para un pic 16f887. Se que es nada pero es lo que abanse. El problema que no se como seguir.
Estube mirando otras librerias de ADC externos y no entiendo como definen el uso del ptrotocolo SPI. Espero que alguien pueda ayudarme. Saludos

#ifndef ADC101S021
#define ADC101S021_SCLK     PIN_C3
#define ADC101S021_SDATA     PIN_C5
#define ADC101S021_CS      PIN_A5

#endif


void adc_init() {
   output_high(ADC101S021_CS);                  //Inicializa el conversor poniendo el estado de CS
}
« Última modificación: 20 de Julio de 2010, 20:59:03 por Pchuqui_1 »

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: libreria para conversor A/D (ADC101S021) por SPI
« Respuesta #6 en: 20 de Julio de 2010, 21:46:03 »
No contesto mensajes privados, las consultas en el foro

Desconectado Pchuqui_1

  • PIC16
  • ***
  • Mensajes: 187
Re: libreria para conversor A/D (ADC101S021) por SPI
« Respuesta #7 en: 20 de Julio de 2010, 22:01:53 »
Hola Suky gracias por contestar. Hoy a la tarde me la pase leyendo ese mismo link. Si no me equivoco tengo que enviarle al ADC unos bits de configuración,  pero este adc no utilza un pin para recibir datos...  O no es necesario y solo tengo que leer los datos por el pin de salida? Voy a seguir insistiendo. jaaa

Desconectado Pchuqui_1

  • PIC16
  • ***
  • Mensajes: 187
Re: libreria para conversor A/D (ADC101S021) por SPI
« Respuesta #8 en: 03 de Agosto de 2010, 00:18:27 »
Hola a todos. Voy a seguir hasta poder crear la libreria para este adc. Pero antes quiero saber si alguien me puede sacar algunas dudas. Estube leyendo sobre SPI en el foro y demas. Mi intencion es utilizarlo por HARDWARE osea utilizando SETUP_SPI. Bueno busque la instrucción en la ayuda del ccs c y tiene algunos parametros que no puedo encontrar y no conosco sus significados, por ejemplo:
SPI_L_TO_H, SPI_H_TO_L, SPI_SS_DISABLED

Gracias

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: libreria para conversor A/D (ADC101S021) por SPI
« Respuesta #9 en: 03 de Agosto de 2010, 14:02:29 »
Junto a la ayuda de CCS debes tener a mano el datasheet del microcontrolador utilizado, allí explica que hay cuatro modos de configurar la comunicación SPI dependiendo de los estados IDLE de las señales Data y Clock, y donde muestrea para determinar el estado del bit. Y ese modo debe corresponder con el utilizado por el conversor.

Según se ve en la imagen de más arriba, debería ser configurado como SPI_H_TO_L, SPI_XMIT_L_TO_H, y agregar SPI_MASTER y la velocidad seleccionada.

SPI_SS_DISABLED, des-habilita el módulo, así que ese no lo uses  ;-)


Saludos!

No contesto mensajes privados, las consultas en el foro

Desconectado Pchuqui_1

  • PIC16
  • ***
  • Mensajes: 187
Re: libreria para conversor A/D (ADC101S021) por SPI
« Respuesta #10 en: 03 de Agosto de 2010, 17:12:15 »
Hola Suky. Estube investigando un poco mas y encontre las cuatro formas de configurar el modo SPI como me mencionaste antes. Bueno las muestro abajo. Esta configuración hace referencia al modo de inicialización del clock en el modo SPI.

 MICROCHIP      |           CCS
//-----------------------------------------------------------------------
 CKP = 0, CKE = 1  |  SPI_L_TO_H | SPI_XMIT_L_TO_H
 CKP = 0, CKE = 0  |  SPI_L_TO_H
 CKP = 1, CKE = 1  |  SPI_H_TO_L
 CKP = 1, CKE = 0  |  SPI_H_TO_L | SPI_XMIT_L_TO_H
    
Segun la hoja de datos del conversor ADC101S021 el estado del clock "SCLK" enpieza en estado alto.. por eso utilizo SPI_H_TO_LO|SPI_XMIT_L_TO_H. Te pregunto si hice bien el razonamiento, para futuros dispositivos sin librerias.  :D

En la imagen se ve la 4 formas de configuracion del PIC16f887


Hasta hora me quedaria asi:

setup_spi(spi_master|SPI_H_TO_LO|SPI_XMIT_L_TO_H|spi_clk_div_4)

y la coneción entre el pic y el dispositivo seria:

PIC              ADC101S021
RA5 (CS)            CS
RC4(SDI)            SDO
RC3(SCK)           SCK

 



« Última modificación: 03 de Agosto de 2010, 17:31:31 por Pchuqui_1 »

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: libreria para conversor A/D (ADC101S021) por SPI
« Respuesta #11 en: 03 de Agosto de 2010, 17:31:37 »
Segun la hoja de datos del conversor ADC101S021 el estado del clock "SCLK" enpieza en estado alto.. por eso utilizo SPI_H_TO_LO|SPI_XMIT_L_TO_H. Te pregunto si hice bien el razonamiento, para futuros dispositivos sin librerias.  :D

Según se ve en la imagen de más arriba, debería ser configurado como SPI_H_TO_L, SPI_XMIT_L_TO_H, y agregar SPI_MASTER y la velocidad seleccionada.


 :D :D
No contesto mensajes privados, las consultas en el foro

Desconectado Pchuqui_1

  • PIC16
  • ***
  • Mensajes: 187
Re: libreria para conversor A/D (ADC101S021) por SPI
« Respuesta #12 en: 03 de Agosto de 2010, 17:40:01 »
 :D
jaa Ya se que vos me lo dijiste antes, estoy procurando entender como se razona y no copiar sin pensar.  :D :D

Desconectado Pchuqui_1

  • PIC16
  • ***
  • Mensajes: 187
Re: libreria para conversor A/D (ADC101S021) por SPI
« Respuesta #13 en: 04 de Agosto de 2010, 12:07:33 »
Hola a todos. Estoy buscando en el foro la forma de tratar las cadenas  que recibo por SPI. Mi problema es que el ADC me devuelve  3 ceros| 10 bits | 2 ceros y tengo que encontrar la forma de solo obtener los 10 bits de información que preciso. Además si la comunicación es de 8 bits tengo que tomar por partes no? Gracias.  :(

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: libreria para conversor A/D (ADC101S021) por SPI
« Respuesta #14 en: 04 de Agosto de 2010, 14:34:39 »
Hola a todos. Estoy buscando en el foro la forma de tratar las cadenas  que recibo por SPI. Mi problema es que el ADC me devuelve  3 ceros| 10 bits | 2 ceros y tengo que encontrar la forma de solo obtener los 10 bits de información que preciso. Además si la comunicación es de 8 bits tengo que tomar por partes no? Gracias.  :(

Revisa las función make16 de CCS, te ayuda a formar una variable de 16-bits con 2 de 8-bits, y luego solo hay que rotar a la derecha para sacar los 2 ceros menos significativos, y listo.


Saludos!
No contesto mensajes privados, las consultas en el foro


 

anything