ATMEGA 328Pro 5/16Mhz vs 3v/8Mhz et Platform IO

Bonjour,
Je débute dans le monde Arduino avec Platform IO
J'ai 2 ATMega pro, un en 5 volts-16Mhz et un autre en 3volts - 8 Mhz.
Après avoir initial la liaison via le port USB avec un Serial.begin(9600), la carte envoie le message "loop" à chaque tour de boucle.
Pour les 2 cartes, aucun souci pour téléverser le programme.

Pour la carte en 5v-16Mhz, pas de souci.

Par contre avec la carte 3v-8Mhz, le terminal de Platform IO m'affiche une série de hiéroglyphes.
Si j'utilise picocom comme terminal série, je dois réduire dans le terminal la vitesse de transmission à 4800 bds.

Comment faire pour que platform IO ou le programme téléversé utilise la bonne vitesse de transmission sur le port série quelque soit la fréquence de la carte ?

Autre question : comment changer la vitesse de transmission dans le terminal de Platform IO ?

Bonjour,

Pour changer la vitesse du terminal, ajouter la ligne 'monitor_speed = 115200' (par exemple) dans la rubrique [env:xxx] de platformio.ini

Par contre ce n'est pas une solution satisfaisante car si la vitesse du cpu est mal configurée, d'autres fonctions vont mal fonctionné, par exemple delay().

La carte 8MHz doit être configurée avec [env:pro8MHzatmega328] dans platformIO.ini.

Je viens de vérifier : tu as fait un mauvais choix de carte dans l'ouverture du projet.
PlatformIO propose deux choix :

  • Pro et Pro-mini 5V 16 MHz
  • Pro et Pro-mini 3,3V 8 MHz

Normalement la seule chose à ajouter est ce qu'a dit Artouste pour le moniteur dans le fichier platformio.ini qui se modifie à partir de platformIO.

Bonjour,

Effectivement, j'avais mal choisi l'environnement (Arduino Nano) et la carte.
Mon "platformio.ini" ressemble à cela maintenant :

[env]

[env:nanoatmega328]
platform = atmelavr
board = pro8MHzatmega328
framework = arduino
lib_deps =
rocketscream/Low-Power@^1.6
adafruit/Adafruit BME280 Library@^2.1.2

[platformio]
description = Blinks a led

Par contre pour la vitesse, si je mets 'monitor_speed = 115200' dans platformio.ini, je n'arrive plus à téléverser le programme. Je veux juste modifier la vitesse du terminal. Je suis obligé d'utiliser picocom comme cela "picocom -b 115200 /dev/ttyUSB0".
Je découvre platformio au fur et à mesure.

bazooka07:
Par contre pour la vitesse, si je mets 'monitor_speed = 115200' dans platformio.ini, je n'arrive plus à téléverser le programme. Je veux juste modifier la vitesse du terminal. Je suis obligé d'utiliser picocom comme cela "picocom -b 115200 /dev/ttyUSB0".
Je découvre platformio au fur et à mesure.

C'est curieux, chez moi quelque soit ce que je met dans monitor_speed= ça ne change rien au téléversement.
Tu es sur que tu n'a rien changé d'autre?

Le réglage monitor_speed n'influe pas sur téléversement du programme.
C'est l'ajustement de la liaison série pour rendre compréhensible les échanges avec le PC.

Attention, pour le déroulement du programme, il faut que la valeur dans serial.begin() soit la même que celle de moniteur speed.
Cela tient au principe de la liaison série qui oblige l'émetteur et le récepteur à être calés sur le même débit.

Autre raison probable :
Il y a une différence avec les nanos :

  • les anciennes qui sont avec le "old bootloader"
  • les nouvelles qui sont avec le même bootloader que la UNO.
    Les deux bootloaders n'utilisent pas la même vitesse de téléversement.

Je pense que dans le choix de la carte il y a encore un réglage à faire, qui n'a rien à voir avec monitor_speed.

Dans le titre du premier message, il serait préférable de parler de carte nano plutôt que d'atmega328p.

Mea culpa !
J'ai confondu upload_speed et monitor_speed.

Problème résolu.
Merci pour votre aide

Mon platformio.ini :

[env]
monitor_speed = 115200

[env:nanoatmega328]
platform = atmelavr
board = pro8MHzatmega328
framework = arduino
lib_deps =
rocketscream/Low-Power@^1.6
adafruit/Adafruit BME280 Library@^2.1.2

[platformio]
description = Blinks a led

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.