protocolo I2C para PIC18F45K20 con compilador C18

-2

Actualmente estoy tratando de recibir datos de la interfaz serial de 2 hilos de un sensor de imagen con un PIC18F45K20 escrito con C18 en MPLAB X IDE v. 1.41. ¿Cómo inicializo el protocolo I2C y cómo genero el reloj serial a 25MHz desde el PIC?

    
pregunta RonnÉ

1 respuesta

1

Usted no "inicializa" el protocolo IIC. El bus simplemente comienza inactivo, que es cada línea que se detiene pasivamente. El mensaje individual tiene una secuencia especial de inicio y fin. Un comienzo es que la línea de datos baja con el reloj alto (normalmente la línea de datos no puede cambiar cuando el reloj está alto), y una parada es la línea de datos que sube con el reloj alto.

En cuanto a cómo generar el reloj, esto se hace dentro del hardware de la IIC (suponiendo que esté utilizando el hardware de la IIC). En este caso, IIC se implementa como una capacidad del periférico MSSP (puerto serie maestro / esclavo). Este periférico está muy bien descrito en el capítulo 17 de la hoja de datos que comienza en la página 193. Si planea usar este periférico para comunicarse con el bus IIC, por supuesto debe leer ese capítulo de la hoja de datos. Detalles como la forma de configurar el generador de velocidad en baudios están ahí.

Como nota separada, 25 MHz es manera demasiado rápida para IIC, y dudo que el PIC pueda producir esa velocidad en baudios de todos modos. No he mirado justo ahora, pero el generador de velocidad en baudios por lo general funciona fuera del reloj de instrucciones, que está limitado a 16 MHz en ese PIC. La mayoría de los dispositivos IIC están especificados para funcionar hasta 400 kHz, con solo 100 kHz. Recuerde que el IIC tiene activaciones pasivas en ambas líneas y que el requerimiento máximo de sumidero de corriente para los dispositivos es bastante bajo, por lo que los flancos ascendentes solo pueden ser tan rápidos.

    
respondido por el Olin Lathrop

Lea otras preguntas en las etiquetas