Autor Tema: A vueltas con el I2C Debugger  (Leído 5318 veces)

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

Desconectado Diodin

  • PIC10
  • *
  • Mensajes: 10
A vueltas con el I2C Debugger
« en: 16 de Enero de 2008, 15:10:08 »
Hola a todos.
Estoy metido en un proyectillo en el que se maneja un integrado por I2C. La cuestión es que quiero usar el ISIS para simular la comunicación I2C con dicho integrado pero no se cómo manejar el I2C debugger. En concreto, para que la cosa funcione necesito que el I2C responda a la dirección que le mando, tras haber mandado una condición de inicio, con un reconocimiento, ack. De lo contrario el PIC se queda repitiendo STAR+Dirección en modo escritura por los tiempos de los tiempos, amén. O sea, que de ahí no pasa. ¿Cómo hago que el I2C debugger mande el ack... o cualquier otra cosa, al PIC tras darse por aludido mediante su dirección?

A ver si alguno puede echarme una mano.  Gracias.

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: A vueltas con el I2C Debugger
« Respuesta #1 en: 16 de Enero de 2008, 15:16:46 »
El I2C Debugger es una herramienta para ver la comunicación entre un maestro y un esclavo, pero no genera ningún tipo de trama ni de respuesta, solo las visualiza.

Un saludo.
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado Diodin

  • PIC10
  • *
  • Mensajes: 10
Re: A vueltas con el I2C Debugger
« Respuesta #2 en: 16 de Enero de 2008, 16:19:47 »
jfh900 gracias por tu prota respuesta, pero me parece que no es así. Copio y pego de la ayuda del I2c debugger en ISIS y traduzco con Babylon:

Overview

The I2C Protocol Analyzer allows you to monitor and interact with the I2C bus. The
analyzer has two purposes: to allow you to view data sent along the I2C-bus and to
permit you to send data onto the I2C-bus either as a master or as a slave device.
This makes it invaluable both as a debugging instrument but also as a development
and testing aid when writing your own I2C routines (not to mention being a fraction
of the cost of it’s hardware equivalent).

Traducción

Panorama El I2C Protocolo analizador le permite controlar e interactuar con el I2C bus. El analizador tiene dos propósitos: le permiten ver datos enviados junto a la I2C-bus y permitir a enviar datos en la I2C-bus ya sea como un maestro o como un esclavo dispositivo. Esto hace inestimable tanto depuraci� como un instrumento sino también como un desarrollo y el ensayo ayuda cuando escribir su propia I2C rutinas (no mencionar una fracción del costo de hardware es equivalente).


Según yo entiendo el I2C debugger debe de ser capaz de interactuar mandando datos por el bus cuando se le requiere.

Un saludo también para ti.

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: A vueltas con el I2C Debugger
« Respuesta #3 en: 16 de Enero de 2008, 16:27:39 »
Pues tienes toda la razón del mundo. Mi error esta en que en versiones anteriores del I2C Debugger no lo traía. Bueno vamos al grano, por eliminación el único cuadro donde puedes escribir es en el cuadro desplegable que tienes debajo de la ventana de Predefined Sequences, ahí pones los valores y le das a queue y lo manda al bus. Si le das a add te lo añade a la lista de secuencias predefinidas (para no tener que repetirlas).

Un saludo
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado Diodin

  • PIC10
  • *
  • Mensajes: 10
Re: A vueltas con el I2C Debugger
« Respuesta #4 en: 19 de Enero de 2008, 13:49:11 »
Hola de nuevo. He estado investigando un poco el manejo de i2C Debugger y he conseguido sacar en claro lo siguiente:
- El i2C Debugger (i2cd a partir de ahora) puede trabajar en modo esclavo o en modo maestro. El modo por defecto es el maestro. Para que pase a trabajar como esclavo es necesario asignarle una dirección (doble clic sobre el i2cd para desplegar sus propiedades y a continuación en address1 -y quizás también en address2- introducir la dirección asignada a este esclavo).
- Se pueden insertar más de un i2cd en el esquema para realizar simulaciones. Esto es muy útil para la investigación, ya que permite usar uno como maestro y el otro como esclavo y ver como interactúan.
- Haciendo lo anterior, arrancamos la simulación en modo pausa. Tras esto introducimos secuencias para ser enviadas en el monitor del maestro (escribimos la secuencia en el cuadro de texto y pulsamos el botón add)
- Procedemos de igual manera en el monitor del dispositivo esclavo. Es aconsejable empezar por una simple condición de reconocimiento, ack, representada por una A. Tras esto, la 'A' se habrá añadido en la ventana de la derecha del monitor. La seleccionamos con un clic y pulsamos el botón queu varias veces. Cada pulsación sobre el botón añade la secuancia 'A' una vez a la cola. Cada secuencia añadida a la cola permanecerá en ella a la espera del momento oportuno para ser enviada al bus.
- Corremos la simulación. En el monitor del maestro seleccionamos con un clic la secuencia introducida inicialmente. A continuación, cada pilsación sobre el botón queu hará que el maestro envíe esa secuencia al bus... y el esclavo responderá con ack en el momento oportuno de forma automática. Todo el intercambio de información queda reflejado en las ventanas de ambos monitores, el del maestro y el del esclavo.

NOTAS:
- No peder de vista los mensajes que se van produciendo en la ventana de mensajes. Pueden ser muy útiles para detectar y solucionar posibles problemas.
- He tenido problemas con la dirección del esclavo. Al final conseguí que funcionase el sistema usando la dirección 60. Por cierto, parece que la entiende como hexadecimal. Sin embargo, si intentamos poner una dirección tal como 6A no se la traga y da error.
- Secuencia aconsejada para el maestro: S 0x60 P. Esta secuencia no es otra cosa que una condición de inicio(S) seguida por la dirección del esclavo(0x60). Por último se manda una condición de parada(P).


Bueno, a ver si alguno puede llegar a solucionar el problema de la dirección del esclavo. Yo necesito que sea C0 (192 en decimal) y no hay forma, ya que si introduzco C0 me da error, y si introduzco 192 lo toma como hexadecimal.


Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: A vueltas con el I2C Debugger
« Respuesta #5 en: 19 de Enero de 2008, 13:53:48 »
Has probado a poner 0xC0 (esto lo admite).

Un saludo
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado Diodin

  • PIC10
  • *
  • Mensajes: 10
Re: A vueltas con el I2C Debugger
« Respuesta #6 en: 19 de Enero de 2008, 15:42:02 »
Hola,

sí, lo probé pero da una advertencia en la ventana de mensajes: Address 1 has been ignored because it is set to the General Call Address (Dirección 1 se ha pasado por alto porque se ha establecido a la Dirección General de llamadas, según el Google). Este mensaje se genera siempre que se antepone a la dirección 0x. Además, aunque la simulación sigue corriendo el esclavo deja de responder con ack, apesar de que el maestro sigue direccionándolo con la misma dirección hexadecimal.

Pienso que se trata de un fallo del modelo de simulación del i2cd o del propio simulador a la hora de requerir la entrada de datos (en concreto de la dirección del esclavo).

Un saludo

Desconectado pajaro

  • PIC24H
  • ******
  • Mensajes: 1121
Re: A vueltas con el I2C Debugger
« Respuesta #7 en: 11 de Junio de 2008, 18:52:26 »
Diodin,

Solucionaste el problema del i2c, yo he estado investigando pero no se como poner dos mem 24lc256 y poder ver como trabaja el i2c debug, en propiedades aparece algo de un archivo de secuencia , no se alguien me pude indicar una ayuda

gracias, a todos.