filetage avec microcontrolleur

  • Auteur de la discussion Auteur de la discussion vibram
  • Date de début Date de début
Sur une discussion similaire quelqu'un a montré un exemple développé sur CubeMX. C'est beaucoup plus simple que Keil. Je ne sais pas si le code est portable sur toutes les cartes STM32.
 
Lors de mes recherches il m'avait semblé que cubemx permet uniquement de configurer les pins et après on passait sur keil pour le reste.
Je vais regarder de nouveau
 
Bonjour,
peut-être voir 'emIde32', qui est une spécialisation de 'Code::Block' pour les cartes embarquées, il faudra alors utiliser une ligne de commande pour le téléchargement du code dans la carte SMT32 (voir 'Stm32_Flash' et les 'sources' ).
C'est une piste que j'explore actuellement.
Bonne soirée.
 
Dernière édition:
Sur une discussion similaire quelqu'un a montré un exemple développé sur CubeMX. C'est beaucoup plus simple que Keil. Je ne sais pas si le code est portable sur toutes les cartes STM32.

Il ne faut pas mélanger ….:neo_xp:

Keil est un compilateur, ces microcontrôleurs sont très complexes et on peut facilement se perdre et perdre des jours sans écrire une ligne de code d’application uniquement en paramétrant le tout.



CubeMX est un plugin pour Microxplorer, l’ensemble sert à configurer d’une manière graphique et en principe facilement le paramétrage, le tout génère du code C qui est utilisable dans un compilateur tel que Keil ou autre.


Maintenant Arduino et Arm …

Je n’ai aucune expérience en Arduino mais ce que je peux dire c’est le code généré pour un Arduino classique n’est pas compatible avec le code ARM, idem pour les librairies faisant appel aux fonctions du « cœur » du CPU.
 
Dernière édition:
Bonjour,
il existe pas mal d'IDE pour les STM32 les 2 les plus connus sont KEIL et EWARM-IAR.
Ce sont des outils pros payants, mais il existe une version "free" pour chacun si le code est < 32K.

La configuration des nombreux périphériques des STM32 est une tache lourde.
Le cubeMX (outil ST gratuit) est très pratique car il génère le code de configuration des pérphériques automatiquement.
Il génère du code pour KEIL et EWARM mais aussi pour TrueSTUDIO, l'IDE d'ATOLLIC.
A noter que la version "free" de cet IDE (TrueSTUDIOlite) n' a pas de limite en taille de code.
C'est certainement une alternative de choix pour les amateurs.

Ci-joint un lien qui récapitule les différents IDE pour STM32:
http://www.emcu.it/STM32/What_shoul...d_I_use_to_develop_on_STM32.html#Introduction

edit:
CubeMX peut générer aussi du code pour SW4STM32:
System Workbench for STM32: free IDE on Windows, Linux and OS X
http://www.openstm32.org/HomePage
 
Dernière édition:
Je ne mélange rien, comme je l'ai précisé je ne connais pas cubeMX, jai vu la capture écran et j'ai pensé que cela pouvait intéresser Vibram c'est tout.
Néanmoins merci pour tes précisions.

J’ai une licence officielle Keil 8051 depuis 1986 si mes souvenirs sont bons.

J’ai développé en ARM il y a quelque années, Keil ce sont des outils de développement TOP, il n’y a à ce niveau que quelques sociétés, une licence pro ARM c’est plus de 8000€ !
 
et un code identique envoyé via keil ou via eclipse sera fonctionné/interpreté pareil ?
Je demande car ce n'est pas le cas avec stm32duino

Tentative de test du sketch hier mais les chiffres ne varient pas si je bouge le codeur, je ne vois pas trop d'ou vient le probleme, l'ensemble est pas bien compliqué pourtant et le code est correctement alimenté...
 
et un code identique envoyé via keil ou via eclipse sera fonctionné/interpreté pareil ?
Je demande car ce n'est pas le cas avec stm32duino

Tentative de test du sketch hier mais les chiffres ne varient pas si je bouge le codeur, je ne vois pas trop d'ou vient le probleme, l'ensemble est pas bien compliqué pourtant et le code est correctement alimenté...

Tu as quoi comme carte ? tu as branché ton codeur sur quelles PINs ?

une licence pro ARM c’est plus de 8000€ !

La version Lite est à 1300€ chez Farnell. Elle me suffit amplement. Je refait une carte tout les 20ans :wink:
 
ah oui je suis peut etre allé un peu vite en besogne ... :wink:
je pense qu'il y a aussi cet histoire de dénomination de timer.

En revanche, jâi l'impression que les composants sont surtout là pour le debounce alors que je devrais quand meme avoir un signal sur mes entrées non ?
 
ah oui je suis peut etre allé un peu vite en besogne ... :wink:
je pense qu'il y a aussi cet histoire de dénomination de timer.

En revanche, jâi l'impression que les composants sont surtout là pour le debounce alors que je devrais quand meme avoir un signal sur mes entrées non ?

Si tu débute avec ARM je te conseille de trouver un programme démo simple sur le net pour ton CPU, teste le sur ta carte, si ça fonction tu pars de ce programme que tu adapte pour ton application.

Sinon tu risques de perdre beaucoup de temps pour le faire fonctionner sans compter les frustrations.
 
c'est exactement ce que je fais, j'ai fait un premier portage de projet arduino -> stm32duino
Puis là j'ai testé un blink, puis LCD puis le codeur...
Mais le manque de temps me fait travailler trop vite et du coup je fais des conneries (cf le branchement du codeur)

je me suis offert ca:
https://leanpub.com/mastering-stm32
 
En revanche, jâi l'impression que les composants sont surtout là pour le debounce alors que je devrais quand meme avoir un signal sur mes entrées non ?

On ne laisse pas une entrée “flottante” qu’on utilise dans un programme, soit 0 ou 1, raison de le “tirer” à 1 par la résistance.

Tu peux facilement tester si lire ton entré flottante est lue correctement en la laissant non connectée en faisant une lecture du port et la sortir sur un autre port ou afficher sur un display si tu en a un qui est connecté.
 
OK merci de l'astuce !
je vais voir quand est ce que je peux tester ca d'ici ce weekend.
Petit à petit ... !
 
tu peux aussi remplacer GPIO_Mode_IN_FLOATING par GPIO_Mode_IPU pour mettre l'entrée en PullUp. Ca évite la résistance
 
Pour le STM32F103C8 il y’en a seulement quatre timers TIM1,…TIM4 et biensûr le « SysTick » qui est propre à l’architecture ARM donc présent dans tout les processeurs et microcontrôleurs ARM.

Tout les quatre timers sont utilisables en mode « encoder » à condition que les pins, qui correspondent aux canaux CH1 et CH2 de chaque timer, ne soient pas occupés par d’autres périphériques

Exemple : si l’ USART1 est active, on ne pourra pas utiliser le timer1 et le timer4 en mode « encoder » au même temps, donc l’un ou l’autre.

Dans ton cas le timer TIM4 réponds très bien aux besoins de ton application.
 
J'ai fait un test tres rapide, en ajoutant juste les condensateur (je ne retrouvais pas mes résistances ) + les modifications proposées par saci et CNCSERV mais pour le montant ca ne fonctionne toujours pas.

aujourdhui jai eu du temps à midi pour dessiner la pièce de fixation de l'encodeur sur la broche
upload_2017-6-21_14-43-43.png


upload_2017-6-21_14-44-0.png


je vais me prendre un moment tranquille ce weekend pour reprendre à 0 le branchement du codeur sur le board avec les condo et les résistances et je verrai !
 
J'ai fait un test tres rapide, en ajoutant juste les condensateur (je ne retrouvais pas mes résistances ) + les modifications proposées par saci et CNCSERV mais pour le montant ca ne fonctionne toujours pas.

aujourdhui jai eu du temps à midi pour dessiner la pièce de fixation de l'encodeur sur la broche
Voir la pièce jointe 344271

Voir la pièce jointe 344272

je vais me prendre un moment tranquille ce weekend pour reprendre à 0 le branchement du codeur sur le board avec les condo et les résistances et je verrai !

C'est beau ! peut être un peu trop beau pour faire des essais.

Moi, j'ai fait appel à Saint OFER (j'ai pas fait de dessin).

Cordialement.
 
J'ai fait un test tres rapide, en ajoutant juste les condensateur (je ne retrouvais pas mes résistances ) + les modifications proposées par saci et CNCSERV mais pour le montant ca ne fonctionne toujours pas.

J’ai appris une chose avec les microprocesseurs que j’ai commencé à programmer en 1975-76 … hé oui ça fait un bail. :smileyvieux:

Tester vite fait c’est pas comme en mécanique, on lime de trop ou pas assez cela n’empêchera pas de fonctionner ce qu’on réalise mais avec des processeurs le vite fait c’est un million de chances que ça ne fonctionne pas sur que ça fonctionne.:smt116

Toujours tester si un programme ne tourne pas au plus bas niveau, c.a.d éventuellement dans la première boucle mettre une sortie à 1 et vérifier, si ça passe lire une entrée et la reporter sur une sortie …. Si on dispose d’outil « ICE » (In Circuit Emulator) pour débugger cela rend le tout plus facile. :smt115
 
Dernière édition:
je ne peux être plus d'accord ;)
c'est pour cela que je vais arrêter de perdre 10 min à chaque essai et je vais prendre un moment pour faire cela proprement ;)
Tu as trouvé ton PAP?
 
Bonsoir,

@vibram, je confirme que la routine d’initialisation citée plus haut est fonctionnelle sans aucun problème, j’ai fait un « test rapide » et ça fonctionne sans souci. Voir la video.

Bonne soirée !

 
bonsoir ou bonjour ;)
merci pour le test !
A ce que je vois tu t'es branché en direct (ni resistance ni condensateur)
J'ai repassé 30min dessus hier, impossible d'avoir quelque chose de fonctionnel.Le schema mis dans les messages précédents n'est pas hyper clair pour moi mais j'ai fait ce que j'ai pu
J'utilise ce codeur
https://fr.aliexpress.com/item/400-...s-Incremental-Optical-Rotary/32725917082.html
J'ai essayé, le codeur alimenté en 5v et en 9v ainsi qu'en 24v ...
Mais je n'ai pas d'oscillo pour le tester
Ce weekend, je ferai le montage sans tout mon bordel autour et je vous prendrai une photo
 

Sujets similaires

V
Réponses
27
Affichages
1 527
VicMeca23
V
CRA2
Réponses
3
Affichages
1 066
CRA2
Dorian42
Réponses
62
Affichages
2 151
Dorian42
Dorian42

Sujets similaires

V
Réponses
11
Affichages
258
varynx68
V
gryzzly39
Réponses
2
Affichages
1 284
gryzzly39
gryzzly39
G
Réponses
12
Affichages
479
paysan
P
RipCurl
Réponses
12
Affichages
543
RipCurl
RipCurl
Retour
Haut