22/01/2023, 03:39:44
Voici la réponce que j'a donné hier a Guillaume en MP, mais qui peu potentiellement vous interesser plus largement...
Vaste sujet, je suis toujours en train d'avancer... plusieurs piste en parallèle.
Niveau Matériel d'abord.
J'ai commencé, simple, il y a plusieurs années.
1)
Nucleo-STM32L432KC couplé a un TP-UART récupéré dans le BCU d'un interupteur siemmens, le fameu 5WG1117-2AB12.
J'ai reussi a y adapter la stack de Thelsing.
ça fonctionne pas trop mal, la carte "plante" quand même un fois tout les 2 ou 3 mois, j'ignore pourquoi... ça sent la fuite mémoire je pense
2) Je suis passé a l'étape suivante, j'ai fait ma propre carte (PCB 2 couches, sur seeedstudio) avec un STM32L432KC et, comme le TPUART est introuvable sur mouser ou digikey; j'ai pris le STKNX.
Pour faire la carte, j'avais profité d'une super promo de seeedstudio: le cablage PCBA gratuit, en gros, j'ai payé le PCB et les composant, et c'est tout...
Comme c'était limité a 20 references de composant, j'ai quand même eux quelque composant a souder moi meme; j'ai donc fait 5 prototypes.
Pour le logiciel, c'est plus compliqué, le STKNX n'a rien a voir avec un TPUART... donc, il faut tout gérer très bas niveau...
Mais J'ai reussi a faire marcher les couche basse, avec un code assez compliqué (pas forcement long, juste très technique) basé uniquement sur des handler d'IT et des timer hardware...
Mais ça marche, j’émets et reçois des trames... avec ETS, je programme l'adresse... mais pas plus, j'ai pas fini de coder le dernier layer application, il me recte la gestion des connexions utilié par ETS...
En bas niveau, je n'ai pas encore géré la collision lorsque les communicants débutent pile en même temps...
Pour debuger ma stack, pour comparer avec le fonctionnement de Thelsing, j'ai aussi commencer a transformer totalement sa stack en C pure.
Tout en verifiant sur mon proto 1), qu'elle continue de fonctionner...
J'ai presque fini cette étape, mais, sur la fin de la transition (je fais de multiple commit etape par etape sur un projet git), je fini par avoir un plantage lors de la programmation via ETS... malheureusement, sur des commit qui ne le justifie pas... je soupçonne du coup un problème d'écrasement de stack/heap.... mais comme le domaine microcontrôleur ne m'est pas très familier, je ram un peu la dessus (je suis architecte system Linux embarqué, donc, Yocto, drivers kernel OK, mais microcontrôleur, je suis un peu débutant...
3) En paralléle, j'ai découvert donc le NCN5130 qui me semble parfait... un TPUART en mieux, et accessible sur internet plus facilement
J'ai donc repris mon hardware, pour remplacer le STKNX par ce composant; mais la, je suis tombé sur 2 problème majeur:
- Comment souder la carte, car la promo seeedstudio n'existe plus, et ça coute mega cher (1er devis, a 700€ pour 10 cartes !!) et ça, sans garantie qu'elle marche, puisque c'est un proto !
- Pénurie de composant.. STM32 introuvable, NCN5130 introuvable...
bref, depuis presque 1 an, le projet était un peu a l’arrêt.... jusqu'a une nouvelle idée a la con... faire la carte moi même... mais bon, comment souder des QFN64...
Problème que j'ai enfin résolu fin 2022; j'ai fais (du moins acheter et améliorer) un fours (https://github.com/UnifiedEngineering/T-...provements)
J'ai donc, en plusieurs mois réssi a commander tout les composants nécessaire sauf 2... le CPU et le NCN...
Pour le NCN, finalement, j'ai trouver la solution parfaite... j'ai fait une demande d’échantillon (on a le droit a 1 demande tout les 3 mois), et reçu gratuitement 5 exemplaire...
Pour le CPU, le STM32L432KC est en rupture totale... du coup, changement, je pars sur le STM32G491... consomme a peine plus, mais bien plus gros et puissant que le L432...
Du coup, commande mouser, re-design complet du PCB pour la 4eme fois... circuit, routage, commande sur seeedstudio avec un masque...
Et me voila avec tout ;-)
je tente une premiere soudure au four... mais je n'ai pas été assez precis sur la dépose de patte, la carte est raté...
2eme tentative.... réussi !!!
Du coup, c'est récent...et je manque un peu de temps... mais j'ai déjà démarrer le CPU, la led clignote, la programmation du CPU marche...
ensuite, je vait faire marcher la console serie pour debug...
puis celle pour le NCN...
puis remettre ma stack de ma carte V1; et enlever le code des timer pour gérer plus simplement avec le NCN...
Bref, il me reste beaucoup de chemin, en faite, comme j'ai pas beaucoup de temps a y consacrer, j'avance petit a petit...
Et comme dans mon boulot, je suis pris sur un énorme projet... il ne me reste pas beaucoup de temps dispo...
Mais j'y crois fort, j'ai jamais autant avancé...
Si vous êtes interessé, je peux tout mettre en ligne...
Les schema sont fait sous kicad, les source peuvent etre poser sous github, je peux aussi faire quelque photos...
je penser faire un blog comme j'avais fait pour mes spots lorsque l'état sera un peu stabilisé...
Et puis parallèlement a tout ça, je développe aussi une solution sur ma rockpro64 (équivalent raspbery), complète en Qt, basé sur KNXD... et d'une appli mobile.
ça marche déjà depuis 3 ans, je pilote toute la maison avec mon tel, lumiere volet, vmc, poele... bref, un truc genre homeassistant, mais utilisant 10 fois moins de ressources pour faire le même résultat...
Mais tout est lier, car j'ai besoin de ma carte pour automatiser les éléments suivant de ma maison...
Donc je dois tout avancer en parallèle... doucement mais sûrement...
condo4
Vaste sujet, je suis toujours en train d'avancer... plusieurs piste en parallèle.
Niveau Matériel d'abord.
J'ai commencé, simple, il y a plusieurs années.
1)
Nucleo-STM32L432KC couplé a un TP-UART récupéré dans le BCU d'un interupteur siemmens, le fameu 5WG1117-2AB12.
J'ai reussi a y adapter la stack de Thelsing.
ça fonctionne pas trop mal, la carte "plante" quand même un fois tout les 2 ou 3 mois, j'ignore pourquoi... ça sent la fuite mémoire je pense
2) Je suis passé a l'étape suivante, j'ai fait ma propre carte (PCB 2 couches, sur seeedstudio) avec un STM32L432KC et, comme le TPUART est introuvable sur mouser ou digikey; j'ai pris le STKNX.
Pour faire la carte, j'avais profité d'une super promo de seeedstudio: le cablage PCBA gratuit, en gros, j'ai payé le PCB et les composant, et c'est tout...
Comme c'était limité a 20 references de composant, j'ai quand même eux quelque composant a souder moi meme; j'ai donc fait 5 prototypes.
Pour le logiciel, c'est plus compliqué, le STKNX n'a rien a voir avec un TPUART... donc, il faut tout gérer très bas niveau...
Mais J'ai reussi a faire marcher les couche basse, avec un code assez compliqué (pas forcement long, juste très technique) basé uniquement sur des handler d'IT et des timer hardware...
Mais ça marche, j’émets et reçois des trames... avec ETS, je programme l'adresse... mais pas plus, j'ai pas fini de coder le dernier layer application, il me recte la gestion des connexions utilié par ETS...
En bas niveau, je n'ai pas encore géré la collision lorsque les communicants débutent pile en même temps...
Pour debuger ma stack, pour comparer avec le fonctionnement de Thelsing, j'ai aussi commencer a transformer totalement sa stack en C pure.
Tout en verifiant sur mon proto 1), qu'elle continue de fonctionner...
J'ai presque fini cette étape, mais, sur la fin de la transition (je fais de multiple commit etape par etape sur un projet git), je fini par avoir un plantage lors de la programmation via ETS... malheureusement, sur des commit qui ne le justifie pas... je soupçonne du coup un problème d'écrasement de stack/heap.... mais comme le domaine microcontrôleur ne m'est pas très familier, je ram un peu la dessus (je suis architecte system Linux embarqué, donc, Yocto, drivers kernel OK, mais microcontrôleur, je suis un peu débutant...
3) En paralléle, j'ai découvert donc le NCN5130 qui me semble parfait... un TPUART en mieux, et accessible sur internet plus facilement
J'ai donc repris mon hardware, pour remplacer le STKNX par ce composant; mais la, je suis tombé sur 2 problème majeur:
- Comment souder la carte, car la promo seeedstudio n'existe plus, et ça coute mega cher (1er devis, a 700€ pour 10 cartes !!) et ça, sans garantie qu'elle marche, puisque c'est un proto !
- Pénurie de composant.. STM32 introuvable, NCN5130 introuvable...
bref, depuis presque 1 an, le projet était un peu a l’arrêt.... jusqu'a une nouvelle idée a la con... faire la carte moi même... mais bon, comment souder des QFN64...
Problème que j'ai enfin résolu fin 2022; j'ai fais (du moins acheter et améliorer) un fours (https://github.com/UnifiedEngineering/T-...provements)
J'ai donc, en plusieurs mois réssi a commander tout les composants nécessaire sauf 2... le CPU et le NCN...
Pour le NCN, finalement, j'ai trouver la solution parfaite... j'ai fait une demande d’échantillon (on a le droit a 1 demande tout les 3 mois), et reçu gratuitement 5 exemplaire...
Pour le CPU, le STM32L432KC est en rupture totale... du coup, changement, je pars sur le STM32G491... consomme a peine plus, mais bien plus gros et puissant que le L432...
Du coup, commande mouser, re-design complet du PCB pour la 4eme fois... circuit, routage, commande sur seeedstudio avec un masque...
Et me voila avec tout ;-)
je tente une premiere soudure au four... mais je n'ai pas été assez precis sur la dépose de patte, la carte est raté...
2eme tentative.... réussi !!!
Du coup, c'est récent...et je manque un peu de temps... mais j'ai déjà démarrer le CPU, la led clignote, la programmation du CPU marche...
ensuite, je vait faire marcher la console serie pour debug...
puis celle pour le NCN...
puis remettre ma stack de ma carte V1; et enlever le code des timer pour gérer plus simplement avec le NCN...
Bref, il me reste beaucoup de chemin, en faite, comme j'ai pas beaucoup de temps a y consacrer, j'avance petit a petit...
Et comme dans mon boulot, je suis pris sur un énorme projet... il ne me reste pas beaucoup de temps dispo...
Mais j'y crois fort, j'ai jamais autant avancé...
Si vous êtes interessé, je peux tout mettre en ligne...
Les schema sont fait sous kicad, les source peuvent etre poser sous github, je peux aussi faire quelque photos...
je penser faire un blog comme j'avais fait pour mes spots lorsque l'état sera un peu stabilisé...
Et puis parallèlement a tout ça, je développe aussi une solution sur ma rockpro64 (équivalent raspbery), complète en Qt, basé sur KNXD... et d'une appli mobile.
ça marche déjà depuis 3 ans, je pilote toute la maison avec mon tel, lumiere volet, vmc, poele... bref, un truc genre homeassistant, mais utilisant 10 fois moins de ressources pour faire le même résultat...
Mais tout est lier, car j'ai besoin de ma carte pour automatiser les éléments suivant de ma maison...
Donc je dois tout avancer en parallèle... doucement mais sûrement...
condo4