Retour Suite
sylvainmahe.site LE SITE de Sylvain Mahé contact@sylvainmahe.site
Article : Sylvain Mahé contact@sylvainmahe.site L'automate programmable MODULABLE 20 Cet automate programmable associé au programme MODULE (c'est-à-dire compatible dans les fonctionnalités et les entrées/sorties) est un calculateur embarqué qui est chargé d'exécuter les instructions machine de votre programme, il peut être équipé des microcontrôleurs ATmega48P, ATmega88P, ATmega168P, ou ATmega328P. Le plan de fabrication de ce circuit imprimé est disponible au format de fichiers Gerber ici : Télécharger le plan de fabrication de l'automate programmable MODULABLE 20 (.zip, 401 octets) Selon si votre projet requiert plus ou moins de mémoire Flash, EEPROM, ou SRAM, 4 microcontrôleurs différents peuvent être implantés sur la carte MODULABLE 20 : Microcontrôleur ATmega48P :
- Mémoire Flash = 4096 octets (4Kio)
- Mémoire EEPROM = 256 octets (0.25Kio)
- Mémoire SRAM = 512 octets (0.5Kio)

Microcontrôleur ATmega88P :
- Mémoire Flash = 8192 octets (8Kio)
- Mémoire EEPROM = 512 octets (0.5Kio)
- Mémoire SRAM = 1024 octets (1Kio)

Microcontrôleur ATmega168P :
- Mémoire Flash = 16384 octets (16Kio)
- Mémoire EEPROM = 512 octets (0.5Kio)
- Mémoire SRAM = 1024 octets (1Kio)

Microcontrôleur ATmega328P :
- Mémoire Flash = 32768 octets (32Kio)
- Mémoire EEPROM = 1024 octets (1Kio)
- Mémoire SRAM = 2048 octets (2Kio)
L'antériorité de ce projet veut que j'ai débuté la programmation de MODULE avec le microcontrôleur ATmega328P et un prototype qui ressemble beaucoup au MODULABLE 20. Mais depuis j'ai conçu un automate programmable, le MODULABLE 32, plus intéressant sur bons nombres de points. Cet automate programmable en comparaison au MODULABLE 32 garde néanmoins l'avantage d'être moins onéreux en ce qui concerne le coût des composants, de dimension (longueur seulement) légèrement plus petite, ainsi que plus rapide à assembler. Cet automate programmable peut être alimenté de +6V jusqu'à +26V, ce qui est favorable à une batterie Lithium-ion polymère (LiPo) de 2S à 6S standard (+8.4V à +25.2V), ou encore à des sources d'alimentation assez communes de +12V ou +24V en courant continu. Néanmoins selon le courant demandé, le circuit de régulation de tension embarqué dans cet automate programmable pourra délivrer une tension stable de +5V via une tension d'alimentation supérieure à +5V mais inférieure à +6V, ceci grâce aux faibles pertes (dropout) du régulateur de tension LM2940. À noter que le microcontrôleur fonctionnera normalement (dans ses spécifications techniques) avec des tensions d'alimentation bien inférieures à +5V en entrée, ce qui est sécuritaire notamment pour certains systèmes embarqués dont la tension d'alimentation est critique. L'utilisation d'un régulateur de tension linéaire a plusieurs avantages par rapport au régulateur de tension à découpage : - Bruit électrique très faible.
- Aucun bruit acoustique audible.
- Grande stabilité en tension de sortie.
- Bonne régulation lorsque la tension d'entrée est proche de la tension de sortie.
- Grande plage de tensions d'entrée.
Les caractéristiques de la carte :
- Microcontrôleur ATmega48P, ATmega88P, ATmega168P ou ATmega328P.
- Régulateur de tension LM2940 +5V 1A.
- 1 port POWER (alimentation) de +6V à +26V.
- 1 port ISP (programmation in-situ) pour la programmation du microcontrôleur.
- 20 ports GPIO (entrées/sorties pour un usage général), avec 20 broches +5V (pôles positifs) et 20 broches GND (masses) pour l'alimentation des périphériques.
- Fréquence de fonctionnement : 16MHz.
- Dimensions : 66.04mm x 40.64mm.
- Entre-axes de fixations : 58.42mm x 33.02mm.
- Fixations par vis M3 (perçages diamètre 3.2mm).
Liste des composants : 1x Microcontrôleur ATMEGA48P (boîtier DIP-28)
ou 1x Microcontrôleur ATMEGA88P (boîtier DIP-28)
ou 1x Microcontrôleur ATMEGA168P (boîtier DIP-28)
ou 1x Microcontrôleur ATMEGA328P (boîtier DIP-28)
1x Régulateur de tension LM2940 (version fixée +5V, boîtier TO-220)
1x Résistance 200Ω ± 1% 250mW
1x Résistance 10kΩ ± 1% 250mW
2x Condensateurs céramique 18pF >=10V (pas 5.08mm)
4x Condensateurs céramique 100nF >=10V (pas 5.08mm)
1x Condensateur électrolytique aluminium 10μF >=52V (pas 2mm)
1x Condensateur électrolytique tantale 22μF >=10V (pas 2.54mm)
1x Condensateur électrolytique aluminium 100μF >=10V (pas 2mm)
1x Inductance self 10μH 100mA (boîtier axial)
1x Diode Schottky 1N5819
1x Quartz 16MHz (pas 5.08mm)
1x Del 3mm (pas 2.54mm, couleur de votre choix)
1x Support DIP-28 300mil
68x Broches mâles (pas 2.54mm)
1x Dissipateur thermique (pour boîtier TO-220)
À gauche les composants nécessaires, à droite le PCB nu : Correspondance des ports GPIO (automate programmable par rapport aux microcontrôleurs) : - Port GPIO 1 = PD0
- Port GPIO 2 = PD1
- Port GPIO 3 = PD2
- Port GPIO 4 = PD3
- Port GPIO 5 = PD4
- Port GPIO 6 = PD5
- Port GPIO 7 = PD6
- Port GPIO 8 = PD7
- Port GPIO 9 = PB0
- Port GPIO 10 = PB1
- Port GPIO 11 = PB2
- Port GPIO 12 = PB3
- Port GPIO 13 = PB4
- Port GPIO 14 = PB5
- Port GPIO 15 = PC0
- Port GPIO 16 = PC1
- Port GPIO 17 = PC2
- Port GPIO 18 = PC3
- Port GPIO 19 = PC4
- Port GPIO 20 = PC5
La fonction principale des ports d'entrée/sortie des microcontrôleurs est la GPIO, c'est-à-dire des entrées/sorties pour un usage général. Mais certains ports d'entrée/sortie sont reliés (en interne aux microcontrôleurs) à des fonctions matérielles spécifiques, comme par exemple USART, SPI, TWI, PWM, ADC, etc... Dans tous les cas l'usage de ces ports est détaillé dans la section "La documentation du programme MODULE" en page d'accueil. Quelques photos du prototype à l'époque où je débutais la programmation de MODULE :