Paso 4: Conexión a un Arduino Uno con desplazadores de nivel
Salidas digitales de Arduino Uno transmiten 0V y 5V como niveles lógicos bajos y altos, respectivamente. El chip flash WinBond sólo opera entre 2.7V y 3.6V. Cuando los circuitos de lógica en diverso voltaje planos necesitan comunicarse, tenemos que usar un desplazador de nivel.
La forma más fácil de cambio de nivel es una abrazadera simple diodo Zener. Hay muchos otros tipos de cambiadores de nivel en el mundo, algunos son más rápidos, algunos utilizan menos energía, el método de la abrazadera del Zener es rápido y fácil.
Todos los diodos tienen un voltaje de interrupción reverso momento en el que empiezan a realizar. Diodos Zener están diseñados para distribución a voltajes finamente sintonizados. En mi caso, he conectado un 3,3 v diodo Zener en paralelo con cada una de las entradas digitales de la viruta (véase el esquema). (En cuanto a las otras cuatro clavijas, tierra es 0V, y el tablero de Uno tiene un 3.3V fuente de VCC, por lo que estos pernos no necesita un diodo y cableado WP y /HOLD a 3,3 v Vcc.)
ACTUALIZACIÓN: me olvidé de añadir las resistencias de 330 Ohm en serie con la salida de los conductores de Uno. Normalmente, si se conecta la salida digital de la ONU a una entrada digital de otro dispositivo, un cable simple sería suficiente (ya que se conecta una señal lógica digital a otro, consulte la hoja de datos del ATmega328, sección 13.1 "I/O Pin equivalente esquema"). Pero puesto que la ruta de salida ahora se ramifica a través del Zener, es necesario un resistor para limitar la corriente máxima por la salida lógica del chip Uno/ATmega. Sin la resistencia, este camino a la tierra puede superar el máximo corriente del dispositivo de salida. Que sería malo, Ray.
Ahora, cada vez que la ONU impulsa un 5V lógica alta en, digamos, el /CS pin, el diodo Zener interruptores en modo de interrupción, fijación con abrazadera del voltaje a 3.3V, protegiendo la entrada lógica del chip flash.
Con estas pinzas, que conectado el pin de salida digital de Arduino Uno 10 (SS) a/CS, pin 11 (MOSI) di, pin 12 (MISO) hacer y pin 13 (SCK) a CLK. (nota que los pines del Atmega328 no son las mismas clavijas como la ONU, por ejemplo, el perno del Atmega #19 es Uno pin #13.) La biblioteca de software SPI asume pin 10 = SS, etc..