Aplicación y comparación de la tecnología spi e iic
Ejemplos de aplicación de spi:
Al ejecutar un comando, primero envíe una serie de datos a Flash a través del puerto serie SPI y luego comience con la palabra de comando además de ". leer registro de estado", también es necesario enviar algunos bits irrelevantes a la dirección de la página y a la dirección de bytes dentro de la página. Al "leer la memoria principal", primero debe enviar un comando de 64 bits a Flash, es decir: palabra de comando 52 (8 bits) + 4 "r" + dirección de página (11 bits) + dirección inicial de bytes en la página (9 bits ) + 32 Después de enviar el comando de 64 bits (generalmente combinado en 8 bytes), los datos se pueden leer desde Flash (es decir, la señal SCK posterior hace que los datos se desplacen fuera del pin SO cada vez). Se lee la palabra, sección, la dirección del byte se incrementa automáticamente en 1. Si encuentra el final de la página, siempre que haya una señal SCK, el sistema agregará el interruptor a la página para leer los datos. Durante toda la operación, el pin CS siempre es "0"; cuando el pin CS vuelve a "1", la operación finalizará y el pin SO vuelve al estado de alta impedancia.
Transferir la memoria principal a Bufferx significa copiar el contenido de cualquier página (determinada por PA10 ~ PA0) en la memoria principal de 2048 páginas al búfer Después de enviar el comando de 32 bits, cuando el pin CS. cambia de "0 "Después de " a "1", la copia de datos realmente comienza.
La comparación entre la memoria principal y Bufferx es principalmente para ver si una determinada página en la memoria principal es la misma que el búfer. Cuando el pin CS vuelve a "1", comienza la comparación y la comparación. El resultado (si es el mismo) se registra en el bit6 del registro de estado.
Transferir el Bufferx borrado a la memoria principal significa copiar el contenido del búfer a una determinada página en la memoria principal. Antes de copiar, el contenido del búfer debe copiarse a una determinada página en la memoria principal. Todos los datos de esta página en la memoria principal deben borrarse antes de copiar. Todas estas operaciones solo se pueden realizar después de que el pin CS vuelva a "1". Para la operación de transferir Bufferx a la memoria principal sin borrar, la página de memoria principal especificada debe haberse borrado antes de ejecutar el comando.
Usar Bufferx como búfer para programar la memoria principal es combinar "escribir Bufferx" y "transferir Bufferx con borrado a la memoria principal". Después de enviar el comando, los datos escritos en Flash se escribirán en el búfer. Si se encuentra el final del búfer, los datos que se seguirán escribiendo se escribirán desde el principio del búfer hasta que el pin CS cambie de "0. " a " 1 ", los datos de la página especificada en la memoria principal se borran y luego todos los datos del búfer se copian a la página especificada de la memoria principal.
3 Registro de estado e indicación de finalización de operación
Generalmente, el registro de estado se puede leer después de enviar 57H a Flash (cuando se desplaza hacia afuera, el bit alto primero), la definición de bit del El registro de estado es el que se muestra en la Tabla 2. Bit7 es "0", lo que significa que el dispositivo está ocupado y "1" significa que puede recibir nuevos comandos. Bit6 es el bit de resultado de la comparación; cuando es "0", significa que los datos en la memoria principal y el búfer son los mismos; , cuando es "1" significa que hay al menos uno. Los bits son diferentes; Bit5~Bit3 son los bits de indicación de capacidad de esta serie de dispositivos, con 8 tipos de capacidades, esta área es "011"; ~Bit0 no se utilizan. Un total de 6 operaciones harán que el dispositivo esté en estado "ocupado". Estas 6 operaciones son:
●Transferir la memoria principal a Bufferx;
●Comparar la memoria principal con Bufferx. ;
●Bufferx con borrado se transfiere a la memoria principal;
●Bufferx sin borrado se transfiere a la memoria principal;
●Bufferx es un par de buffers de la memoria principal programación;
●Bufferx reprograma automáticamente el buffer.
Estas 6 operaciones necesitan monitorear el registro de estado para saber si la operación se completó. Además de monitorear el registro de estado, una mejor manera es conectar el pin del chip RDY/BUSY a una interrupción de la CPU y configurar la interrupción en un disparador de flanco ascendente. La interrupción se puede activar tan pronto como se complete la operación. lo que puede ahorrar mucho tiempo de CPU.
4 Interfaz y aplicación SPI
4.1 Interfaz SPI
La interfaz periférica serie tiene 4 modos de funcionamiento, la Figura 3 es el diagrama de tiempos.
Estos modos de funcionamiento determinan la fase del reloj y la polaridad de transmisión y recepción. En otras palabras, estos modos determinan qué flanco de la señal del reloj se utiliza para controlar la dirección de la transmisión de datos. Estos modos generalmente los establece la computadora host (CPU).
Cuando CPOL=0, la señal de reloj SCK es "0" cuando está inactivo, es decir, modo 0 y 1
Si CPOL=1, entonces SCK es "1" cuando; inactivo”, es decir, los modos 2 y 3;
Cuando CPHA=CPOL, los datos siempre se mueven a Flash en el flanco ascendente de la señal del reloj y salen de Flash en el flanco descendente, es decir, modos 0 y 3.
Aplicación de interfaz SPI 4.2
Para un sistema de adquisición de datos de 12 bits, el uso del chip MCU integrado Flash AduC812 de AD puede hacer que el diseño de circuitos sea más simple y rápido. Dado que AduC812 tiene una interfaz SPI compatible con I2C, solo necesita conectar los pines correspondientes a la interfaz Flash de la serie AT45, pero debe configurar AduC812 como maestro y AT45D041 es naturalmente el esclavo. Hay registro de control SPI (SPICON) y registro de datos SPI (SPIDAT) en AduC812. El uso del registro de datos es tan simple como usar el búfer RS232. Las definiciones de bits del registro de control se enumeran en la Tabla 3. Ahora se explica la definición de cada bit:
ISPI: bit de interrupción SPI, establecido en "1" después de cada transmisión de datos incorrectos en SPIDAT
WCOL: Bandera de error de conflicto de escritura; bit, la programación en estado protegido contra escritura hará que este bit sea "1";
SPE: bit de control de habilitación SPI, deshabilitado cuando es "0";
SPIM: Maestro -modo esclavo Seleccione el bit, cuando sea "1", seleccione el host;
CPOL: selección de polaridad del reloj, cuando sea "0", pondrá CLK en un nivel bajo cuando esté inactivo;
CPHA: selección de fase del reloj, cuando es "0", se bloquea en el flanco ascendente del reloj;
SPR1, SPR0: bit de selección de velocidad en baudios SPI, BITRATE=Fose/. "00" selecciona dividir por 4.
4.3 Selección del modo de operación SPI
El flash de la serie AT45 admite los modos SPI 0 y 3, y en el flanco descendente de cada señal CS, el modo de operación se puede seleccionar automáticamente muestreando el estado. del modelo de señal de reloj. Dado que el dispositivo ingresará automáticamente al modo predeterminado 3 cuando se encienda o se reinicie, es más confiable usar el dispositivo. En la aplicación de AduC812, no hay diferencia entre seleccionar el modo 0 y 3 para "escribir" en Flash. Sin embargo, al "leer" Flash, seleccionar el modo 0 hará que a los datos leídos de Flash siempre les falte un bit. los datos en modo 0. El tiempo efectivo es relativamente tarde. La Figura 4 y la Figura 5 son los diagramas de tiempo de "lectura de la memoria principal" del Modo 0 y el Modo 3 respectivamente. Se puede ver en el diagrama de tiempo que el tiempo válido de los datos en el Modo 0 es obviamente medio ciclo de reloj más tarde que el tiempo válido. del Modo 3.
Tabla 2 Definiciones de bits del registro de estado
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
RDY/BUSY COMP 0 1 1 × × ×
Tabla 3 Definiciones de bits del registro de control SPI
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
ISPI LANA SPE SPIM CPOL CPHA SPR1 SPR0
/designarticles /eda/200703/11369.html
La diferencia entre spi e iic:
bus SPI
----Interfaz periférica serie SPI (interfaz periférica serie ) La tecnología de bus es una interfaz serie síncrona introducida por Motorola. La gran mayoría de los MCU (microcontroladores) producidos por Motorola están equipados con interfaces de hardware SPI, como los MCU de la serie 68.
El bus SPI es un bus síncrono de tres cables. Debido a sus sólidas funciones de hardware, el software relacionado con SPI es bastante simple, lo que permite que la CPU tenga más tiempo para manejar otros asuntos.
El bus IIC es un bus de estructura de transmisión de datos en serie de sistema bidireccional de dos cables eficiente, práctico y confiable (también existe un sistema de 3 cables, que rara vez se usa en electrodomésticos) desarrollado por Philips PHILIPS de los Países Bajos. Este bus separa cada circuito en módulos con varias funciones y realiza un diseño de software. Cada circuito de módulo funcional tiene un circuito de interfaz de bus IIC integrado, por lo que se puede conectar al bus, lo que resuelve el problema de entrada entre muchos circuitos integrados funcionales. La CPU. La interfaz de salida hace que su conexión sea muy sencilla.
Los dispositivos en el bus IIC se dividen en dos categorías: el controlador maestro y el dispositivo controlado. Siempre que funcionen normalmente, siempre hay un IIC que envía información y datos en el bus (generalmente). la CPU envía información primero después de encender la computadora). Cada circuito del módulo funcional envía una señal de autoprueba y la máquina ingresa al estado de funcionamiento normal solo después de recibir la señal de datos de retroalimentación normal de cada circuito del módulo funcional).