Modifications

Sauter à la navigation Sauter à la recherche
m
Ligne 103 : Ligne 103 :     
Les microcontrôleurs STM32 ont une interface de débogage appelée SWD (serial wire debug). Reliée par un programmateur ST-Link, il est possible non seulement de flasher son code sur la puce, mais aussi de le déboguer. C'est à dire exécuter les instructions ligne par ligne, lire et modifier les registres à la volée, pareil pour les variables. Bien plus pratique et moins gourmande en ressources que la technique du printf. J'aborderai dans une autre partie utilisation de ST-Link à cette fin, mais ce qu'il faut retenir, c'est qu'il n'y a pas besoin d'intégrer ST-Link sur votre circuit! L'interface SWD se présente sous la forme de deux broches, SWDIO et SWDCLK. Bien entendu, il faut également relier les masses du programmateur et de votre circuit. Si le circuit n'est pas alimenté, le programmateur peut fournir du 5V et 3.3V. Une autre chose est la broche nRST. Elle est en pull-up ce qui veut dire qu'en la reliant à la masse, le microcontrôleur est Reset. Cette broche doit être également prise en compte. A ma compréhension, lors du premier interfaçage avec le programmateur, le microcontrôleur ne sait pas qu'à tout moment, ST-Link peut invoquer le mode débogue. nRST permet au programmateur d'intercepter le microcontrôleur. Dans votre code, vous pouvez attribuer les broches SWDIO SWDCLK comme étant exclusivement réservées au débogue. Ainsi, vous n'aurait plus besoin du nRST. ST-Link pourra prendre le dessus à tout moment.
 
Les microcontrôleurs STM32 ont une interface de débogage appelée SWD (serial wire debug). Reliée par un programmateur ST-Link, il est possible non seulement de flasher son code sur la puce, mais aussi de le déboguer. C'est à dire exécuter les instructions ligne par ligne, lire et modifier les registres à la volée, pareil pour les variables. Bien plus pratique et moins gourmande en ressources que la technique du printf. J'aborderai dans une autre partie utilisation de ST-Link à cette fin, mais ce qu'il faut retenir, c'est qu'il n'y a pas besoin d'intégrer ST-Link sur votre circuit! L'interface SWD se présente sous la forme de deux broches, SWDIO et SWDCLK. Bien entendu, il faut également relier les masses du programmateur et de votre circuit. Si le circuit n'est pas alimenté, le programmateur peut fournir du 5V et 3.3V. Une autre chose est la broche nRST. Elle est en pull-up ce qui veut dire qu'en la reliant à la masse, le microcontrôleur est Reset. Cette broche doit être également prise en compte. A ma compréhension, lors du premier interfaçage avec le programmateur, le microcontrôleur ne sait pas qu'à tout moment, ST-Link peut invoquer le mode débogue. nRST permet au programmateur d'intercepter le microcontrôleur. Dans votre code, vous pouvez attribuer les broches SWDIO SWDCLK comme étant exclusivement réservées au débogue. Ainsi, vous n'aurait plus besoin du nRST. ST-Link pourra prendre le dessus à tout moment.
 +
 +
D'après [https://www.st.com/content/ccc/resource/technical/document/application_note/group0/3d/a5/0e/30/76/51/45/58/DM00354244/files/DM00354244.pdf/jcr:content/translations/en.DM00354244.pdf AN4989], SWDIO doit avoir un pull-up et le SWCLK un pull-down.
    
Une fois que vous avez terminer votre code, et que vous souhaiter flasher plusieurs carte avec votre fichier binaire, d'autres solutions plus pratiques que le ST-Link existent. Les microcontrôleurs STM32 ont un bootloader vous permettant de flasher la puce. Ce mode est accessible en appliquant une combinaison de '0' ou '1' sur les broches BOOT0 et BOOT1 (BOOT1 n'est pas présente sur tous les MCU). [https://www.st.com/content/ccc/resource/technical/document/application_note/b9/9b/16/3a/12/1e/40/0c/CD00167594.pdf/files/CD00167594.pdf/jcr:content/translations/en.CD00167594.pdf AN2606] donne les différents mode du bootloader de tous les STM32. Le bootloader peut être entrée par différentes interfaces : SPI, CAN, Série, I2C et d'autres. Mais la plus intéressante est l'interface USB. Pas tous les microcontrôleurs STM32 possèdent cette option. Pour ceux qui l'ont, cela veut dire qu'il vous suffira de brancher un câble USB à votre ordinateur et le flashage peut commencer! Donc à garder en tête. Ne pas hésiter à intégrer un jumper pour les pins BOOT0 et BOOT1 et une prise USB (micro, mini, normale, enfin n'importe quel format). Attention, cela ne remplace pas le SWD.
 
Une fois que vous avez terminer votre code, et que vous souhaiter flasher plusieurs carte avec votre fichier binaire, d'autres solutions plus pratiques que le ST-Link existent. Les microcontrôleurs STM32 ont un bootloader vous permettant de flasher la puce. Ce mode est accessible en appliquant une combinaison de '0' ou '1' sur les broches BOOT0 et BOOT1 (BOOT1 n'est pas présente sur tous les MCU). [https://www.st.com/content/ccc/resource/technical/document/application_note/b9/9b/16/3a/12/1e/40/0c/CD00167594.pdf/files/CD00167594.pdf/jcr:content/translations/en.CD00167594.pdf AN2606] donne les différents mode du bootloader de tous les STM32. Le bootloader peut être entrée par différentes interfaces : SPI, CAN, Série, I2C et d'autres. Mais la plus intéressante est l'interface USB. Pas tous les microcontrôleurs STM32 possèdent cette option. Pour ceux qui l'ont, cela veut dire qu'il vous suffira de brancher un câble USB à votre ordinateur et le flashage peut commencer! Donc à garder en tête. Ne pas hésiter à intégrer un jumper pour les pins BOOT0 et BOOT1 et une prise USB (micro, mini, normale, enfin n'importe quel format). Attention, cela ne remplace pas le SWD.

Menu de navigation