Paso 10: Está bien, sensor de I²C esclavo está construida, ¿qué hago con él?
Si está hecho con los pasos anteriores, puede sentarse y verlo trabajar con un arduino. Si quieres algo interesante, seguir trabajando para conseguir un enfriamiento de medición "de la cinta"!
Hace unos años yo trabajaba con mi papá en una casa, que su red de cableado eléctrico todo rehecho. Mientras trabajábamos en que tenemos que medir Si los cables se conectan, si la red está presente en los cables, etc.. Nos olvidamos de cambiar nuevamente el multímetro a la posición de medición de alto voltaje: auge. Tiré las tripas hacia fuera, pero mantiene el recinto, pensé, tal vez se utilizo un día. Originalmente quise construir mi medidor en el recinto de ese roto multi-meter, pero no pude averiguar qué poner en el círculo vacío en el medio, donde el interruptor giratorio que solía ser. Busqué en la web algo similar y encontró la caja de BOS501B.
Tiene espacio para una batería de 9 V, unos agujeros y una ranura para las pantallas de LED 4 que voy a utilizar.
Trabajo previo de PCB
Volver a la pinza, hacer mediciones de donde los agujeros están, donde está la ranura de la pantalla, así que usted puede averiguar el tamaño de los tableros. Las fases de trabajo son las mismas que con las placas anteriores. Echale un vistazo al video donde veíamos cómo forma la Junta!
Esquema
Si quiero más mi sensor I²C, (en mi caso para convertirlo en una herramienta de medición) tengo que añadir una pantalla y algunos componentes de la interfaz de usuario, por lo que mi papá lo puede controlar. La opción más fácil: usar otro PIC12LF1840T39A idénticos para hacer las consultas de I²C y SPI bits-golpeando la pantalla. También he añadido dos botones en los alfileres de MCLR en caso de desee a algún tipo de entrada del usuario. Aquí es mi esquema, la mayoría de los componentes agregaron a mis bibliotecas durante este proyecto.
Un bus SPI (interfaz periférica Serial) ofrece una comunicación bidireccional entre dos dispositivos. Similares al protocolo I²C previamente utilizado, esto también es maestro/esclavo basado. A menudo se llama interfaz de cuatro hilos; sin embargo, un bus SPI a menudo utiliza los alambres de 3, 5, 6 o incluso más para comunicarse. El autobús SPI se puede ampliar añadiendo esclavos a él: su MOSI, MISO, SCLK terminales están cableados juntos, su pin de selección de esclavo tiene que ser tirada por separado. El pin seleccionar esclavo de un esclavo SPI es como la secuencia de bytes de dirección de esclavo para un dispositivo I²C.
Generalmente tarda 8 relojes para completar a una transferencia de datos. Mientras el dispositivo maestro envía un poco al esclavo (en la línea MOSI), el esclavo envía un poco al maestro (línea MISO). Esta transferencia se sincroniza por la señal de reloj en la red de SCLK. La frecuencia de esta señal de reloj puede ir hasta decenas de MHz.
El protocolo SPI y el PIC12LF1840T39A
En el corazón de un SPI PIC módulo es el registro de desplazamiento SPIxSR, el cambio se produce con cada señal de reloj en el pin SCLK. Similar a otros dispositivos de la serie, esto también es doble buffer, el contenido de SSP1SR no puede ser escrito o leer directamente. Los datos necesarios para enviar deben estar escritas en SSP1BUF, esto actúa como un registro de la transmisión en escritura. Durante la transmisión, los datos se carga automáticamente en SSP1SR y se registran partir de aquí.
Recepción se hace nuevamente mediante el registro de desplazamiento interno. Cuando se registran 8 bits en el SSP1SR, el byte es cargado dentro de SSP1BUF, el usuario puede leer desde allí. Esta vez, el SSPBUF actuó como un registro de recepción.
Los módulos SPI construidos en las fotos pueden trabajar hasta 10 MHz. En nuestro caso en particular, usaremos ~ 10 KHz.
Para nuestra gran tristeza, lo SPI y las líneas de I²C son multiplexadas a los pines de la misma. Esto significa, que tendremos que bit-bang, uno de ellos. Escribí algunas rutinas para otro instructable, copiado a este procesador, pero golpeó algunas dificultades, así que les escribí otra vez, esta vez sin cualquier interrupciones implicadas.
Porque estoy usando poco golpeado SPI, realmente no entraré en detalles sobre ello. Algo centraremos en el análisis de la hoja de datos MAX7219, para ver lo que tengo que poner en los pines para que funcione!
Aquí está una imagen de la hoja de datos de MAX7219:
Se puede ver cómo las líneas necesitan ser fijada, como pasa el tiempo. Eso es exactamente lo que tienen mis señales que parecen en un ámbito, cuando ya he terminado. Mire el ejemplo de código y analizar lo que está escrito allí, que vas a ver cómo actúa para generar el patrón de bits que necesitamos.
Esto puede ser reutilizado, sólo tienes que cambiar la define-s # en el archivo de encabezado, o dondequiera que usted colocó. Tengo una interrupción por versión también, pero me deshice de él, porque yo si era culpable de mi pantalla no funciona. Resultó más adelante la pantalla estaba en la capa superior en lugar de la capa inferior - esto me estaba dando los dolores de cabeza. Sin embargo, en ese momento yo ya rodado sobre el algoritmo basado en la demora SPI bit-bang y no quería cambiar de nuevo.
Una vez que el código que escribiste genera la forma de onda exacta que esperas que generan, pueden pasar a enviar comandos a la pantalla! Hay un montón de maneras de probar el algoritmo, hay simulador, analizadores, ámbitos que pueden ayudarle con esto.
Se trata de una transmisión de palabra, recorta hacia fuera y el zoom de la imagen siguiente con el intercambio de datos
Bueno, parece que llegamos nosotros mismos a través de esta cosa de la pantalla también. Ahora tenemos que configurar este PIC para tener su módulo MSSP configurado como un maestro I²C.