Go Down

Topic: STM32 modèle "Ebay" et "Maple-mini" (Read 2717 times) previous topic - next topic

68tjs

Je passe dans le bar pour ne pas poluer le sujet en cours.

Quote
sinon pas mal comme carte, tu en diras plus.
Quote
pour l'instant c'est 68tjs qui s'y colle 8)
Espérez pas trop : je suis en retraite moi, madame aussi, alors  je n'ai pas beaucoup de temps disponible :smiley-mr-green: .
De plus vous connaissez mes choix : surtout pas de projet à terminer (ça c'était pour avant la retraite, maintenant c'est la liberté) , rien que des tests sur des sujets qui m'intéressent comme comment obtenir des mesures correctes avec un LM35 au bout de 50 m de câble ou le dernier sur l'I2C où j'ai poussé 2 nano à 533 kHz.
Circonstance aggravante je suis un électronicien pur et dur, la programmation c'est depuis la retraite donc je ferai toujours du rase bitume par rapport à vous autres.

Pour revenir aux STM32 ça m'agassait de ne pas trouver de point d'entrée. Quand ça résiste il faut que ça plie.
En fait je visais trop haut je pensais faire comme avec Eclipse et les fonctions arduino .
Sauf que  sur ma Debian Gnu-GCC était installé d'office , la tool chain avr étant installée "dans les règles de l'art" par le paquet Debian de l'IDE arduino. Eclipse retrouvait tout tout seul. Tout paraissait simple.

Avec le STM32 j'ai remis les pieds sur terre : il me fallait trouver un compilateur qui va bien avec les ARM et tout installer moi-même. Sans surprise je me suis rendu compte que cela dépassait mes compétences tant en informatique qu'en programmation.

En continuant mes recherches j'ai lu que ST avait sorti une carte Nucleo avec le même micro et qu'il était possible de transférer le fichier binaire généré par MBed dans la carte Ebay.

Il existe deux cartes quasiment aux même prix : une avec 64 k de flash, l'autre avec 128k (Maple-mini)
La carte Nucleo fait 128k. Avec la première il faut surveiller manuellement qu'on ne dépasse pas les 64k, MBed ne le dira pas.

Pour le moment je n' ai utilisé qu'une carte (64k) l'autre (128k) a été oubliée à 700 km d'ici donc, si vous le permettez, j'attendrai un peu pour la tester.

Point besoin de carte pour se familiariser avec la programmation à la sauce MBed.
On peut écrire et compiler sans carte.
Les bibliothèques me paraissent beaucoup plus orientée objet et c'est bien agréable pour la gestion des E/S.
C'est plus sympa d'écrire :
DigitalOut    loupiote(PC_13) ; // déclaration de l'objet loupiote
//
loupiote = 1; ou loupiote = 0 ;

que d'écrire :
# define loupiote 13
//
digitalWrite(loupiote, 1) ; ou digitalWrite(loupiote, 0) ;

Ce n'est qu'un exemple parmis d'autre, ah si il y a le classique prinf () qui est disponible aussi.

-Standby

Il y a de quoi se perdre avec les référence des STM 32 de meme pour la mise en service, moi j'ai pris une version F4 mais la carte n'est pas encore arrivée..patience..
The Mind is like a parachute it works best when opened.

68tjs

C'est sur qu'il y a plus de choix que chez Atmel.

Le truc pour avoir une idée de ce qui est utilisés par les "petits", c'est à dire Nous et je mets de coté la grosse industrie qui traite directement avec ST, c'est de consulter l'offre Ebay c'est un bon indicateur et le modèle plébicité est justement le F103C8T6 (ou F106RC8T6).

solfra

C'est vraiment pas mal ces petites choses. On m'a offert la nucléo F401RE qui utilise le STM32F401RTE6. J'aime bien le principe de glisser-déposer pour charger un programme.

-Standby

#4
Dec 14, 2015, 08:05 pm Last Edit: Dec 14, 2015, 08:07 pm by -Standby
Je viens de commencer a un peut toucher a STM32CubeMx et Eclipse, effectivement j'ai aussi l'impression de partir de 0, la complexité se fait ressentir.

Edit : Je crois qu'il va falloir lire un peut de bouquins. 
The Mind is like a parachute it works best when opened.

68tjs

Pour le moment j'en suis à compiler le logiciel st-link sous Linux.
J'ai trouvé et compilé la partie ligne de commande, reste à apprendre les différentes options.
Je n'ai pas trouvé comment avoir une interface graphique, j'avais compris qu'elle existait mais je commence à douter.

STM32CubeMx est impressionnant. Pour ceux qui ne connaissent pas encore c'est un logiciel autonome (Win uniquement) ou un plug-in pour Eclipse (indépendant de l'OS) qui permet graphiquement de générer des lignes de code pour configurer le micro (horloges ,  Entrée/sorties, port de communication, etc ).
Exemple : au centre de l'écran il y a le dessin du boîtier, quand on clique sur une pin on peut choisir parmis les nombreuses options :
- numérique  --> pull-up, pull-down, bande passante (basse, medium, élevée), drain ouvert,  etc .......
- analogique
- I2C
- SPI
-UART
etc
Si j'ai bien compris chaque pin a 16 possibilités
A la fin de la configuration on génère les lignes de code qui vont bien.

Les possibilités de redirection des fonctions sur différentes I/O sont assez impressionnantes.
A la limite on choisi l'emplacement qui arrange et on y  redirige la fonction retenue.

Avec MBed on ne devrait pas à avoir à retoucher les différentes fréquences horloge internes à la puce. C'est comme avec arduino : c'est équilibré pour uniformiser au maximum .

Ce que je me propose de faire une fois ST-Link/Linux  maîtrisé c'est d'afficher les différents réglages MBed comme je l'avais fait avec un atmega328p mais là il va y avoir plus de travail ne serait-ce que parce qu'un registre ARM 32 bits offre énormément plus de possibilités qu'un simple avr 8 bits.

-Standby

Avec MBed on ne devrait pas à avoir à retoucher les différentes fréquences horloge internes à la puce. C'est comme avec arduino : c'est équilibré pour uniformiser au maximum .
Pour ceux qui ne souhaitent pas utiliser mbed ST propose un pack de librairies pour les périphérique de bases, I2C, SPI, UART, ..

http://www.st.com/web/en/catalog/tools/PF257901

Il faut télécharger le pack en bas de page, l'extraire et ouvrir si besoin le manuel des fonctions avec l'extension .chm (utilisé Sumatra PDF je vous conseille).   
The Mind is like a parachute it works best when opened.

68tjs

#7
Dec 15, 2015, 08:26 am Last Edit: Dec 15, 2015, 08:45 am by 68tjs
extension chm ->beurk !

Pour ce qui est du pack de biblis ST il faut aussi installer une toolchain.
Perso c'est là que ça coince.

Il faut installer un compilateur. Il en existe plusieurs mais en général il faut montrer patte blanche pour les télécharger. Il existe bien GNU GCC arm  mais que faut-il charger exactement ?
On ressent une forte odeur de professionnalisme avec les ARM et les explications sont rarement pour les neuneux.

C'est pourquoi dans un premier temps j'ai mis en sommeil la solution Éclipse au profit de MBed.
Cela permet de faire immédiatement quelque chose, Une fois les bases acquises il sera plus facile de revenir sur le trio éclipse/gcc-arm/bibliothèque ST.

Mais si tu veux nous faire un tuto avec ce trio nous serons nombreux à te lire avec attention.

trimarco232

Quote
une avec 64 k de flash, l'autre avec 128k
Bonjour 68tjs,
peux-tu nous mettre les liens
(pour le besoin de 128k, on ne sait jamais)
merci !

trimarco232

Pour ce qui me concerne, sous le conseil d'un fameux jeune forumiste blogueur, j'utilise les outils suivants :

- IDE CooCox : gratuit, illimité, relativement bien fait. J'ai eu du mal à l'installer.

- programmateur, en fait débogueur cloné seger édu : ne tue pas la led et le serial out, mais devient vite indispensable. Fini le bootloader !
Un autre must have est l'analyseur (cloné, aussi ...) saleae. A ce niveau, on apprécie voir ce que l'on fait.

- concernant les puces, j'ai commencé par un break out de stm32f103c8t6, avec les broches vers le haut pour une utilisation sur table. Le débogueur ne nécessite que 2 fils + gnd.
Puis je suis passé au non moins populaire stm32f030f4p6. Après avoir pu souder le minuscule tssop20, j'ai réalisé des cartes perso.
Malgré la pléthore des différents fabricants, ces 2 puces couvrent mes besoin à moyen terme.


Attention, malgré les difficultés, les avantages font que revenir vers l'avr me parait impossible. Ceux qui, à l'époque, sont passé du pic à l'avr me comprennent.

Commencer l'arduino coute 2 à 3 euros... Pour l'arm, sur les bases que j'ai décrites, c'est 10x plus.
Idem pour l'investissement perso
Idem pour l'efficacité, la satisfaction ...

68tjs

#10
Dec 16, 2015, 12:17 pm Last Edit: Dec 16, 2015, 12:19 pm by 68tjs
Bonjour,
Des liens non, trop éphémères.
Mais des photos oui.
Mot clé de recherche : "STM32"
Les prix : à la louche comptez 4€ par module.

1) le programmeur :
Faite gaffe il existe deux versions de circuit imprimé avec un brochage différent mais 1 seul capot donc 50% de possibilité  de faire un court-circuit..
Même si ce n'est pas léthal, la prudence vous fera glisser le capot et vérifier que le brochage gravé sur le capot correspond bien à celui du circuit imprimé.


2) Ce que j'appelle le modèle Ebay de base
STM32F103C8T6
Flash = 64 k
Sram = 20 k
Notez les cavaliers jaunes à déplacer pour la programmation.
BOOT0 semble suffire, inutile de toucher à BOOT1 --> c'est ce que j'ai compris mais comme on dit SGDG.


3) Ce que j'appelle Ebay mapple-mini
STM32F103CBT6
Flash = 128 k
Sram = 20 k
Notez le poussoir à enfoncer pendant la programmation il est relié à BOOT0


Je mets aussi en pj les schémas électriques.
Vous pourez voir que la version Mapple est bien plus sérieuse coté mesures analogiques. Non seulement les alim VDD et VDD_A sont séparées mais un régulateur 3,3V est réservé à l'analogique

Je n'ai pour l'instant programmé que le premier. J'ai actuellement un soucis pour afficher des résultats sur le PC --> symptome (visible) : ma Debian refuse de reconnaître l'USB de la carte.
Investigation en cours.

trimarco232


trimarco232

Quote
l'USB de la carte
je crois que c'est de loin le plus difficile
désolé de ne pas pouvoir t'aider sur ce point

68tjs

#13
Dec 16, 2015, 05:29 pm Last Edit: Dec 16, 2015, 05:30 pm by 68tjs
Pas de chance j'allais te poser la question :o .

J'ai quand même affiché ce que je voulais sur le PC : puisque l'USB de la carte fait son mauvais caractère je l'ai laissé bouder et  j'ai sorti du tiroir une interface USB/TTL : l'USART1 fonctionne bien et les E/S tolérantes au 5 volts sont bien pratiques.
L'USB est un problème chi*nt mais vu mon état d'avancement, et à partir du moment où j'ai une solution pour écrire à l'écran cela reste très secondaire.

J'ai relevé tous les registres de configuration de l'horloge tels qu'ils sont après une programmation Mbed.
J'ai maintenant la cartographie des horloges.
Je ne vois pas l'horloge USB comme activée, il y a  il y aura peut être une piste à voir de ce coté.

J'ai quand même une question sur BOOT0 et BOOT1
BOOT1  effectivement son état importe peu pour la programmation
BOOT0 à l'air de fixer le début de la zone d'écriture du programme dans la flash soit 0x00000 (BOOT0 = 0) soit 0x8000000 (BOOT0 = 1).
Je ne l'ai pas lu clairement, mais avec BOOT0 = 0 on devrait effacer le bootloader : vrai ou faux ?
A partir du moment où on utilise le protocole ARM swd (STLink) à quoi sert le bootloader ?

Et ce que je crois avoir compris c'est qu'avec la ligne de commande STLink :
Code: [Select]
$st-flash write test.bin 0x8000000
on écrit obligatoirement à partir de 0x8000000 quelque soit la position de BOOT0, ce qui évite de s'embêter avec le cavalier ou le poussoir.

Quand pense-tu ?


.

-Standby

Mais si tu veux nous faire un tuto avec ce trio nous serons nombreux à te lire avec attention.

C'est deja fait :

http://www.openstm32.org/Importing+a+STCubeMX+generated+project?structure=Documentation
The Mind is like a parachute it works best when opened.

Go Up