Go Down

Topic: Programmer un STM32F103C8 (Read 2548 times) previous topic - next topic

ChPr

Bonjour à toutes et à tous,

Pour m'amuser, je me suis commandé un circuit à base de STM32.
J'ai trouvé ce site indiquant une méthode pour le programmer.

On me demande de télécharger cette archive, et une fois décompressée, de lancer le fichier "install_drivers".

C'est là que mes ennuis commencent : je suis sous Windows XP et, quand je lance ce fichier, mon PC me dit que ce programme n'est pas une application Win32 valide ...

Je pense que c'est un problème d'archive valide pour cet environnement et si tel est le cas, je ne sais pas comment trouver la bonne archive.

Peut-être avez-vous des liens avec une méthode qui marcherait dans mon cas.

Je me sens un peu (beaucoup) comme un gros nul sur ce coup. Si vous avez des idées pour m'aider ...

Merci d'avance.

Pierre
Pourquoi faire simple alors qu'il est si facile de faire compliqué !

Scoob

Bonjour,
as-tu utilisé "install_drivers.bat" dans "driver/win/"?
Essai d'exécuter "install_xXX.exe" dans "driver/win/win_xp_legacy/maple-xxx/" en mode Administrateur

68tjs

Ce que tu veux faire c'est programmer un STM32 comme un arduino.
Il y a un site" stmduino", initié sur ce forum  par Roger Clark ,site devenu indépendant maintenant, qui "porte" les fonctions arduino sur différents modèles de micro STM32 dont le F103C8T6. Ce site fourni aussi les booloaders.

De la même façon qu'au départ un micro avr se programme sans bootloader en utilisant le bus ISP, un micro d'architecture ARM se programme aussi sans bootloader avec le bus SWD.

Avec les micro ST il faut un ST-Link.
St-link c'est deux choses :
1) le programmeur physique sous forme de "bâtonnet"
2) un logiciel.

Sous windows le logiciel existe sous forme déjà compilée. Si Windows te dit que le logiciel n'est pas validé c'est tout simplement que ST refuse d'engraisser Microsoft pour des âneries.

Sous Linux j'utilise le logiciel ST-Link en ligne de commande pour transférer le programme dans le microcontrôleur.
Je pense que sous Windows un utilitaire graphique existe.

Autre solution les cartes Nucleo.
Une carte nucleo (entre 15 et 25€) comprend deux parties séparées par un pointillé comme pour le papier ***** et les pointillés ont le même rôle : découper selon le pointillé.
Voir la doc des cartes nucleo sur le site de ST.
1) la partie principale est la carte micro elle même.
2) la partie sécable est un programmeur ST-Link qui se connecte sur l'USB d'un coté et de l'autre fourni un connecteur aveci GND, 3,3V, SCK, SDIO.

L'USB du micro du programmeur est reconnue par l'OS comme un disque mémoire.
Le chargement du programme se fait par glisser/déposer du fichier HEX.

J'obtiens le fichier HEX en utilisant le projet MBed --> même principe qu'arduino mais sans le foutoir arduino, il faut dire qu'Mbed est plus professionnel.
Tu y trouvera un forum, mais loin d'être aussi convivial qu'ici.
Si des versions existent en espagnol et quelques autres langues il n'en existe pas encore en français.
Le projet est très riche en diverses bibliothèques. os.mbed.com/components/

L'API est géré en couche
1) la couche ARM
2) la couche fabricant (Atmel, NXP, ST, etc)
3) par fabricant la couche référence du micro

Dans la série F103xxxxxx St n'a créé un configurateur que pour le modèle F103RBT6 qui contient 128k de flash au lieu de 64 pour le F103 C8T6.
Un intervenant à créé  un modèle adapté au 64k du F103C8T6.
https://os.mbed.com/users/hudakz/code/STM32F103C8T6_Hello/

Une autre carte  dite "Mapple" utilise le F103RBT6, elle est très légèrement plus chère.

La programmation sous Mbed se fait dans les nuages, pour ceux qui sont allergique au travail en ligne il est possible de créer sa proche chaine de compilation avec eclipse ou équivalent, je dois avouer que je n'ai pas bien compris.

MBed met à ta disposition un compte personnel mercurial, équivalent de github,  qui peut être privé ou public.
Le lien précédent pointe dans la partie publique du créateur du modèle.
 
L'API Mbed même si elle me parait plus aboutie que celle arduino (derrière il y a les ingénieurs logiciel ARM, NXP, ST-Micro, Renesas, etc) reste assez générale et pour un projet "aux petits oignons" il faudra en sortir comme pour arduino.

Avantage du F103 : C'est un ARM, 32 bits, Fmax = 72 MHz, son prix et ses 50 à 60 % d'entrées 5V tolérantes qui évitent l'usage d'adaptation de niveaux.
Inconvénient : C'est aussi un ARM --> difficile de savoir s'il est gravé à 18 ou 24 ou X nm mais il est surement gravé plus fin qu'un avr de Fmax seulement  20MHz. --> il est  donc plus fragile  --> j'ai testé et je confirme.
A moins de 2€ ce n'est pas un problème financier, c'est juste frustrant de "péter" une sortie.

ChPr

Bonjour,
as-tu utilisé "install_drivers.bat" dans "driver/win/"?
Essai d'exécuter "install_xXX.exe" dans "driver/win/win_xp_legacy/maple-xxx/" en mode Administrateur
J'ai essayé avec tous les fichiers *.exe du répertoire"driver/win" : chacun m'indique qu'il n'est pas un fichier win32 valide.

Cordialement.

Pierre
Pourquoi faire simple alors qu'il est si facile de faire compliqué !

ChPr

Merci "68tjs" pour tout le mal que tu t'es donné pour toutes ces explications. Je ne souhaite pas me disperser avec diverses applications.

J'ai trouvé cette application (Flash Loader Demonstrator) pour, à ce que je crois, charge le bootloader dans mon STM32F103C8T6P1.

J'ai eu les écrans de cette page et j'ai obtenu au final "Download operation finished succesfully".

J'ai aussi mis à jour mon IDE à la version 1.8.5 ce qui fait que si je compile un sketch avec ma carte STM32F103C8T6P1 comme destination, cela se passe bien.

Pour autant, lorsque je connecte ma carte à mon PC (windows XP) via le µUSB, l'IDE ne trouve pas le port COM9 que l'application Flash Loader Demonstrator a utilisé.

Et donc, je suis bloqué, je ne sais plus trop quoi faire.

Si vous avez des idées.

Cordialement.

Pierre
Pourquoi faire simple alors qu'il est si facile de faire compliqué !

-Standby

Bonjour,

Faites le saut chez Cypress !

Ce fabricant m'a définitivement convaincu de ne plus utiliser de microcontrôleur ST, Microchip est du genre.

Ils sont difficiles à mettre en oeuvre, il faut constamment se taper une datasheet d'une centaines de pages et puis après avoir passé 5 minutes à trouver LA page il vous faut encore 10 minutes pour la déchiffrée.

Tu compile après avoir utilisé 10 soft différents et beh non tu t'es trompé de macro et rebelote !
The Mind is like a parachute it works best when opened.

68tjs

Quote
Je ne souhaite pas me disperser avec diverses applications.
Je comprend mais la solution dont je parles est directement gérée par ARM et ST-Micro.
Ces gens là ne cherchent pas à vendre des cartes.
ST cherche à vendre des boîtiers micro contrôleur, peut importe qui les lui achète, ARM cherche à ce que ses clients (ST, NXP, etc) vendent le maximum de boîtiers pour pouvoir toucher le maximum de dividendes des licences.

Est-ce que les solutions dont tu parles ont le même niveau d'implication dans la durée ?

Ces autres solutions dépendent souvent d'une personne. Que ce passe-t-il si les circonstances de la vie font que cette personne n'a plus de temps disponible ( généralement mise en couple , un ou deux enfants et plus une minute à soi).

ChPr

Une question : est-ce que ce programme place le bootloader dans le micro-contrôleur ?
Pourquoi faire simple alors qu'il est si facile de faire compliqué !

68tjs

Je ne peux pas te le dire c'est un programme Windows et moi je ne connais pas Windows.
J'ai choisi de me dispenser d'utiliser un bootloader qui n'est aucunement une imposition.

_pepe_

#9
Mar 09, 2018, 04:08 pm Last Edit: Aug 19, 2018, 03:09 am by _pepe_
Supprimé

ChPr

... J'ai choisi de me dispenser d'utiliser un bootloader qui n'est aucunement une imposition.

Si j'ai bien compris, tu utilises ST-Link : le matériel (je m'en suis commandé un hier en prévoyance des problèmes à venir) et le logiciel.

C'est via cet ensemble que tu programmes le STM32 sans avoir besoin d'un bootloader ?

Cordialement.

Pierre
Pourquoi faire simple alors qu'il est si facile de faire compliqué !

ChPr

... D'après tous les commentaires que j'ai pu lire, la mise en œuvre de la liaison USB sur ce type de carte n'est pas une sinécure. ...
Merci pour ces informations.

Ce que je ne comprends pas est que l'application ST reconnait bien mon micro puisqu'il y charge le bootloader, mais après, quand je branche mon micro au PC via la liaison µUSB, l'IDE Arduino ne le trouve pas ? Est-ce que c'est un problème de driver spécial que je n'aurais pas installé ?

Cordialement.

Pierre
Pourquoi faire simple alors qu'il est si facile de faire compliqué !

_pepe_

#12
Mar 09, 2018, 04:33 pm Last Edit: Aug 19, 2018, 03:09 am by _pepe_
Supprimé

_pepe_

#13
Mar 09, 2018, 04:39 pm Last Edit: Aug 19, 2018, 03:09 am by _pepe_
Supprimé

hbachetti

Salut

Dans l'archive dont tu parles, je suppose que les drivers que tu ne parviens pas à installer sont ceux permettant de dialoguer sur le port USB de la carte, et donc de dialoguer avec ton IDE ARDUINO.
Que tu ne puisses pas les installer est assez bloquant, car même si tu parviens à installer le bootloader ARDUINO par le convertisseur série, tu ne pourras pas aller plus loin.

Ton premier lien décrit une méthode de chargement par la ligne série du STM32. Côté PC, le logiciel stm32flash.exe te permet d'envoyer le binaire au bootloader du STM32. Je parle bien du bootloader interne du STM32 (hard-coded).
Dans cette première étape, tu as besoin d'un convertisseur série et des drivers Windows adaptés au convertisseur série que tu possèdes.
Suis simplement la méthode décrite dans ton premier post. Si tu as déjà utilisé un convertisseur série sous Windows, tes drivers sont déjà installés. Dans le cas contraire, installes ceux qui correspondent au convertisseur série que tu utilises (CH340, FTDI, etc.).

Donc pour résumer, tu peux parfaitement charger le booloader ARDUINO, mais en l'absence de drivers ST installables sur ton Windows, tu ne pourras pas aller plus loin, c'est à dire charger ton sketch.

SOLUTION: mettre Windows XP à la poubelle. Remplacer par Windows 7 minimum, ou mieux : LINUX.
Si ton PC est un P4, il supportera éventuellement une LUBUNTU.

XP à notre époque ... on croit rêver.

@+
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

Go Up