Après avoir décrit le projet dans l’article précédent, nous allons passer à sa mise en place physique.
Nous allons relier l’ATmega328 au Raspberry Pi par SPI et UART, et utiliser un GPIO supplémentaire (configurable) pour simuler une pin DTR (chargée normalement de reset l’ATmega lors de l’upload d’un sketch)
Au niveau des connectiques, c’est donc relativement simple :
Raspberry | ATmega328 3.3v 1 | 7-20 VCC GND 6 | 8-22 GND UART TxD 8 | 2 Rx RxD 10 | 3 Tx GPIO4 16 | 1 RESET SPI MOSI 19 | 17 MOSI MISO 21 | 18 MISO SCLK 23 | 19 SCK CE0 24 | 1 RESET
Les pins SPI 19,21,23,24 du Raspberry sont connectées aux pins 17-18-19-1 de l’ATmega.
Les pins UART 8,10 du Raspberry sont connectées aux pins 2,3 de l’ATmega. La pin 16 du Raspberry sera utilisée comme pin DTR grâce à un petit hack logiciel. Cette dernière pin est configurable, on le verra dans l’article suivant.
Il peut être judicieux de rajouter un petit condensateur de filtrage de 0.1µF entre les pins 7 et 8 de l’ATmega (au plus près possible), si votre circuit est « bruyant » (avec des moteurs DC dans le circuit, par exemple).
Il est évidemment possible de bootloader l’ATmega via un programmeur classique (comme un Arduino Uno) et uniquement câbler l’UART pour le reprogrammer ou communiquer avec le Pi. C’est personnellement la méthode que j’utilise (mes SPI coté Raspberry sont déja utilisés).
Au niveau du câblage, on est donc paré !
Rendez-vous dans l’article suivant pour la partie logicielle !
8 réflexions au sujet de « Raspberry Pi / ATmega bridge : branchements »