112. 😱😱😱 I2C multiplica tus puertos del PIC16F887 Ejemplo completo de I2C usando el circuito PCF8574

112. 😱😱😱 I2C multiplica tus puertos del PIC16F887 Ejemplo completo de I2C usando el circuito PCF8574

Introducción

Resumen de la sección: En esta sección, el profesor de gobi da la bienvenida y presenta el tema del video.

Presentación del tema

  • El video trata sobre el protocolo de comunicación y encuadrado en lenguaje ensamblador.
  • Se va a trabajar con un expansor de puertos para lectura y escritura.

Configuración del microcontrolador

Resumen de la sección: En esta sección, se explica cómo configurar el microcontrolador en modo amo para utilizar sus registros de control y estado.

Registro SSP

  • El registro SSP tiene 17 bits que ayudan a configurar la transmisión y muestreo de señales por parte del PIB.
  • Para modo estándar, se utiliza una velocidad de 100 kHz o 400 kHz si es necesario.
  • El bit LW indica si hay alguna señal en progreso (start, reinicio, stop, solicitud).
  • El bit cero indica si hay una transmisión en curso.

Registro SSPCON1

  • Este registro describe el dato a transmitir.
  • La bandera colisión indica si hubiera una transmisión en curso al encimar un nuevo dato.
  • La bandera sobre flujo indica que llegó un dato nuevo antes de leer previamente el registro.

Otros registros

  • Los bits del 3 al 0 deben ponerse en posición 1000 para configurar al cuadrado como modo amo.
  • La frecuencia del reloj generado estará relacionada con la ecuación que viene aquí.

Desactivación y activación del puerto serie

Resumen de la sección: En esta sección, se explica cómo desactivar y activar el puerto serie.

Registro SSPCON1

  • El bit 5 permite desactivar el puerto serie sin crono.
  • El bit 4 enciende el puerto serie.

Configuración del cuadrado en modo amo

Resumen de la sección: En esta sección, se explica cómo configurar al cuadrado como modo amo.

Registro SSPCON1

  • Los bits del 3 al 0 deben ponerse en posición 1000 para configurar al cuadrado como modo amo.
  • La frecuencia del reloj generado estará relacionada con la ecuación que viene aquí.

Registro SSPADD

  • Este registro es un registro y ahí vas a escribir tu número.
  • Si quieres trabajar a 100 kHz, debes escribir el número 9 en este registro.

Comunicación con esclavos

Resumen de la sección: En esta sección, se explica cómo funciona la comunicación entre un maestro y sus esclavos. Se detalla cómo el maestro envía datos a los esclavos y cómo los esclavos responden al maestro.

Envío de datos a un esclavo

  • El maestro espera una respuesta del esclavo después de enviarle datos.
  • Si el maestro no recibe una respuesta (un cero), debe detener la comunicación y volver a intentarlo.
  • Para comprobar si el esclavo recibió los datos, el maestro debe enviar un cero al esclavo a través del bit "hace cadete".
  • Para transmitir ese cero, el bit "hace" debe estar en 0 y el bit "ca" en 1.

Recepción de datos de un esclavo

  • Cuando el maestro quiere recibir datos de un esclavo, debe generar un reloj para que el esclavo pueda transmitir los datos.
  • Después de recibir los datos, el maestro debe responder con un reconocimiento básico (un cero).
  • Para transmitir ese cero, se utiliza nuevamente el bit "hace cadete", pero esta vez con un valor de 1 en lugar de 0.

Secuencia propuesta por Microchip

  • Microchip propone una secuencia específica para la transmisión de datos entre un maestro y sus esclavos.
  • La secuencia incluye pasos como generar señales de inicio y parada, transmitir la dirección del esclavo y la orden de lectura o escritura, y leer el reconocimiento del esclavo.
  • El registro "ssp" se utiliza para cargar los datos a transmitir.

Finalización de la comunicación

  • Después de que se transmiten los datos, el maestro debe esperar un noveno ciclo de reloj para recibir el reconocimiento del esclavo.
  • Una vez que se recibe el reconocimiento, la comunicación se considera finalizada y se levanta una bandera de interrupción.
  • Para seguir transmitiendo datos, el maestro debe repetir todo el proceso desde el principio.

Modo de Recepción

Resumen de la sección: En esta sección se explica cómo recibir datos del esclavo utilizando una señal de inicio, dirección del esclavo y orden. Se detalla cómo transmitir un noveno bit para que el esclavo pueda mandar su señal de reconocimiento y cómo indicar que queremos leerlo mandándole los ocho pulsos de reloj que corresponden al dato que nos debe transmitir.

Recepción de Datos

  • Para recibir un dato del esclavo, primero generamos una señal de inicio.
  • Después de la señal de inicio, transmitimos la dirección del esclavo y la orden.
  • Transmitimos un noveno bit para que el esclavo pueda mandar su señal de reconocimiento.
  • Una vez recibida la señal de reconocimiento por parte del esclavo, indicamos que queremos leerlo mandándole los ocho pulsos de reloj correspondientes al dato que nos debe transmitir.

Comunicación SSP con 2003

  • La comunicación SSP con 2003 (RCN), genera ocho pulsos de reloj para permitirnos recibir los datos desde el esclavo.

Bandera Interrupción

  • Cuando recibimos una señal de reconocimiento, se levanta la bandera escritura interrupción en SSP y 7 en 1.
  • Cuando recibimos un dato del esclavo, se levanta la bandera interrupción.
  • Al finalizar una actividad específica, se levanta la bandera de interrupción.

Circuito Integrado PSD 85-74

Resumen de la sección: En esta sección se explica el circuito integrado PSD 85-74 que sirve como expansor de puertos. Se detalla cómo configurar los bits del circuito integrado como entrada o salida y cómo controlarlo desde el PIB a través del protocolo de comunicación.

Configuración del Circuito Integrado

  • El circuito integrado PSD 85-74 puede trabajar sin problemas a 5V.
  • Las terminales pueden ser configuradas como entrada o salida dependiendo si quieres leer o escribir en el periférico.
  • Los últimos dos bits menos significativos son proporcionados externamente para poder conectar hasta ocho puertos con este protocolo de comunicación.

Dirección del Circuito Integrado

  • Los bits A0, A1 y A2 son partes de la dirección del circuito integrado.
  • La dirección es de 7 bits y siempre es 72.

Dirección interna del circuito integral

Resumen de la sección: En esta sección se explica la dirección interna del circuito integral y cómo enviar datos al amo o esclavo.

Dirección interna del circuito integral

  • La dirección interna del circuito integral es 0 100.
  • La parte alta de la dirección es 0 1 0 0 y la parte baja de la dirección es 77 grados.
  • Para enviar datos al amo o esclavo, se debe mandar una señal en el pin 2 a través de un bit menos significativo. Si el bit es cero, el amo quiere escribir; si el bit es uno, quiere leer.
  • Cuando el amo envía los datos, el esclavo genera una señal de reconocimiento.
  • El proceso puede seguir hasta que se genere una señal de parada.

Protocolo de cuadrados

Resumen de la sección: En esta sección se explica el protocolo de cuadrados para escribir y leer datos en un circuito integrado.

Escribir datos

  • El proceso comienza con el amo generando una señal de inicio seguida por la dirección y los bits menos significativos que indican que quiere escribir.
  • El esclavo reconoce la señal y espera a recibir los pulsos del reloj para transmitir los datos al amo.
  • Una vez que termina la transmisión, el lado contesta con un reconocido.

Leer datos

  • El proceso comienza con el amo generando una señal de inicio seguida por la dirección y los bits menos significativos que indican que quiere leer.
  • El esclavo reconoce la señal y espera a recibir los pulsos del reloj para transmitir los datos al amo.
  • Una vez que termina la transmisión, el lado contesta con un reconocido.

Registros de interrupción

Resumen de la sección: En esta sección se explica cómo funcionan los registros de interrupción en el circuito integrado.

SSP

  • El registro SSP está en el banco 1 y es donde se escribe el número que ayuda a generar el reloj.
  • El registro SSP2 se usa para generar señales de inicio y parada.
  • El registro SSPBUF es donde se escriben y reciben los datos del esclavo.

Interrupciones

  • La bandera de interrupción está en el registro PIR1.
  • Para dar permiso a la interrupción, hay que revisar los registros PIE1 e INTCON.

Ejemplo de comunicación y cuadrado con dos circuitos PCF 85-74

Resumen de la sección: En esta sección, el presentador explica cómo conectar dos circuitos integrados PCF 85-74 a través de una simulación. Uno de los circuitos estará encargado de sacar el valor binario de un contador ascendente, mientras que el otro leerá el valor en binario que recibirá un switch y lo transmitirá al PIC.

  • Se conectan dos circuitos integrados PCF 85-74 a través de una simulación.
  • Uno de los circuitos está encargado de sacar el valor binario de un contador ascendente.
  • El otro circuito lee el valor en binario que recibe un switch y lo transmite al PIC.

Configurando registros SSPV y SSP para utilizar SSP

Resumen de la sección: En esta sección, el presentador explica cómo configurar los registros SSPV y SSP para utilizar SSP. También menciona que no es necesario modificar el registro ERD ya que está dentro de la primera mitad de la memoria.

  • Se configuran los registros SSPV y SSP para utilizar SSP.
  • No es necesario modificar el registro ERD ya que está dentro de la primera mitad de la memoria.

Configurando registro Indefinido para hackear ssp conos

Resumen de la sección: En esta sección, el presentador explica cómo configurar el registro indefinido para hackear ssp conos. La dirección que el usurpador se escribe en el registro de PCR y en el usurpador es el registro indefinido.

  • Se configura el registro indefinido para hackear ssp conos.
  • La dirección que el usurpador se escribe en el registro de PCR y en el usurpador es el registro indefinido.

Iniciando un contador ascendente

Resumen de la sección: En esta sección, el presentador explica cómo iniciar un contador ascendente y declara los registros que serán contadores.

  • Se inicia un contador ascendente.
  • Se declaran los registros que serán contadores.

Bajando la bandera de interrupción SCPF

Resumen de la sección: En esta sección, el presentador explica cómo bajar la bandera de interrupción SCPF antes de empezar a usarla para evitar una construyéndose efe.

  • Se baja la bandera de interrupción SCPF antes de empezar a usarla para evitar una construyéndose efe.

Entiendo, comenzaré a resumir el contenido del video en español utilizando el formato de markdown y asociando los bullet points con los timestamps correspondientes.

Configuración en movimiento

Resumen de la sección: En esta sección, se habla sobre la configuración necesaria para poder utilizar el modo indirecto en el registro 7. Se explica cómo configurar los registros y puertos serie, así como la importancia de generar una señal de inicio para comunicarse con otros circuitos integrados.

Configuración de registros y puertos serie

  • Es necesario configurar los registros y puertos serie para poder utilizar el modo indirecto.
  • Se debe configurar el registro de voz en la ssp con.
  • El puerto serie sin crono debe encenderse con un 1.
  • El beat 4 debe dejarse en cero.
  • Se debe escribir 1 y 3 para nombrar la configuración: 0 0 1 0 1 y 3 0.

Generación de señal de inicio

  • Es importante generar una señal de inicio para comunicarse con otros circuitos integrados.
  • Se puede generar una señal de reinicio o detener la comunicación e iniciar con otro circuito integrado.
  • Se recomienda generar una señal de inicio ya que es más conveniente si se agregan más circuitos integrados al proceso.
  • Para generar la señal, se utiliza un código que genera una señal de parada y después le genera un inicio al otro circuito.

Configuración del contador hacia el primer circuito integrador

  • Para transmitir el contador hacia el primer circuito integrador, se debe generar una señal de inicio y consultar si la bandera de interrupción se ha levantado.
  • Se debe utilizar el circuito que tiene la dirección y otros 7.700.
  • Es recomendable generar una rutina para generar la señal de inicio y detener la comunicación e iniciar con otro circuito integrado.
  • Se debe mandar la dirección utilizando un valor binario.

Envío de señal

  • Para enviar la señal, se utiliza una rutina llamada "envía s".
  • Se manda la dirección con dirección al circuito integrado 0 1 0 0.
  • Se envía el bit menos significativo que da la orden.

Conclusiones

Resumen de la sección: En esta sección, se concluye sobre los pasos necesarios para configurar los registros y puertos serie, así como para generar una señal de inicio y transmitir el contador hacia el primer circuito integrador.

Pasos necesarios

  • Es necesario configurar los registros y puertos serie para poder utilizar el modo indirecto en el registro 7.
  • Se recomienda generar una señal de inicio ya que es más conveniente si se agregan más circuitos integrados al proceso.
  • Para transmitir el contador hacia el primer circuito integrador, se debe generar una señal de inicio y consultar si la bandera de interrupción se ha levantado.

Valor y transmisión de datos

Resumen de la sección: En esta sección, se discute el valor que se le asigna a una variable y cómo se transmite esa información.

Asignación de valor

  • Se asigna un valor a una variable.
  • El valor es transmitido a través del circuito integrado.

Transmisión de datos

  • Se transmite la dirección y la orden para escribir en el circuito integrado.
  • Se espera a que el esclavo envíe el conocimiento.
  • Se consulta si ya llegó la señal de reconocimiento.
  • Si está en cero, continúa; si no, se detiene.

Consulta de bandera

  • Se consulta si ya se levantó la bandera.
  • Si está en cero, continúa; si no, se detiene.

Incremento del contador

  • El contador incrementa en 17 puntos.
  • Se llama a una subrutina para suspender el proceso por un segundo.

Receptor del transmisor

Resumen de la sección: En esta sección, se discute cómo funciona el receptor del transmisor.

Recepción de datos

  • El receptor recibe los datos enviados por el transmisor.
  • La dirección y la orden son recibidas para leer en lugar de escribir en el circuito integrado.

Lectura del valor

  • Se lee el valor del circuito integrado.

Configuración del protocolo

Resumen de la sección: En esta sección, el presentador explica cómo configurar el protocolo y enviar una dirección al esclavo para escribir en él.

Generando la señal de lectura

  • Para leer al esclavo, se genera una señal de lectura enviando ocho pulsos de reloj necesarios para que los clavijas enlacen.
  • Se genera una subrutina que genera los pulsos de reloj necesarios para leer al esclavo.

Enviando datos al esclavo

  • Se envía la dirección inicial al esclavo con la orden de que en el tramo quiere escribir.
  • Se envía un dato a través del puerto ssp-df y se consulta si llegó bien. Si no llegó bien, se salta directamente el stop.
  • Se envía una señal de reconocimiento después de recibir un dato.

Deteniendo la comunicación

  • Después de determinar la comunicación, se detiene la comunicación preguntando al contador y esperando un segundo antes de volver a leer.

Leyendo desde el circuito integrado seguro

Resumen de la sección: En esta sección, el presentador explica cómo leer desde el circuito integrado seguro después de haber recibido un byte.

Generando los pulsos necesarios

  • Después de recibir un byte, se generan nueve cursos u ocho cursos para leer desde el circuito integrado seguro.

Deteniendo la comunicación

  • Se detiene la comunicación después de recibir los datos y se vuelve al primer sitio.

Revisando errores de sintaxis

Resumen de la sección: En esta sección, el presentador revisa los errores de sintaxis en el código y corrige cualquier problema que encuentre.

Corrigiendo errores de sintaxis

  • El presentador encuentra un error de sintaxis en una etiqueta y lo corrige.
  • El presentador espera que no haya más errores de sintaxis antes de cerrar el programa.

Uso del cortador y revisión del circuito integrado

Resumen de la sección: En esta sección, el presentador explica cómo utilizar el cortador y revisa el circuito integrado.

Uso del cortador

  • El peak le va tranquilo valor del cortador luego despegar en esta barra billetes la terminal de introducción que de forma es cómo lo vamos a utilizar.
  • Nada más nos dice el fabricante le ponemos una resistencia directamente 5volts y listo sería como para estas dos terminales directamente pues deben de ir al todo.

Revisión del circuito integrado

  • La dirección de este circuito integrado sería 001.
  • Las líneas cruzadas indican que el bit menos significativo lo ponemos a 12.
  • El deep switch 7 asfaltar el pont está abajo que decir que si lo de arriba que lo que pasa hacia abajo pues tendría que bajar el botón pero qué pasa siguiendo con todos los botones arriba pues no habría comunicación.
  • La terminal de interrupción se manda directamente a cinco golpes a través de una resistencia y la terminal es esa idea y ssl van directamente al otro circuito integrado.
  • Las líneas ssl y sd van a cinco botones.
  • Las líneas ssl y sd son parte del protocolo de comunicación.
  • Es importante conectar unas resistencias de innovación en estas terminales para asegurar su correcto funcionamiento.

Revisión con eclipse

  • Con eclipse, podemos revisar cómo funciona el circuito integrado.
  • El circuito integrado en vuelos significativos viene hasta la izquierda yo lo manejó hasta la derecha por eso es que vienen las líneas cruzadas.
  • Si no hay nada conectado, como el circuito integrado internamente, no habría comunicación.
  • Al bajar los interruptores, se transmite el cero por los que estén conectados hacia abajo.
  • Es importante conectar las terminales de referencia para que funcione correctamente.
  • Podemos direccionar los dos circuitos integrados sin problemas y expandirnos para tener más puertos de comunicación.

Ejemplo práctico

Resumen de la sección: En esta sección, el presentador muestra un ejemplo práctico del uso del protocolo de comunicación.

Ejemplo práctico

  • El ejemplo nos permite ver qué fácil es configurar el protocolo de comunicación desde lo más sencillo.
  • Podemos utilizar un circuito integrado que es un reloj en tiempo real para tener la hora en nuestros proyectos.
  • El contador empieza en 5 porque lo configuramos así y podemos modificar su valor.
  • Los circuitos integrados multiplican nuestros puertos de comunicación.

Conclusión

  • Este ejemplo es muy útil para entender cómo funciona el protocolo de comunicación y cómo utilizarlo en nuestros proyectos.
  • En el siguiente ejemplo, utilizaremos un circuito integrado que es un reloj en tiempo real.