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

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

Desconectado Chenao

  • PIC18
  • ****
  • Mensajes: 414
Re: Ejemplo Simulación del módulo spi
« Respuesta #60 en: 24 de Octubre de 2011, 12:48:28 »
Hola Simon21

He estado pendiente del desarrollo del hilo, estuve leyendo en la red que proteus tiene implementado este dispositivo en sus librerias, porque no intentas simularlo utilizando el debug del SPI y así ver más detalladamente los datos enviados por el bus (tanto como del maestro como del esclavo). Creo que así te podría ayudar más y se podría depurar más fácilmente el código.
Un saludo desde Pereira - Colombia

Desconectado Simon21

  • PIC18
  • ****
  • Mensajes: 302
Re: Ejemplo Simulación del módulo spi
« Respuesta #61 en: 24 de Octubre de 2011, 22:09:10 »
Me es mucho mas facil trabajar directamente en el circuito ya que tengo todo armado y funcionando..
El unico problema es algo que estoy haciendo mal en el programa que hace que no se puedan comunicar
bien el pic y el dispositivo (ADE7758). Me estoy quemando las neuronas a full estos dias jaja
INGENIERIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL

Desconectado Simon21

  • PIC18
  • ****
  • Mensajes: 302
Re: Ejemplo Simulación del módulo spi
« Respuesta #62 en: 25 de Octubre de 2011, 00:08:20 »
Me parece que encontre lo que estoy haciendo mal..
Segun el datasheet del ADE, la frecuencia minima de CLK es de 5 MHz
y la maxima 10 MHZ, y yo estoy usando un 16F877A con un cristal
de 4 MHz, y al hacer la siguiente linea setup_spi(spi_master | spi_l_to_h | spi_clk_div_16);
Hago 4/16= 250 KHz, es mucho mas baja que la minima permitida..
No me va a quedar otra opcion que poner un cristal de 10 o 20 MHz...
INGENIERIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Ejemplo Simulación del módulo spi
« Respuesta #63 en: 25 de Octubre de 2011, 00:25:48 »
con 10mhz solo conseguiras 2,5mhz. Con 20mhz 5Mhz

Desconectado Chenao

  • PIC18
  • ****
  • Mensajes: 414
Re: Ejemplo Simulación del módulo spi
« Respuesta #64 en: 25 de Octubre de 2011, 14:31:42 »
Hola Simon21

El cálculo lo estas haciendo mal recuerda que el ciclo de instrucción se define como la  4 / Fosc así que tienes que revisar el programa para garantizar la frecuencia por el el terminal CLK que específica el fabricante, modificando el cristal y la línea de código SPI_CLK_DIV_XX.
Un saludo desde Pereira - Colombia

Desconectado Simon21

  • PIC18
  • ****
  • Mensajes: 302
Re: Ejemplo Simulación del módulo spi
« Respuesta #65 en: 25 de Octubre de 2011, 15:14:50 »
Comprobado con el osciloscopio..
Con un cristal de 4 MHz y un divisor por 16 tengo
justo 250 KHz..
Puedo usar un cristal de 10 MHz y no usar divisor, por lo que
tendría 10 MHz en CK..
INGENIERIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Ejemplo Simulación del módulo spi
« Respuesta #66 en: 25 de Octubre de 2011, 15:57:05 »
Comprobado con el osciloscopio..
Con un cristal de 4 MHz y un divisor por 16 tengo
justo 250 KHz..
Puedo usar un cristal de 10 MHz y no usar divisor, por lo que
tendría 10 MHz en CK..

Aunque no uses divisor los pics trabajan con fosc/4, con uno de 10mhz tendrias 2,5mhz

Desconectado Simon21

  • PIC18
  • ****
  • Mensajes: 302
Re: Ejemplo Simulación del módulo spi
« Respuesta #67 en: 25 de Octubre de 2011, 17:28:01 »
Entonces voy a tener que usar un cristal de 20 MHz..
Puedo usar un cristal de 20 MHz con un 16F877A a lo que
estoy viendo.
Debo cambiar alguna configuración inicial además de
las siguiente línea ??
#use delay(clock = 4000000)
Con respecto al FUSE, en vez de XT que era lo que cambiaba
al usar un cristal de 20 en la siguiente línea??
#FUSES XT   

Saludos y gracias por su ayuda permanente !! :lol:
INGENIERIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: Ejemplo Simulación del módulo spi
« Respuesta #68 en: 25 de Octubre de 2011, 17:44:48 »
  Para el módulo SPI (hardware) del 87x, las posibles frecuencias son Fosc/4, Fosc/16 y Fosc/64. Fosc hace referencia a la frecuencia de oscilación y no a la de instrucción. Por lo tanto con un cristla de 20MHz y usando la forma de Fosc/4 se obtendrían los 5MHz necesarios para el clock del SPI.
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Ejemplo Simulación del módulo spi
« Respuesta #69 en: 25 de Octubre de 2011, 19:04:00 »
tendrias que poner delay=20000000 y en vez de XT debes poner HS

Desconectado Simon21

  • PIC18
  • ****
  • Mensajes: 302
Re: Ejemplo Simulación del módulo spi
« Respuesta #70 en: 25 de Octubre de 2011, 19:04:16 »
Perfecto !!
En un rato voy a probar y les cuento como me fue..
INGENIERIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL

Desconectado Simon21

  • PIC18
  • ****
  • Mensajes: 302
Re: Ejemplo Simulación del módulo spi
« Respuesta #71 en: 26 de Octubre de 2011, 18:59:01 »
Hola a todos.. Ya logré hacer funcionar el sck a 5 MHz...
Ahora vamos al siguiente punto..
Como hago para configurar CKP y CKE desde CCS ??
Ya que no puedo ver como los configura la funcion
spi_read y spi_write, o por lo menos no pude encontrar
el programa de dichas funciones.
Me refiero a la página 76 del datasheet del 16F877A
Creo que ahi está la clave de esto.

http://ww1.microchip.com/downloads/en/DeviceDoc/39582b.pdf

Saludos a todos y agradecería una respuesta

P/D: la imagen adjunta muestra en verde la señal SCK del pic y
la amarilla SDO, la señal SDI no la muestro ya que no recibo nada
« Última modificación: 26 de Octubre de 2011, 19:08:57 por Simon21 »
INGENIERIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: Ejemplo Simulación del módulo spi
« Respuesta #72 en: 26 de Octubre de 2011, 19:55:23 »
  Los bits CKP y CKE los debe modificar la función setup_spi() según los parámetros que se les pase.
 
  Se me ocurren dos maneras de saber como están... una sería testearlos con la función bit_test y encender leds en distintos pines del pic (si es que te quedan salidas disponibles) y otra sería simularlo en ISIS y desde las ventanitas de debuggeo ver como están los bits
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado Simon21

  • PIC18
  • ****
  • Mensajes: 302
Re: Ejemplo Simulación del módulo spi
« Respuesta #73 en: 27 de Octubre de 2011, 21:40:08 »
bit test ??
Pero no se en que registro estan y como estan ubicados ???
INGENIERIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Ejemplo Simulación del módulo spi
« Respuesta #74 en: 27 de Octubre de 2011, 21:50:29 »
bit test ??
Pero no se en que registro estan y como estan ubicados ???


Pero tienes el datasheet! O podes usar #byte para trabajar directamente con los bytes y configurarlo al estilo C18 o ASM.


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


 

anything