Comment relier électriquement une SD card à un ATmega

Les uC ATmega d'AVR disposent d'une SPI (Serial Peripheral Interface) tout comme les cartes mémoires SDcard. Donc la liaison peut se faire directement en reliant MISO àMISO, MOSI à MOSI etc... et paramétrant correctement la SPI, en particulier la fréquence de SCK à 125kHz.

1 sauf que...

Sauf que dans bien des cas des contraintes obligent à alimenter l'ATmega sous 5V alors que les SDcard doivent être alimentées en 3,3V et rien d'autre. Dans ce cas, une liaison directe détruirait la SDcard.

2 Il faut donc...

Il faut donc concevoir une alimentation 3V3 et un adaptateur de niveaux logiques.
  • Pour les signaux qui sortent de l'ATmega et entrent dans la SD card (MOSI, CS, SCK), il faut limiter la tension du niveau haut à 3,3V . Une solution consiste à utiliser une résistance en série et une diode à faible tension directe (diode schottky) reliée au 3V3.
  • Pour le signal qui sort de SDcard et entre dans l'ATmega (MISO =Maitre-In, Slave-Out) il faut au contraire augmenter la valeur du niveau haut de 3V3 vers 5V. (Le datasheet de l'ATmega32 indique que, alimenté sous 5V, le niveau haut en entrée doit se situer au dessus de 0,7 x VCC soit >3,5V ce qui est > à 3,3V). Certes une connexion directe PEUT fonctionner, mais ce n'est pas garanti. On peut donc utiliser soit deux transistors en montage émetteur commun (deux afin de ne pas inverser le signal logique), soit un seul transistor monté en base commune.

3 D'où le schéma proposé (et testé ok)

4 -

Pour le soft, c'est une autre histoire (voir APE2009 Goto pour téléscope sur ce site...)

5 -



22023