Étape 4: Interfaçage à un Arduino Uno avec niveau-Shifters
Sorties numériques de la Arduino Uno transmettent 0V et 5V comme niveau logique bas et haut, respectivement. La puce de mémoire flash WinBond ne fonctionne qu’entre 2, 7V et 3.6V. Chaque fois que les circuits logiques sur des plans différents de tension ont besoin de communiquer, il faut utiliser un niveau-shifter.
La forme plus simple de niveau-shifter est une pince simple diode Zener. Il existe plusieurs autres types de leviers de niveau dans le monde, certains sont plus rapides, certains utilisent moins d’énergie, la méthode de serrage Zener est rapide et facile.
Toutes les diodes ont une tension de claquage inverse à quel point ils commencent à effectuer. Les diodes Zener sont spécifiquement conçus pour ventilation aux tensions finement réglées. Dans mon cas, j’ai branché 3.3V Zener diode en parallèle avec chacune des entrées numériques de la puce (voir le schéma). (En ce qui concerne les quatre autres broches, sol est 0V et le jury de Uno a 3.3V d’approvisionnement pour la SCR, donc ces pions n’avez une diode et j’ai câblé/WP et /HOLD à 3.3V Vcc.)
Mise à jour : J’ai oublié d’ajouter les résistances 330 ohms en série avec la sortie des pilotes Uno. Normalement, si vous étaient Connectez la sortie numérique de l’ONU à une entrée numérique d’un autre appareil, un simple fil suffirait (puisque vous vous connectez un signal logique numérique à l’autre, voir la datasheet ATmega328, section 13.1 « I/O Pin équivalent schéma »). Mais étant donné que le chemin de sortie branches maintenant par le biais de la Zener, vous avez besoin d’une résistance pour limiter le courant maximum entraîné par la sortie de la logique de la puce Uno/ATmega. Sans la résistance, ce chemin d’accès à la terre peut dépasser le maximum de rendement courant de l’appareil. Qui serait mauvais, Ray.
Maintenant, chaque fois que l’ONU pousse un 5V logique de haut dans, disons, la /CS broche, les commutateurs de diode Zener en mode ventilation, serrage de la tension de 3, 3V, protégeant ainsi la logique d’entrée de la puce de mémoire flash.
À l’aide de ces pinces, j’ai branché la broche de sortie numérique de l’Arduino Uno 10 (SS) à/CS, broche 11 (MOSI) à DI, broche 12 (MISO) à faire et la broche 13 (SCK) à CLK. (Note que les broches de l’Atmega328 ne sont pas les mêmes broches que l’ONU, par exemple, le goujon de Atmega #19 y Uno broche #13.) La logithèque SPI suppose la broche 10 = SS, etc..