uPesy One
(Mis à jour le 02/11/2023)
Sélectionnez la version de votre carte mentionnée au verso: Rev x.y
Voir aussi
Si vous venez de recevoir une carte uPesy One, je vous conseille d’abord de regarder le guide de prise en main rapide , si ce n’est pas déjà fait.
Bienvenue dans la documentation de la carte uPesy One , une carte compatible Arduino UNO, Made In France, fabriquée par uPesy Electronics. Vous trouverez dans cette documentation technique toutes les informations nécessaires pour commencer à travailler avec cette carte.
La carte uPesy One en quelques zones clés
Broches numériques : Ce sont des broches entrées/sorties logiques que l’on utilise avec les fonctions
digitalRead()
,digitalWrite()
etanalogWrite()
. Les broches avec le symbole~
peuvent générer un signal à tension variable (PWM) via la fonctionanalogWrite()
.
LED de la broche 13 : Une LED orange est reliée à la broche 13. Elle s’allume lorsque la broche est activée (5V) et s’éteint quand la broche est désactivée (0V). Le programme de démonstration
Blink
la fait clignoter. Elle est pratique pour faire ses premiers sketchs Arduino sans utiliser de composants électroniques externes.
LED d’alimentation : Cette LED verte s’allume lorsque la carte uPesy One est alimentée. C’est un bon moyen de savoir si votre carte est sous tension.
Microcontrôleur ATmega : C’est le cerveau de la carte uPesy One, qui exécute votre programme.
Entrées analogiques : Ces broches sont utilisées pour lire une tension analogique d’un circuit ou d’un capteur. Elles s’utilisent avec la fonction
analogRead()
.
Broches GND, 3V3 et 5V : Utilisez ces broches pour fournir une alimentation
+3.3V
,+5V
et une masse à vos circuits sur breadboards et pour alimenter vos capteurs.
Connecteur d’alimentation externe : Cette prise d’alimentation Jack permet d’alimenter votre carte uPesy One lorsque celui-ci n’est pas branché sur un port USB. Accepte des tensions entre 6.5V et 12V.
LED TX et RX : Ces LEDs oranges indiquent l’activité de la communication sur l’USB entre l’ordinateur et votre carte uPesy One. Elles clignotent rapidement à chaque téléversement d’un nouveau programme.
Connecteur USB : Ce connecteur USB-C permet d’alimenter la carte uPesy One, de télécharger des programmes, et de recevoir des messages via la fonction
Serial.println()
.
Bouton RESET : Permet de redémarrer de force le microcontrôleur, pour relancer le programme présent sur la carte uPesy One.
Le schéma des broches | uPesy One Pinout
La carte uPesy One possède 3 types de broches :
Les broches d’entrées/sorties logiques (D0 → D13)
Les broches d’entrée analogique (A0 → A5)
Les broches d’alimentation
Les Broches Entrées/Sorties logiques
Ces broches peuvent soit imposer une tension de 0V ou de 5V en sortie avec la fonction digitalWrite()
, soit lire un niveau logique (0 ou 5V) via digitalRead()
. On utilise la fonction pinMode()
pour configurer la broche en sortie ou en entrée. Elles peuvent délivrer un courant de 40mA.
En plus de ces fonctions de base, la plupart des broches ont des fonctionnalités supplémentaires :
PWM Les broches 3, 5, 6, 9, 10 et 11 peuvent générer une sortie PWM sur 8 bits avec la fonction
analogWrite()
. Cela permet d’avoir en sortie une tension variable comprise entre 0 et 5V-
Des bus de communications :
Port Série (UART) : 0 (
RX
) and 1 (TX
). Ces broches sont utilisées pour recevoir (RX
) et transmettre (TX
) des données via un port série. Elles sont utilisées par la carte uPesy One en interne lorsqu’elle est branchée par USB avec l’ordinateur pour échanger des données.SPI : 10 (
CS
), 11 (MOSI
), 12 (MISO
), 13 (SCK
). Ces broches prennent en charge la communication SPI, qui permet de communiquer avec certains capteurs et modules (carte SD, Ecran LCD).I2C :
SDA
&SCL
. Ces broches prennent en charge le bus I2C, très utilisé pour communiquer avec des capteurs.
Interruptions externes : Les broches 2 et 3 peuvent être configurées pour déclencher une interruption suite à un changement de niveau logique. Les interruptions permettent d’interrompre le programme principal suite à un événement externe (appui sur un bouton par exemple) et exécuter du code particulier pour gérer l’événement. S’utilise avec la fonction
attachInterrupt()
.
Les Broches d’entrée analogique
Les broches A0 → A5 se comportent comme un voltmètre simplifié : elles permettent de lire une tension analogique et de la convertir grâce à un convertisseur en nombre. Le convertisseur analogique à numérique (ADC) est sur 10 bits : une tension comprise entre 0 et 5V sera convertie en un nombre compris entre 0 et 1023.
Note
Ces entrées analogiques peuvent également être utilisées comme broches numériques : l’entrée analogique A0 →D14 jusqu’à l’entrée analogique A5→D19.
Avertissement
Les broches A4
et A5
sont partagées avec les broches SDA
et SCL
. Si vous utilisez le protocole I2C
dans votre programme, ces 2 entrées analogiques ne seront pas utilisables.
Les Broches d’alimentation
La broche
5V
est une alimentation régulée de 5V qui peut être utilisée pour alimenter un circuit sur breadboard, des capteurs, des moteurs fonctionnant sous 5V.La broche
3.3V
est une alimentation régulée de 3.3V qui peut être utilisée pour alimenter un circuit sur breadboard, des capteurs, des moteurs fonctionnant sous 3.3V.Les broches
GND
sont des broches qui sont reliées à la masse des alimentations, aux pôles négatifs-
.La broche
VIN
permet d’alimenter la carte uPesy One par une source d’alimentation externe, différente de celle du port USB et de la prise jack. En pratique, on s’en sert peu souvent. Son interaction avec les autres modes d’alimentations est détaillée dans la section suivante.
Note
Les alimentations 5V et 3.3V sont protégées contre les courts-circuits qui pourraient survenir lors de vos manipulations.
Avertissement
Il faut éviter de tirer trop de courants sur les broches 5V
et 3.3V
, notamment si vous utilisez de gros moteurs.
Les autres broches
Ces dernières broches sont peu utilisées en pratique. Elles peuvent être utiles dans certains cas.
RESET
: Cette broche permet de redémarrer le microcontrôleur quand elle est reliée à la masse. Elle est reliée également au bouton RESET. Elle peut être utilisée pour avoir un bouton externe de RESET ou pour contrôler la carte uPesy One depuis un autre circuit.AREF
: Tension de référence pour les entrées analogiques. Utilisée avec la fonctionanalogReference()
.IOREF
: Tension de référence pour les entrées numériques.Le connecteur
ICSP
: Les broches du connecteur à droite de la carte uPesy One permettent de relier un programmateur ICSP externe. En pratique, il est très peu utilisé (encore moins pour les débutants), d’autant plus que ces broches sont aussi accessibles depuis la rangée des broches. C’est pour cela que le connecteur n’est pas soudé sur la carte uPesy One. Il contient les broches suivantes, listées ligne par ligne :MISO
,5V
,SCK
,MOSI
,RST
etGND
.
Tolérance en tension des broches
Tout comme la carte Arduino UNO, la carte uPesy One fonctionne en 5V. Les niveaux logiques sont donc soit de 0V, soit 5V.
La tension sur les broches d’entrée logiques et analogiques ne doit pas excéder 5V sous peine d’endommager le microcontrôleur de la carte.
Les différents modes d’alimentation
Note
Les informations données ci-dessous ne sont valables que pour la carte uPesy One
La carte uPesy One peut être alimentée via le port USB-C ou avec une source d’alimentation externe.
Alimentation par USB
Le plus simple est d’alimenter la carte par USB en 5V, en la connectant à un ordinateur. On peut ensuite utiliser le pin 5V
et 3.3V
pour alimenter un montage électronique. En plus de l’alimentation, on pourra téléverser un programme sur la carte et recevoir des messages dans le moniteur série de l’Arduino IDE.
Note
C’est le mode d’alimentation qui est utilisé la plupart du temps.
Alimentation externe : 2 possibilités
L’alimentation externe peut provenir soit d’un chargeur, d’une alimentation de laboratoire, d’une pile ou d’une batterie. L’alimentation externe peut être branchée à 2 endroits sur la carte uPesy One : la prise Jack ou la broche VIN
. La tension doit être comprise entre 6V et 12V maximum .
Note
Plus la tension de l’alimentation est proche de 6V, mieux c’est, pour limiter l’échauffement du régulateur de tension 5V.
En général, on utilise la prise jack avec un connecteur 2.1mm.
Avertissement
Avant de brancher un chargeur lambda, vérifier que la polarité correspond : Positif au centre et négatif sur l’extérieur. Méfiez-vous également des chargeurs bas de gamme, dont la tension indiquée (en charge) ne correspond pas à celle à vide. Il est fréquent que des chargeurs indiqués pour 12V@300mA se retrouvent à une tension d’au moins 16V@50mA.
Cumuler plusieurs alimentations à la fois
La carte uPesy One a été prévue pour fonctionner correctement avec plusieurs alimentations branchées en même temps. C’est très pratique pour pouvoir communiquer avec la carte en USB même si elle est alimentée dans le projet par piles par exemple.
Note
La sélection se fait automatiquement : l’alimentation externe est prioritaire sur l’USB.
Les protections présentes
La carte uPesy One est équipée d’un fusible auto-réarmable qui protège votre carte et le port USB de votre ordinateur contre les courts-circuits et les surintensités. Même si la plupart des ordinateurs offrent leur propre protection interne, le fusible offre une couche supplémentaire de protection. Si une intensité supérieure à 500mA est appliquée au port USB, le fusible coupera le circuit automatiquement jusqu’à ce que le court-circuit ou la surcharge soit éliminé.
Les entrées des alimentations externes (VIN et la prise Jack) ont également des protections contre les inversions de polarités, si vous branchez par mégarde, l’alimentation dans le mauvais sens.
Informations avancées
Le microcontrôleur ATMega328PB
La carte uPesy One se base sur un microcontrôleur ATMega328PB, la nouvelle version de l’ATMega328P utilisé sur les cartes Arduino classiques. Il a la particularité d’être rétro compatible : tout programme binaire écrit pour un ATMega328P fonctionnera également sur un ATMega328PB.
Note
La carte uPesy One est configurée par défaut pour se faire passer pour un ATMega328P dans le logiciel Arduino IDE.
Ainsi, par défaut la carte uPesy One est vue exactement comme une carte Arduino UNO (basée sur l’ATMega328P). Cela permet une compatibilité totale avec les librairies et les outils de l’écosystème Arduino.
Malheureusement, le logiciel Arduino IDE ne permet pas “out-of-the-box” de compiler un programme pour l’ATMega328PB. Pour utiliser les périphériques supplémentaires, il faut installer des outils tiers (MiniCore par exemple). Vous pouvez regarder ce tutoriel qui explique comment programmer l’ATMega328PB depuis l’Arduino IDE grâce à MiniCore de MCUdude .
Par contre, il est intégré de base dans PlatformIO sur VSCode, bien qu’il utilise aussi MiniCore.
Caractéristiques techniques
Microcontrôleur : ATMega328PB (qui peut se faire passer pour un ATMega328P)
Fréquence CPU : 16 MHz (jusqu’à 20MHz)
Mémoire Flash : 32 ko
Mémoire RAM : 2 ko
Mémoire EEPROM : 1 ko
Connecteur USB-C
Dimensions : 74 x 53 x 15 mm
-
Interfaces (en mode ATMega328P) :
3 Timers : 2x8-bit et 1x16-bit
6 PWM
Bus séries : 1xUART, 1xI2C, 2xSPI
-
Interfaces réelles (en mode ATMega328PB)
5 Timers : 2x8-bit et 3x16-bit
9 PWM (7 réellement utilisables)
Bus séries : 2xUART, 2xI2C, 2xSPI (soudure requise pour I2C et SPI)
Fonctionnement du téléversement d’un programme par USB
La carte uPesy One peut être programmée directement par USB. Puisque le microcontrôleur, ne supporte pas nativement l’USB, il doit y avoir un circuit supplémentaire pour jouer le rôle d’interprète. Il y a donc sur la carte uPesy One, un circuit intégré, le CP2102 de Silicon Labs, qui convertit l’USB en UART, compris par le microcontrôleur.
Avertissement
Sur la carte Arduino UNO d’origine, le circuit est plus complexe : un autre microcontrôleur, l’ATmega16U2, est dédié à cette tache.
Il est nativement supporté sur Windows, MacOS et Linux. Il n’y a donc a priori pas besoin d’installer de drivers particuliers manuellement. Si besoin, il sera installé automatiquement en arrière-plan. Ceci dit en cas de problème, voici le lien vers le driver officiel du CP2102 .
Pour téléverser un programme depuis l’Arduino IDE, il faut une étape supplémentaire. En effet par défaut on peut ajouter un programme sur ATMega328xxx uniquement via le bus ISCP
. C’est-à-dire qu’il faudrait avoir un programmateur externe pour flasher la carte. Heureusement, pour simplifier les choses, il est quand même possible de la programmer via USB grâce à un bootloader. C’est un tout petit programme dont le rôle sera de récupérer un sketch Arduino par USB et de l’exécuter sur le microcontrôleur.
Note
Toutes les cartes Arduino officielles, les clones ainsi que la carte uPesy One sont vendues avec le bootloader déjà présent.
Si par mégarde, vous supprimer ce bootloader, pas de panique, vous pouvez toujours le remettre en utilisant temporairement une autre carte Arduino. Vous pouvez consulter ce guide pour remettre le bootloader sur l’Arduino UNO (basé sur un Atmega328) .
Avertissement
Avec la version ATMega328PB de la carte uPesy One, le flashage du bootloader est légèrement plus délicat. Je vous invite donc à regarder le guide même si vous avez l’habitude le faire avec les cartes Arduino UNO classiques.
Fichiers Open-Source mis à disposition
Les fichiers sources de la carte uPesy One sont disponibles sur Github : github.com/uPesy/upesy_one . N’hésitez pas à proposer des améliorations du schéma et du routage de la carte ainsi que de reporter des bugs hardware.
Schéma : https://github.com/uPesy/upesy_one/blob/master/Assets/upesy_one.pdf
Plan avec les dimensions : https://github.com/uPesy/upesy_one/blob/master/Assets/upesy_one_dimension.pdf
Modèle 3D (au format
.wrl
) : https://github.com/uPesy/upesy_one/blob/master/Assets/upesy_one.wrlModèle 3D (au format
.step
) : https://github.com/uPesy/upesy_one/blob/master/Assets/upesy_one.step-
Une BOM interactive de la carte qui s’ouvre dans un navigateur (page HTML) : https://github.com/uPesy/upesy_one/blob/master/bom/ibom.html
Les fichiers ci-dessus sont sous licences CC-BY-SA-4.0
Changelog | Historique des modifications
v0.3 (Mai 2023)
Première version