Autor Tema: Problema con PIC18F4550 + ENC28J60 + DS1621 entre protocolos SPI e I2C  (Leído 5031 veces)

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

Desconectado Thulsa Doom

  • PIC24F
  • *****
  • Mensajes: 771
    • https://electronicadicto.wordpress.com/
Buenas a todos, tengo un problema que no se como salir de el, se me han agotado las ideas a ver si alguien me puede ayudar.

Utilizo CCS C + PIC18F4550 + ENC28J60 + DS1621 y todo realizado con el IDE MPLAB

Resulta que estoy implementando un pic18F4550 con el periférico para Ethernet ENC28J60, en el micro tengo alojada una página web muy sencilla, solo para pruebas, hasta ahí va todo perfecto.

El problema llega a la hora de intentar añadirle algún periférico más por medio del protocolo I2C, al intentar conectarle un detector de temperatura el chip se bloquea.

Al llegar a i2c_start(); el programa se mete en #use i2c(Master….) de ahí no sale.
He estado ejecutando el código en modo debugger por medio de un ICD2 y al llegar a #use i2c (…) entra en la rutina de ese protocolo y se queda saltando entre

dos registros o variables, no se como llamarlo, cuelgo foto :


Los registros son :
Código: [Seleccionar]
BTFSS 0xf82 , 05 ACESSY
Código: [Seleccionar]
BRA 0x462
Y de ahí no sale, con lo cual se interrumpe el programa.

He probado con SPI por hardware y por software y en los dos casos le pasa lo mismo

No sé si esto es un bug del compilador o es que me falta algo que añadirle al código o que.

Sé que el problema está con el driver del ENC28J60, porque he desnudado todo el programa y solo he dejado el driver del ENC y una función sola y a la hora de meterle el I2C le pasa lo mismo.

Cuelgo rutina para que le echen un vistazo.
Código: [Seleccionar]
#include <18F4550.h>
#fuses HSPLL,MCLR,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN   // Ocupa cristal 4Mhz, cambiar a PLL5 para ocuparlo con 20Mhz.
#use delay(clock=48000000)

#define  ON    output_high
#define  OFF   output_low

#define  LedV  PIN_A3
#define  LedR  PIN_A4

// Conexión entre el PIC18F4550 y el Modulo ENC28J60 (Se conecta directamente sin adaptador de voltajes).
// Se adjunta el datasheet del Modulo ENC28J60.

#ifndef  PIN_ENC_MAC_SO
#define  PIN_ENC_MAC_SO    PIN_C7   // Conectar con PIN MISO del ENC28J60.
#define  PIN_ENC_MAC_SI    PIN_B4   // Conectar con PIN MOSI del ENC28J60.
#define  PIN_ENC_MAC_CLK   PIN_B2   // Conectar con PIN SCK del ENC28J60.
#define  PIN_ENC_MAC_CS    PIN_B3   // Conectar con PIN CS del ENC28J60.
#define  PIN_ENC_MAC_RST   PIN_B5   // Conectar con PIN RST del ENC28J60.
#define  PIN_ENC_MAC_INT   PIN_D2   // Conectar con PIN INT del ENC28J60.
#define  PIN_ENC_MAC_WOL   PIN_D3   // Conectar con PIN WOL del ENC28J60.
#define mac_enc_spi_tris_init()  *0xF93=*0xF93 | 7; *0xF95=*0xF95 & 0xF0
#endif

#ifndef ENC_MAC_USE_SPI
#define ENC_MAC_USE_SPI TRUE
#endif

#include "Drivers/enc28j60.c"

#ifndef DAL_SCL
#define DAL_SCL PIN_C5
#define DAL_SDA PIN_C4
#endif
#include "Drivers/DS1621M.C"

void main(void){
   int16 dato;
   ON(LedR);
   OFF(LedV);

mac_spi_init();
mac_reg_init();
init_temp(0x00);

   while(TRUE){      
   ON(LedR);
   delay_ms(50);
   OFF(LedR);
   delay_MS(50);
   dato=enc_mac_read_phy_word(0x00);
   }
}

el driver del ENC y del DS1621 son los que están en PICC

Más códigos y desarrollos en https://electronicadicto.wordpress.com/ date una vuelta y curiosea un rato...

Desconectado Thulsa Doom

  • PIC24F
  • *****
  • Mensajes: 771
    • https://electronicadicto.wordpress.com/
Re: Problema con PIC18F4550 + ENC28J60 + DS1621 entre protocolos SPI e I2C
« Respuesta #1 en: 19 de Octubre de 2012, 16:28:19 »
bueno, pues ya está solucionado el problema, resulta que este error era debido a que no tenía las resistencias de pull-up puestas en el bu I2C, modifique los pines a los puertos B2 y B4 active el I2c por hardware y ya funciona bien.
Espero esto le sirva a alguien
 :-/ :-/ :-/ :-/ :-/
Más códigos y desarrollos en https://electronicadicto.wordpress.com/ date una vuelta y curiosea un rato...

Desconectado esquivelrs

  • PIC10
  • *
  • Mensajes: 2
Re: Problema con PIC18F4550 + ENC28J60 + DS1621 entre protocolos SPI e I2C
« Respuesta #2 en: 30 de Diciembre de 2012, 21:01:55 »
Buenas Thulsa Doom, me alegra que pudieras solucionar tu problema, me párese interesante tu proyecto, me pásese que se baso en el ejemplo 11ethernet http://www.mediafire.com/?tl38ska2egbktej, (y de no ser así me disculpo) he estado buscando un poco de información respecto a este proyecto y como configurarlo, si pudieras subir tu proyecto completo

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Problema con PIC18F4550 + ENC28J60 + DS1621 entre protocolos SPI e I2C
« Respuesta #3 en: 30 de Diciembre de 2012, 21:30:07 »
Además C4 y C5 en un 4550 son solo como entrada si no se usa USB.

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

Desconectado Thulsa Doom

  • PIC24F
  • *****
  • Mensajes: 771
    • https://electronicadicto.wordpress.com/
Re: Problema con PIC18F4550 + ENC28J60 + DS1621 entre protocolos SPI e I2C
« Respuesta #4 en: 31 de Diciembre de 2012, 07:15:52 »
Buenas Thulsa Doom, me alegra que pudieras solucionar tu problema, me párese interesante tu proyecto, me pásese que se baso en el ejemplo 11ethernet http://www.mediafire.com/?tl38ska2egbktej, (y de no ser así me disculpo) he estado buscando un poco de información respecto a este proyecto y como configurarlo, si pudieras subir tu proyecto completo


Pues si, es el mismo proyecto lo que modificado y he añadido varias cosas más, el proyecto no está completo ya que me falta implementar un cliente telnet en el micro y no lo he conseguido ya que el código en CCS está incompleto, por ello me he pasado a C18 que las librerías de microchip están más completas, y poco a poco lo estoy sacando.
De todas maneras te subo lo que tengo en CCS hasta la fecha

http://rapidshare.com/files/2291876213/Control_De_Temperatura-2.zip


espero te sirva de algo

Además C4 y C5 en un 4550 son solo como entrada si no se usa USB.

Saludos!
Gracias Suky por el apunte
Más códigos y desarrollos en https://electronicadicto.wordpress.com/ date una vuelta y curiosea un rato...

Desconectado esquivelrs

  • PIC10
  • *
  • Mensajes: 2
Re: Problema con PIC18F4550 + ENC28J60 + DS1621 entre protocolos SPI e I2C
« Respuesta #5 en: 31 de Diciembre de 2012, 22:38:28 »
Muchas gracias Thulsa Doom, buen aporte, ahora la duda es como indicarle al pic el valor del setpoint, con el motodo GET en la misma pagina (sin usar el protocolo telnet)
« Última modificación: 31 de Diciembre de 2012, 22:42:34 por esquivelrs »

Desconectado Jummi

  • PIC10
  • *
  • Mensajes: 21
Re: Problema con PIC18F4550 + ENC28J60 + DS1621 entre protocolos SPI e I2C
« Respuesta #6 en: 01 de Febrero de 2015, 20:03:17 »
 El link del fichero control de temperaturas-2.zip ya no esta disponible para su descarga. Podrían poner de nuevo su link.

 Gracias.


Desconectado Thulsa Doom

  • PIC24F
  • *****
  • Mensajes: 771
    • https://electronicadicto.wordpress.com/
Re: Problema con PIC18F4550 + ENC28J60 + DS1621 entre protocolos SPI e I2C
« Respuesta #7 en: 02 de Febrero de 2015, 05:01:33 »
Hola, siento decirte que no encuentro ese proyecto, hace mucho tiempo que lo subí, lo seguiré buscando y si lo encuentro lo comparto, en ese entonces no había ni dropbox ni mega  :(
Más códigos y desarrollos en https://electronicadicto.wordpress.com/ date una vuelta y curiosea un rato...

Desconectado Jummi

  • PIC10
  • *
  • Mensajes: 21
Re: Problema con PIC18F4550 + ENC28J60 + DS1621 entre protocolos SPI e I2C
« Respuesta #8 en: 02 de Febrero de 2015, 06:52:49 »
Gracias por tu ayuda de todas formas.

Un saludo.

Desconectado Thulsa Doom

  • PIC24F
  • *****
  • Mensajes: 771
    • https://electronicadicto.wordpress.com/
Re: Problema con PIC18F4550 + ENC28J60 + DS1621 entre protocolos SPI e I2C
« Respuesta #9 en: 12 de Marzo de 2015, 05:24:01 »
Hola Jummi, siento la tardanza pero he estado buscando el proyecto y lo he encontrado ahora, creo que es el que subí en su día, no obstante si quieres puedes echarle un vistazo.

confirma me que lo has bajado para eliminarlo que me ocupa espacio :o

PIC18F4620 + Ethernet

saludos
Más códigos y desarrollos en https://electronicadicto.wordpress.com/ date una vuelta y curiosea un rato...

Desconectado Jummi

  • PIC10
  • *
  • Mensajes: 21
Re: Problema con PIC18F4550 + ENC28J60 + DS1621 entre protocolos SPI e I2C
« Respuesta #10 en: 07 de Abril de 2015, 15:49:52 »
Disculpa la tardanza en responder.

Muchas gracias.


 

anything