Autor Tema: Ejemplo Simulación del módulo spi  (Leído 62287 veces)

0 Usuarios y 3 Visitantes están viendo este tema.

Desconectado lucaspascual

  • PIC10
  • *
  • Mensajes: 31
Re: Ejemplo Simulación del módulo spi
« Respuesta #105 en: 29 de Abril de 2013, 13:29:16 »
hola Chenao muy buen aporte hiciste, recien estoy aprendiendo a manejar SPI ya que tengo un calibre digital con salida de datos que quiero ingresar al micro.
El calibre cuenta con un pin de clock y de datos. El calibre me transmite 48 bits de datos donde los primeros 24 bits son de una medida absoluta y los segundos 24 bits una medida relativa que es la que me interesa tomar.
El clock me genera un pulso al inicio y fin con un ancho de pulso mayor que los pulso en la parte del dato, y los 24 bits de la medida absoluta esta separada por un pulso mayor a los 24 bits de la medida relativa. A continuacion adjunto un archivo .rar donde esta bien detallado lo q explico.
Yo quisiera saber si puedo tomar esas lecturas a través del SPI ya q pense de varias formas hacerlo pero no las puedo implementar.

Desconectado Chenao

  • PIC18
  • ****
  • Mensajes: 414
Re: Ejemplo Simulación del módulo spi
« Respuesta #106 en: 30 de Abril de 2013, 12:53:22 »

Mirando por encima no creo que se pueda ya que esta báscula funciona con un protocolo serial denominado Digimatic Protocol y supongo que debe ser diferente que el protocolo serial SPI. ¿Pero creo que esta báscula tiene un canal RS -232? con el cual puedes conectarte con un microcontrolador fácilmente.
Un saludo desde Pereira - Colombia

Desconectado elkin_vivas

  • PIC10
  • *
  • Mensajes: 1
Re: Ejemplo Simulación del módulo spi
« Respuesta #107 en: 26 de Mayo de 2013, 21:57:24 »
Saludos después de mucho estudio, parciales, trabajo y demás cosas que se hacen en diciembre.... :D :D :D, me he puesto a trabajar con los micros ahora estoy trabajando con el modulo SPI y estado trabajando leyendo mucho realizando pruebas (por ahora simulaciones), y debido a este trabajao hoy quiero compartir con ustedes un pequeño trabajo el cual utliza dos micros 16f877 y se comunican por el protocolo SPI uno actua como maestro y el otro como esclavo, el programa hace lo siguiente.

El micro maestro: Le envia los siguientes datos al esclavo ({ 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7c, 0x07, 0x7f, 0x67}) que para un display de cátodo comú serian los siguiente (0,1,2,3,4,5,6,7,8,9) y el micro esclavo recibe los datos y los visualiza por el puerto B.

Acá les dejo la simulación y el código hay dos carpetas la primera prueba2 contiene el .hex del esclavo y prueba 1 que contiene el código, la simulación y el .hex del maestro. Espero que le agrade el ejemplo

Saludos 



excelente paRCE ME AYUDASTES  DEMASIADO MUCHAS GRACIAS 

Desconectado Chenao

  • PIC18
  • ****
  • Mensajes: 414
Re: Ejemplo Simulación del módulo spi
« Respuesta #108 en: 26 de Mayo de 2013, 22:07:25 »
Citar
excelente paRCE ME AYUDASTES  DEMASIADO MUCHAS GRACIAS

Esa es la ideal del foro ayudar y aprender. Qué bueno que el ejemplo te sirvió.
Un saludo desde Pereira - Colombia

Desconectado celihen

  • PIC10
  • *
  • Mensajes: 1
Re: Ejemplo Simulación del módulo spi
« Respuesta #109 en: 19 de Junio de 2013, 01:26:48 »
guooouuuuu
de verdad me valio de mucho
gracias compadre ((:-))

Desconectado facuver

  • PIC10
  • *
  • Mensajes: 14
Re: Ejemplo Simulación del módulo spi
« Respuesta #110 en: 27 de Abril de 2015, 13:26:08 »
Hola, como estan?
Estoy tratando de realizar una comunicacion SPI bidireccional entre varios pics (por el momento el maestro y un solo esclavo). La comunicacion funciona bien pero tengo un problema para responder con el esclavo.
Simulando con el proteus veo que el byte de respuesta del esclavo varia entre dos valores. El ultimo enviado por el maestro y el valor que tiene que enviar.
El codigo del maestro
Código: [Seleccionar]
#include "mother.h"

int in_data[4] ;

#int_RDA
void  RDA_isr(void)
{

}



void main()
{

   setup_adc_ports(NO_ANALOGS|VSS_VDD);
   setup_adc(ADC_CLOCK_DIV_2);
   setup_spi(SPI_MASTER|SPI_L_TO_H|SPI_CLK_DIV_4);
   setup_wdt(WDT_OFF);
   setup_timer_0(RTCC_INTERNAL);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_timer_3(T3_DISABLED|T3_DIV_BY_1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
   enable_interrupts(INT_RDA);
   disable_interrupts(GLOBAL);
   
   
   
   OUTPUT_LOW(PIN_B2); // slave select

   while(1)
   {
     

      in_data[0] = spi_read(0xff);

     
     
      delay_ms(100);
   }

}

y el del escalvo
Código: [Seleccionar]
#include "driver.h"

int in_data[4] ,out_data[4] = {0xfa,0x06,0x07,0xfb} ;

#int_SSP                           //interrupcion SPI
void  SSP_isr(void)
{
   
   
   in_data[0] = spi_read(0xdd);

   

}



void main()
{

   setup_adc_ports(NO_ANALOGS|VSS_VDD);
   setup_adc(ADC_CLOCK_DIV_2);
   setup_spi(SPI_SLAVE);
   setup_wdt(WDT_OFF);
   setup_timer_0(RTCC_INTERNAL);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_timer_3(T3_DISABLED|T3_DIV_BY_1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
   enable_interrupts(INT_SSP);
   enable_interrupts(GLOBAL);
//Setup_Oscillator parameter not selected from Intr Oscillator Config tab

   while(1)
   {
       
     
   }

}


en este programa la varable in_data del esclavo es siempre "0xff" pero la in_data del maestro varia entre "0xff" y "0xdd".
A alguien se le ocurre donde puede estar el problema?
Estoy utilizando dos 18F2550 y el ccs 4.104

Desde ya muchas gracias!

Saludos

Desconectado Chenao

  • PIC18
  • ****
  • Mensajes: 414
Re: Ejemplo Simulación del módulo spi
« Respuesta #111 en: 13 de Agosto de 2015, 22:21:19 »
No se si ya resolvió el asunto (disculpe la demora). Si no es así trata en modificar la siguiente linea en el código del maestro.

Citar
in_data[0] = spi_read(0xff);


Por

Código: [Seleccionar]
in_data[0] = spi_write(0xff);
Además en el código del esclavo intenta con lo siguiente

Citar
in_data[0] = spi_read(0xdd);

Por

Código: [Seleccionar]
in_data[0] = spi_read();
Saludos.
Un saludo desde Pereira - Colombia

Desconectado Berto

  • PIC16
  • ***
  • Mensajes: 191
Re: Ejemplo Simulación del módulo spi
« Respuesta #112 en: 04 de Septiembre de 2015, 13:53:37 »
Hola a todos. Tengo un codigo muy largo sobre un 16f877 El problema es que todo esta saturado :5] pines del micro memoria RON 80% da problemas errores de compilacion por memoria reservada (no error de codigo escrito -comprobado-) Me estoy dando cuenta que lo que esponeis en este tema es lo que necesito pero yo nunca e hecho nada parecido. No se como empezar. No conozco las conexiones :shock: Os agradeceria que me pasaseis el proyecto ISIS en proteus de cualquier codigo CS que hayais espuesto en este tema con maestro esclavo, a ser posible que uno sea el micro dicho, es el unico con el que e tratado asta ahora en mis proyectos.

Saludos

Desconectado Chenao

  • PIC18
  • ****
  • Mensajes: 414
Re: Ejemplo Simulación del módulo spi
« Respuesta #113 en: 04 de Septiembre de 2015, 20:52:21 »
Compañero Berto acá puedes encontrar los archivos, hay varios ejemplos tanto para el CCS como para el ensamblador (creo que también están la simulaciones).
Un saludo desde Pereira - Colombia

Desconectado Berto

  • PIC16
  • ***
  • Mensajes: 191
Re: Ejemplo Simulación del módulo spi
« Respuesta #114 en: 05 de Septiembre de 2015, 06:09:41 »
Hola chenao Tus archivos es lo primero que baje pero en ellos no se encuentran el proyecto proteus, a menos que tenga que modificar algun archivo proteus me pide extension .pdsprj Estoy muy interesdo en tu codigo ya que utiliza el 16f877 Me gustaria mucho empezar a aprender modificandolo pero no quiero hacerlo a ciegas quiero ver como responde lo que escribo. Si tienes todavia estos proyectos, por favor pasamelos cuando puedas.

Saludos desde el pais vasco

Desconectado Chenao

  • PIC18
  • ****
  • Mensajes: 414
Re: Ejemplo Simulación del módulo spi
« Respuesta #115 en: 05 de Septiembre de 2015, 14:07:48 »


Citar
us archivos es lo primero que baje pero en ellos no se encuentran el proyecto proteus, a menos que tenga que modificar algun archivo proteus me pide extension .pdsprj

Extraño, qué versión del proteus utilizas. Voy a buscarlos si algo vuelvo y los cuelgo.
Un saludo desde Pereira - Colombia

Desconectado Berto

  • PIC16
  • ***
  • Mensajes: 191
Re: Ejemplo Simulación del módulo spi
« Respuesta #116 en: 05 de Septiembre de 2015, 19:40:16 »
Es una actualizacion proteus8.1.SP1.exe sobre la de proteus-setup77.exe El 8.1 no servia por si solo me pide las librerias del anterior
En tus adjuntos ¿Estan tus trabajos de proteus, como se llaman que extension teien?

Saludos

Desconectado Chenao

  • PIC18
  • ****
  • Mensajes: 414
Re: Ejemplo Simulación del módulo spi
« Respuesta #117 en: 05 de Septiembre de 2015, 20:20:53 »

La versión del proteus donde fueron implementados los esquema eléctricos fue la 7.2. Ahora no se, si existe un problema de compatibilidad con versiones más recientes.

La extensión de los archivos en el proteus es .DNS, acabo de realizar la descarga, en efecto las simulaciones fueron subidas junto con los códigos y archivos .Hex y .Lst etc. 
Un saludo desde Pereira - Colombia

Desconectado Berto

  • PIC16
  • ***
  • Mensajes: 191
Re: Ejemplo Simulación del módulo spi
« Respuesta #118 en: 05 de Septiembre de 2015, 20:39:05 »
Vaya parece que funciona e cambiado la vieja estension por .DNS y proteus la ejecuta normal el programa Lo poco que e visto esta bien
pero en tus archivos tampoco veo el DNS una ultima pregunta yo ya me voi al sobre. cuales son proteus en los siguentes archivos tuyos

Desconectado Chenao

  • PIC18
  • ****
  • Mensajes: 414
Re: Ejemplo Simulación del módulo spi
« Respuesta #119 en: 05 de Septiembre de 2015, 21:35:00 »

La que revise fue el archivo SPI_CCS.rar la cual esta en el primer post del hilo. En la carpeta del microcontrolador maestro puedes encontrar la cabecera .DNS.
Un saludo desde Pereira - Colombia