IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Embarqué Discussion :

Ecriture impossible


Sujet :

Embarqué

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juillet 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juillet 2017
    Messages : 15
    Points : 3
    Points
    3
    Par défaut Ecriture impossible
    Bonjour à tous,

    Je passe de l'arduino au stm32f103c8. Je pense avoir tout installé correctement sur mon IDE Arduino afin de pouvoir programmer le STM32. J'arrive à injecter le programme blink et ca fonctionne.
    J'ai donc décidé de passer à un programme plus lourd et j'ai donc installé toutes les bibliothèques nécessaires. La compilation de déroule sans problème mais quand je tente le téléchargement j'ai toujours l'erreur :" Wrote address 0x08004b00 (87.54%) Got byte 0x22 instead of ACK
    Failed to write memory at address 0x08004c00" ce n'est pas non plus un gros programme puisqu'il ne prend que 21932 octets (33%) de l'espace de stockage.
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    #include <Adafruit_ILI9341_STM.h>
    #include <License.h>
     
    #include <Font7s.h>
    #include <Font32.h>
    #include <Adafruit_GFX_AS.h>
    #include <Font64.h>
    #include <Font16.h>
    #include <Load_fonts.h>
     
    /*
      Compiled under Arduino 1.6.1  2015/04/01
      Adafruit code updated to use SPI DMA
        Sketch uses 29,048 bytes (26%) of program storage space. Maximum is 108,000 bytes.
        Global variables use 5,288 bytes of dynamic memory.
     
          OLD STM Port      non-DMA STM Port          STM DMA Port
    ILI9341 Test!
    Benchmark                Time (microseconds)    Time (microseconds)        Time (microseconds)
    Screen fill              1,026,635      716,291                    174,901
    Text                     74,910       46,087                      65,358
    Lines                    702,724      400,688                    692,868
    Horiz/Vert Lines         84,359       57,074                      23,342
    Rectangles (outline)     54,489       36,604                      16,625
    Rectangles (filled)      2,132,392      1,487,410                  371,832
    Circles (filled)         344,984      220,662                    181,100
    Circles (outline)        306,326      174,199                    302,904
    Triangles (outline)      222,948      127,154                    219,106
    Triangles (filled)       715,597      472,077                    243,512
    Rounded rects (outline)  130,131      78,591                      91,564
    Rounded rects (filled)   2,331,405      1,615,938                  488,708
    Done!
     
    https://github.com/hwiguna/g33k/blob/master/ArduinoProjects/128x64_OLED/HariChord/HariChord.ino 
     */
     
     
    #include "SPI.h"
     
     
     
    // Pinout for Maple Mini (// For the Adafruit shield, these are the default)
    #define TFT_CS PA0                  
    #define TFT_DC PA2                
    #define TFT_RST PA1  
     
    // Use hardware SPI (on Uno, #13, #12, #11) and the above for CS/DC
    //Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);
    // If using the breakout, change pins as desired
    //Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_MOSI, TFT_CLK, TFT_RST, TFT_MISO);
    Adafruit_ILI9341_STM tft = Adafruit_ILI9341_STM(TFT_CS, TFT_DC, TFT_RST); // Use hardware SPI
     
    int nFrames = 100;    // higher number, slower full-cycle annimation
     
    void setup() {
     
      tft.begin();
      tft.fillScreen(ILI9341_BLACK);
    }
     
     
    void loop(void) {
     
     
      for (int frame=0; frame < nFrames; frame++)
      {
        HariChord(frame);
      }
     
      tft.fillScreen(ILI9341_BLACK);
     
      for (int frame=(nFrames-1); frame >= 0; frame--)
      {
        HariChord(frame);
      }
     
      tft.fillScreen(ILI9341_BLACK);
    }
     
    void HariChord(int frame)
    {
      static boolean flipflop = true;
      flipflop = !flipflop;
      int n = 7;
      int r = frame * 120 / nFrames;    // half smaller of 240 or 320
      float rot = frame * 2*PI / nFrames;
      for (int i=0; i<(n-1); i++)
      {
        float a = rot + i * 2*PI / n;
        int x1 = 120 + cos(a) * r;    // half 240
        int y1 = 160 + sin(a) * r;    // half 320
        for (int j=i+1; j<n; j++)
        {
          a = rot + j * 2*PI / n;
          int x2 = 120 + cos(a) * r;
          int y2 = 160 + sin(a) * r;
          if ( flipflop) tft.drawLine(x1,y1, x2,y2, (long) random(65535));
          if (!flipflop) tft.drawLine(x1,y1, x2,y2, (long) random(65535));
        }
      }
    }

    et voici les message de compilation et d'erreur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    Le croquis utilise 21932 octets (33%) de l'espace de stockage de programmes. Le maximum est de 65536 octets.
    Les variables globales utilisent 2888 octets de mémoire dynamique.
    stm32flash Arduino_STM32_0.9
    
    http://github.com/rogerclarkmelbourne/arduino_stm32
    
    Using Parser : Raw BINARY
    Interface serial_posix: 230400 8E1
    Version      : 0x22
    Option 1     : 0x00
    Option 2     : 0x00
    Device ID    : 0x0410 (Medium-density)
    - RAM        : 20KiB  (512b reserved by bootloader)
    - Flash      : 128KiB (sector size: 4x1024)
    - Option RAM : 16b
    - System RAM : 2KiB
    Write to memory
    Erasing memory
    
    Wrote address 0x08000100 (1.17%) 
    Wrote address 0x08000200 (2.33%) 
    Wrote address 0x08000300 (3.50%) 
    Wrote address 0x08000400 (4.67%) 
    Wrote address 0x08000500 (5.84%) 
    Wrote address 0x08000600 (7.00%) 
    Wrote address 0x08000700 (8.17%) 
    Wrote address 0x08000800 (9.34%) 
    Wrote address 0x08000900 (10.51%) 
    Wrote address 0x08000a00 (11.67%) 
    Wrote address 0x08000b00 (12.84%) 
    Wrote address 0x08000c00 (14.01%) 
    Wrote address 0x08000d00 (15.17%) 
    Wrote address 0x08000e00 (16.34%) 
    Wrote address 0x08000f00 (17.51%) 
    Wrote address 0x08001000 (18.68%) 
    Wrote address 0x08001100 (19.84%) 
    Wrote address 0x08001200 (21.01%) 
    Wrote address 0x08001300 (22.18%) 
    Wrote address 0x08001400 (23.34%) 
    Wrote address 0x08001500 (24.51%) 
    Wrote address 0x08001600 (25.68%) 
    Wrote address 0x08001700 (26.85%) 
    Wrote address 0x08001800 (28.01%) 
    Wrote address 0x08001900 (29.18%) 
    Wrote address 0x08001a00 (30.35%) 
    Wrote address 0x08001b00 (31.52%) 
    Wrote address 0x08001c00 (32.68%) 
    Wrote address 0x08001d00 (33.85%) 
    Wrote address 0x08001e00 (35.02%) 
    Wrote address 0x08001f00 (36.18%) 
    Wrote address 0x08002000 (37.35%) 
    Wrote address 0x08002100 (38.52%) 
    Wrote address 0x08002200 (39.69%) 
    Wrote address 0x08002300 (40.85%) 
    Wrote address 0x08002400 (42.02%) 
    Wrote address 0x08002500 (43.19%) 
    Wrote address 0x08002600 (44.36%) 
    Wrote address 0x08002700 (45.52%) 
    Wrote address 0x08002800 (46.69%) 
    Wrote address 0x08002900 (47.86%) 
    Wrote address 0x08002a00 (49.02%) 
    Wrote address 0x08002b00 (50.19%) 
    Wrote address 0x08002c00 (51.36%) 
    Wrote address 0x08002d00 (52.53%) 
    Wrote address 0x08002e00 (53.69%) 
    Wrote address 0x08002f00 (54.86%) 
    Wrote address 0x08003000 (56.03%) 
    Wrote address 0x08003100 (57.19%) 
    Wrote address 0x08003200 (58.36%) 
    Wrote address 0x08003300 (59.53%) 
    Wrote address 0x08003400 (60.70%) 
    Wrote address 0x08003500 (61.86%) 
    Wrote address 0x08003600 (63.03%) 
    Wrote address 0x08003700 (64.20%) 
    Wrote address 0x08003800 (65.37%) 
    Wrote address 0x08003900 (66.53%) 
    Wrote address 0x08003a00 (67.70%) 
    Wrote address 0x08003b00 (68.87%) 
    Wrote address 0x08003c00 (70.03%) 
    Wrote address 0x08003d00 (71.20%) 
    Wrote address 0x08003e00 (72.37%) 
    Wrote address 0x08003f00 (73.54%) 
    Wrote address 0x08004000 (74.70%) 
    Wrote address 0x08004100 (75.87%) 
    Wrote address 0x08004200 (77.04%) 
    Wrote address 0x08004300 (78.21%) 
    Wrote address 0x08004400 (79.37%) 
    Wrote address 0x08004500 (80.54%) 
    Wrote address 0x08004600 (81.71%) 
    Wrote address 0x08004700 (82.87%) 
    Wrote address 0x08004800 (84.04%) 
    Wrote address 0x08004900 (85.21%) 
    Wrote address 0x08004a00 (86.38%) 
    Wrote address 0x08004b00 (87.54%) Got byte 0x22 instead of ACK
    Failed to write memory at address 0x08004c00
    
    Wrote address 0x08004c00 (88.71%) 
    Une erreur est survenue lors du transfert du croquis
    Un grand merci à ceux qui pourront jeter un coup d'oeil et m'aider.

  2. #2
    Candidat au Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juillet 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juillet 2017
    Messages : 15
    Points : 3
    Points
    3
    Par défaut
    C'est possible que le problème vienne du fait que j'utilise un adaptateur USB/Serie en 5Volt ?

  3. #3
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 190
    Points : 11 573
    Points
    11 573
    Par défaut
    Salut,
    C'est compliqué de répondre si tu ne nous donnes pas la référence de la carte de développement que tu utilises (celle où est implanté ton microcontrôleur STM32F103C8).

    - Si tu utilises un convertisseur USB/Série 5V alors que la carte de développement, dont on ignore tout pour l'instant, est en 3.3V, elle ne va pas apprécier.
    - Est ce que ce matériel a déjà fonctionné avant ?
    - Est il neuf et si oui, chez quel fournisseur a t-il était acheté ? Si ça vient d'Aliexpress alors c'est forcément un produit qui n'a pas passé les tests qualités (c'est pour ça que tout est si peu cher sur ce site) et un défaut de qualité ça va d'une police d'écriture de travers (pas grave) a des défauts de tolérances ou spécifications (entre le "en panne" et "fonctionne a peu prés bien").





    ps : Je ne dis pas qu'il ne faut pas acheter sur ce site, je dis qu'il faut prendre ça en compte. Pour un premier développement ou pour un prototype, jamais je ne prendrai de composant chez eux car c'est un coup a tourner en rond sur un problème pendant 10 ans alors que c'est le truc qu'on a acheté qui ne marche pas Mieux vaut démarrer avec quelque chose de fiable, mettre au point et une fois que c'est fait, là on achète chez Aliexpress.
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  4. #4
    Candidat au Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juillet 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juillet 2017
    Messages : 15
    Points : 3
    Points
    3
    Par défaut
    Salut,
    Désolé du manque de renseignements.

    Mes 2 cartes sont des blue-pill acheté chez aliexpress ,Nom : index.jpeg
Affichages : 548
Taille : 9,6 Ko
    Elles fonctionnent quand je rentre des petits programmes pas long.

    Je suis sous linux, j'ai même essayé de chargé le bootloader mais j'ai aussi une erreur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    sudo stm32flash -w ~/Téléchargements/generic_boot20_pc13.bin -v -g 0x0 /dev/ttyUSB0
    stm32flash 0.5
    
    http://stm32flash.sourceforge.net/
    
    Using Parser : Raw BINARY
    Interface serial_posix: 57600 8E1
    Version      : 0x22
    Option 1     : 0x00
    Option 2     : 0x00
    Device ID    : 0x0410 (STM32F10xxx Medium-density)
    - RAM        : 20KiB  (512b reserved by bootloader)
    - Flash      : 128KiB (size first sector: 4x1024)
    - Option RAM : 16b
    - System RAM : 2KiB
    Write to memory
    Erasing memory
    Got byte 0x00 instead of ACK
    Unexpected reply from device on command 0x31
    Failed to write memory at address 0x08000000
    J'ai fait aussi le test avec un CD4050BE pour avoir une tension TX et RX de 3,3V. Mais c'est pareil sur mes 2 cartes...
    Je vois plus trop de quoi ca peut venir, je désespère car si c'est j'ai pris des STM32 c'est pour utiliser un écran TFT ili9341...

  5. #5
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 190
    Points : 11 573
    Points
    11 573
    Par défaut
    Salut,
    Citation Envoyé par Starjuice Voir le message
    Elles fonctionnent quand je rentre des petits programmes pas long.
    Tu dis avoir un convertisseur USB/Série 5V, qu'elle est la tension de fonctionnement de la carte micro ? 3.3V ou 5V ?

    Si la carte micro est alimentée en 3.3V alors il faut un convertisseur USB/Série 3.3V aussi sinon la carte micro va casser, ce n'est qu'une question de temps. Quand bien même on parlerait de I/O 5V tolérant côté micro, c'est forcément en mettant à contribution les diodes de protections internes du composant, ce qui n'est jamais bon.


    Citation Envoyé par Starjuice Voir le message
    Je suis sous linux, j'ai même essayé de chargé le bootloader mais j'ai aussi une erreur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    sudo stm32flash -w ~/Téléchargements/generic_boot20_pc13.bin -v -g 0x0 /dev/ttyUSB0
    stm32flash 0.5
    
    http://stm32flash.sourceforge.net/
    
    Using Parser : Raw BINARY
    Interface serial_posix: 57600 8E1
    Version      : 0x22
    Option 1     : 0x00
    Option 2     : 0x00
    Device ID    : 0x0410 (STM32F10xxx Medium-density)
    - RAM        : 20KiB  (512b reserved by bootloader)
    - Flash      : 128KiB (size first sector: 4x1024)
    - Option RAM : 16b
    - System RAM : 2KiB
    Write to memory
    Erasing memory
    Got byte 0x00 instead of ACK
    Unexpected reply from device on command 0x31
    Failed to write memory at address 0x08000000
    Peux tu nous montrer la même sortie de console mais pour un petit programme, c'est à dire lorsque tu arrives à programmer.
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  6. #6
    Candidat au Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juillet 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juillet 2017
    Messages : 15
    Points : 3
    Points
    3
    Par défaut
    Merci de prendre le temps de me répondre.

    Normalement elle fonctionne en 3,3V. Mon convertisseur est en 5V mais je passe par un optocoupleur pour avoir du 3,3v mais même sans j'ai exactement le même souci.

    Je te renvoie le message.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    Le croquis utilise 24636 octets (18%) de l'espace de stockage de programmes. Le maximum est de 131072 octets.
    Les variables globales utilisent 2872 octets de mémoire dynamique.
    stm32flash Arduino_STM32_0.9
    
    http://github.com/rogerclarkmelbourne/arduino_stm32
    
    Using Parser : Raw BINARY
    Interface serial_posix: 230400 8E1
    Version      : 0x22
    Option 1     : 0x00
    Option 2     : 0x00
    Device ID    : 0x0410 (Medium-density)
    - RAM        : 20KiB  (512b reserved by bootloader)
    - Flash      : 128KiB (sector size: 4x1024)
    - Option RAM : 16b
    - System RAM : 2KiB
    Write to memory
    Erasing memory
    
    Wrote address 0x08000100 (1.04%) 
    Wrote address 0x08000200 (2.08%) 
    Wrote address 0x08000300 (3.12%) 
    Wrote address 0x08000400 (4.16%) 
    Wrote address 0x08000500 (5.20%) 
    Wrote address 0x08000600 (6.23%) 
    Wrote address 0x08000700 (7.27%) 
    Wrote address 0x08000800 (8.31%) 
    Wrote address 0x08000900 (9.35%) 
    Wrote address 0x08000a00 (10.39%) 
    Wrote address 0x08000b00 (11.43%) 
    Wrote address 0x08000c00 (12.47%) 
    Wrote address 0x08000d00 (13.51%) 
    Wrote address 0x08000e00 (14.55%) 
    Wrote address 0x08000f00 (15.59%) 
    Wrote address 0x08001000 (16.63%) 
    Wrote address 0x08001100 (17.67%) 
    Wrote address 0x08001200 (18.70%) 
    Wrote address 0x08001300 (19.74%) 
    Wrote address 0x08001400 (20.78%) 
    Wrote address 0x08001500 (21.82%) 
    Wrote address 0x08001600 (22.86%) 
    Wrote address 0x08001700 (23.90%) 
    Wrote address 0x08001800 (24.94%) 
    Wrote address 0x08001900 (25.98%) 
    Wrote address 0x08001a00 (27.02%) 
    Wrote address 0x08001b00 (28.06%) 
    Wrote address 0x08001c00 (29.10%) 
    Wrote address 0x08001d00 (30.13%) 
    Wrote address 0x08001e00 (31.17%) 
    Wrote address 0x08001f00 (32.21%) 
    Wrote address 0x08002000 (33.25%) 
    Wrote address 0x08002100 (34.29%) 
    Wrote address 0x08002200 (35.33%) 
    Wrote address 0x08002300 (36.37%) 
    Wrote address 0x08002400 (37.41%) 
    Wrote address 0x08002500 (38.45%) 
    Wrote address 0x08002600 (39.49%) 
    Wrote address 0x08002700 (40.53%) 
    Wrote address 0x08002800 (41.57%) 
    Wrote address 0x08002900 (42.60%) 
    Wrote address 0x08002a00 (43.64%) 
    Wrote address 0x08002b00 (44.68%) 
    Wrote address 0x08002c00 (45.72%) 
    Wrote address 0x08002d00 (46.76%) 
    Wrote address 0x08002e00 (47.80%) 
    Wrote address 0x08002f00 (48.84%) 
    Wrote address 0x08003000 (49.88%) 
    Wrote address 0x08003100 (50.92%) 
    Wrote address 0x08003200 (51.96%) 
    Wrote address 0x08003300 (53.00%) 
    Wrote address 0x08003400 (54.03%) 
    Wrote address 0x08003500 (55.07%) 
    Wrote address 0x08003600 (56.11%) 
    Wrote address 0x08003700 (57.15%) 
    Wrote address 0x08003800 (58.19%) 
    Wrote address 0x08003900 (59.23%) 
    Wrote address 0x08003a00 (60.27%) 
    Wrote address 0x08003b00 (61.31%) 
    Wrote address 0x08003c00 (62.35%) 
    Wrote address 0x08003d00 (63.39%) 
    Wrote address 0x08003e00 (64.43%) 
    Wrote address 0x08003f00 (65.47%) 
    Wrote address 0x08004000 (66.50%) 
    Wrote address 0x08004100 (67.54%) 
    Wrote address 0x08004200 (68.58%) 
    Wrote address 0x08004300 (69.62%) 
    Wrote address 0x08004400 (70.66%) 
    Wrote address 0x08004500 (71.70%) 
    Wrote address 0x08004600 (72.74%) 
    Wrote address 0x08004700 (73.78%) 
    Wrote address 0x08004800 (74.82%) Got byte 0x22 instead of ACK
    Failed to write memory at address 0x08004c00
    
    Wrote address 0x08004900 (75.86%) 
    Wrote address 0x08004a00 (76.90%) 
    Wrote address 0x08004b00 (77.93%) 
    Wrote address 0x08004c00 (78.97%) 
    Une erreur est survenue lors du transfert du croquis

  7. #7
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 190
    Points : 11 573
    Points
    11 573
    Par défaut
    Salut,
    Citation Envoyé par Starjuice
    Normalement elle fonctionne en 3,3V.
    Ok
    Citation Envoyé par Starjuice
    Mon convertisseur est en 5V mais je passe par un optocoupleur pour avoir du 3,3v mais même sans j'ai exactement le même souci.
    Ok
    Je ne remets pas en doute tes compétences en électronique, loin de moi cette idée, mais tu es sur de ton montage ? Par exemple, ton opto n'inverse pas les données ? Par contre, je te confirme que la carte micro va finir par griller si elle est alimentée en 3.3V et que le convertisseur lui envoi des données en +5V.

    Citation Envoyé par Starjuice
    Je te renvoie le message
    Je veux le même message mais pour un programme que tu arrives à programmer. Tu as dit un peu plus haut que tout fonctionne avec des programmes plus petits. C'est le message complet que je veux voir mais avec un petit programme lorsque tu arrives a faire fonctionner la programmation.
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  8. #8
    Candidat au Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juillet 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juillet 2017
    Messages : 15
    Points : 3
    Points
    3
    Par défaut
    Je prend l'exemple du programme blink
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    /*
      Blink
      Turns on an LED on for one second, then off for one second, repeatedly.
    
      Most Arduinos have an on-board LED you can control. On the Uno and
      Leonardo, it is attached to digital pin 13. If you're unsure what
      pin the on-board LED is connected to on your Arduino model, check
      the documentation at http://arduino.cc
    
      This example code is in the public domain.
    
      modified 8 May 2014
      by Scott Fitzgerald
      
      Modified by Roger Clark. www.rogerclark.net for Maple mini 25th April 2015 , where the LED is on PB1
      
     */
    
    
    // the setup function runs once when you press reset or power the board
    void setup() {
      // initialize digital pin PB1 as an output.
      pinMode(PC13, OUTPUT);
    }
    
    // the loop function runs over and over again forever
    void loop() {
      digitalWrite(PC13, HIGH);   // turn the LED on (HIGH is the voltage level)
      delay(1000);              // wait for a second
      digitalWrite(PC13, LOW);    // turn the LED off by making the voltage LOW
      delay(1000);              // wait for a second
    }
    La console
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    Le croquis utilise 7116 octets (5%) de l'espace de stockage de programmes. Le maximum est de 131072 octets.
    Les variables globales utilisent 1984 octets de mémoire dynamique.
    stm32flash Arduino_STM32_0.9
    
    http://github.com/rogerclarkmelbourne/arduino_stm32
    
    Using Parser : Raw BINARY
    Interface serial_posix: 230400 8E1
    Version      : 0x22
    Option 1     : 0x00
    Option 2     : 0x00
    Device ID    : 0x0410 (Medium-density)
    - RAM        : 20KiB  (512b reserved by bootloader)
    - Flash      : 128KiB (sector size: 4x1024)
    - Option RAM : 16b
    - System RAM : 2KiB
    Write to memory
    Erasing memory
    
    Wrote address 0x08000100 (3.60%) 
    Wrote address 0x08000200 (7.20%) 
    Wrote address 0x08000300 (10.79%) 
    Wrote address 0x08000400 (14.39%) 
    Wrote address 0x08000500 (17.99%) 
    Wrote address 0x08000600 (21.59%) 
    Wrote address 0x08000700 (25.18%) 
    Wrote address 0x08000800 (28.78%) 
    Wrote address 0x08000900 (32.38%) 
    Wrote address 0x08000a00 (35.98%) 
    Wrote address 0x08000b00 (39.57%) 
    Wrote address 0x08000c00 (43.17%) 
    Wrote address 0x08000d00 (46.77%) 
    Wrote address 0x08000e00 (50.37%) 
    Wrote address 0x08000f00 (53.96%) 
    Wrote address 0x08001000 (57.56%) 
    Wrote address 0x08001100 (61.16%) 
    Wrote address 0x08001200 (64.76%) 
    Wrote address 0x08001300 (68.35%) 
    Wrote address 0x08001400 (71.95%) 
    Wrote address 0x08001500 (75.55%) 
    Wrote address 0x08001600 (79.15%) 
    Wrote address 0x08001700 (82.74%) 
    Wrote address 0x08001800 (86.34%) 
    Wrote address 0x08001900 (89.94%) 
    Wrote address 0x08001a00 (93.54%) 
    Wrote address 0x08001b00 (97.13%) 
    Wrote address 0x08001bcc (100.00%) Done.
    
    Starting execution at address 0x08000000... done.

  9. #9
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Vincent PETIT Voir le message
    Tu dis avoir un convertisseur USB/Série 5V, qu'elle est la tension de fonctionnement de la carte micro ? 3.3V ou 5V ?

    Si la carte micro est alimentée en 3.3V alors il faut un convertisseur USB/Série 3.3V aussi sinon la carte micro va casser, ce n'est qu'une question de temps. Quand bien même on parlerait de I/O 5V tolérant côté micro, c'est forcément en mettant à contribution les diodes de protections internes du composant, ce qui n'est jamais bon.
    Citation Envoyé par Vincent PETIT Voir le message
    Par contre, je te confirme que la carte micro va finir par griller si elle est alimentée en 3.3V et que le convertisseur lui envoi des données en +5V.
    De l'utilisation que j'en ai faite, on ne se sert généralement pas du VCC, uniquement des lignes de données. 3.3V et 5V indiquent alors les niveaux logiques de l'UART du MCU. Voir http://www.ftdichip.com/Products/Cab...BTTLSerial.htm Il n'y a donc pas de risque de griller la carte (peut-être le câble si tu utilises un 3.3V avec du 5V côté MCU). Après, il y a effectivement un fil VCC à manier avec précaution

  10. #10
    Candidat au Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juillet 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juillet 2017
    Messages : 15
    Points : 3
    Points
    3
    Par défaut
    C'est mes cartes qui ont un problème? J'ai acheté les 2 en même temps chez le même vendeur aliexpress.
    Ou c'est moi qui fait mal quelque chose?

  11. #11
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 190
    Points : 11 573
    Points
    11 573
    Par défaut
    @Bktero
    Ce que je veux dire, c'est qu'il est peut être dans ce cas de figure.
    Nom : arduino_stm32f103c8t6.jpg
Affichages : 664
Taille : 95,3 Ko
    Si la carte micro est alimentée en 3,3V (via le câble USB qui ne sert que pour l'alimentation, comme Raspberry) et que le convertisseur USB/UART sort du 5V il va finir par tout griller.

    @Starjuice,
    Il faut que tu ailles jusqu'au bout de la description des choses (câblage, références des cartes, etc...) il faut qu'on ait les mêmes info que toi (comme ci on était à côté de toi)

    Ici on doit faire des suppositions, Bktero pense que tu utilises un câble avec convertisseur intégré qui alimente dans la foulée la carte micro. Au quel cas pas de soucis. Moi lorsque tu as parlé d'optocoupleur, j'ai pensé à un montage comme la photo ci dessus.

    Je dois aussi supposer que tu utilises la même carte micro que la photo.

    Y a déjà bien trop de suppositions, on arrivera jamais à trouver le problème.

    Montre nous le montage (faut qu'on voit tout meme les fils) + référence des cartes.
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  12. #12
    Candidat au Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juillet 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juillet 2017
    Messages : 15
    Points : 3
    Points
    3
    Par défaut
    Voilà quelques photos.Nom : 20170705_185136.jpg
Affichages : 543
Taille : 726,1 Ko
    interface usb/série chip PL-2303HX

    Nom : 20170705_185257.jpg
Affichages : 514
Taille : 689,1 Ko
    CD4050BE Je peux l'enlever si besoin mais avec ou sans le problème reste le même.

    Nom : 20170705_185237.jpg
Affichages : 536
Taille : 842,5 Ko
    tx>A9
    RX>A10
    Alim GND ET 5V par le convertisseur usb/série

  13. #13
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 190
    Points : 11 573
    Points
    11 573
    Par défaut
    Citation Envoyé par Starjuice Voir le message
    C'est mes cartes qui ont un problème? J'ai acheté les 2 en même temps chez le même vendeur aliexpress.
    Ça c'est le grand problème de ce genre de site. Tu ne peux pas le savoir car tu ne peux pas être sur à 100% que ce que tu as reçu fonctionne parfaitement bien.

    Citation Envoyé par Starjuice Voir le message
    Ou c'est moi qui fait mal quelque chose?
    Moi ce qui m'étonne c'est que ça marche nickel avec un petit programme et ça déconne avec un plus gros (donc quand l'électronique fonctionne simplement plus longtemps car plus de données qui passent).

    Lorsque tu dis qu'avec un petit programme ça fonctionne bien, est ce que ça fonctionne à tous les coups ou bien de temps à autres ça déconne ?

    Si par exemple tu programmes dix fois d'affilés le micro avec le petit programme Blink, est ce que ça marche super bien dix fois de suite ? (électronique fiable ?)
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  14. #14
    Modérateur

    Homme Profil pro
    Ingénieur électricien
    Inscrit en
    Septembre 2008
    Messages
    1 267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électricien

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 267
    Points : 4 829
    Points
    4 829
    Par défaut
    Bonsoir

    Ma boule de cristal me dit que dans le cas où c'est toujours la même adresse mémoire qui plante, il reste possible que c'est cette partie de mémoire qui n'est pas bonne. Il faudrait fixer son contenu à la valeur après effacement (probablement que des 1 ou moins probable des 0) au moyen d'un segment de Data.

    Ce qui me parait bizarre, c'est que l'AN3155, la description du bootloader ne prévoit pas de code d'erreur 0x22, uniquement ACK ou NACK. Ou c'est un problème de bootloader foireux, un peu plus probable sur 2 chip de la même série. Quand à reflasher le bootloader? La datasheet dit clairement que c'est de la ROM, dont non changeable.

    Ou encore c'est le code qui a le mauvais optocode à la mauvaise place (voir les errata de l'AN) qui fait qu'à un endroit le bootloader ne fait pas ce qui est prévu. Il faudrait ajouter quelques instructions dans le code, histoire de changer d'emplacement les instructions. (Mais ici ma boule de cristal n'est pas d'accord).

    Quand à Vincent il a 200% raison au sujet des niveaux logique, on ne mélange pas des signaux en 5V avec des en 3.3V sans précaution et même pour un test aussi court qu'il soit! Par contre pour moi c'est toujours pas claire si le module USB-UART est en 3.3V ou 5V pour les deux lignes de donnée.

    Delias

  15. #15
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    bonsoir,

    dans la photo que tu as posté, la position des jumper m'intrigue. Peut-être que ces liens pourront t'aider :
    https://stm32f4-discovery.net/2014/0...2f4-with-uart/
    https://github.com/palhartinger/HowT...ming-with-UART

    et ceci : http://wiki.stm32duino.com/index.php?title=Blue_Pill

  16. #16
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    Cest vrai que le cable impose du 5V pour son envoi ! Mea culpa je n'ai pour ainsi toujours utiliser que la partie réception de ce genre de cables donc c'était pas un soucis

  17. #17
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 190
    Points : 11 573
    Points
    11 573
    Par défaut
    Auteur,
    Ton dernier lien est un bon exemple de ce qu'on trouve sur Aliexpress, ebay & Co. Des trucs qui n'ont pas passé les tests qualités, qui étaient destinés à la poubelle mais rachetés par des fournisseurs qui les remettent dans le circuit de vente pour 3 fois rien, sur Aliexpress.

    The USB standard requires a 1.5 kΩ pullup resistor on D+, but this board is known to have a wrong value (R10 on the board).
    Si vraiment c'est une mauvaise valeur de résistance le problème de cette carte, j'imagine même pas la prise de tête dans le cas où on n'a pas ce genre d'information ! C'est un coup à planter un projet ou passer dix ans à éplucher son programme alors que c'est la faute du produit neuf (sensé fonctionner)

    Moralité:
    Si on achète de l'électronique sur les sites chinois, il faut partir du principe que ce qu'on a acheté, tombe en marche c'est l'inverse de tomber en panne... C'est quand ça fonctionne par chance.
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  18. #18
    Modérateur

    Homme Profil pro
    Ingénieur électricien
    Inscrit en
    Septembre 2008
    Messages
    1 267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électricien

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 267
    Points : 4 829
    Points
    4 829
    Par défaut
    Bon au vu de la photo j'ai été cherché la doc de la passerelle USB-UART: http://www.prolific.com.tw/UserFiles...HXD_v1_4_4.pdf
    Et un gros coup de chance, la puce sort des signaux au niveau 3.3V (ou plus exactement entre 1.8V et 3.3V en fonction du câblage, mais je pense qu'il est monté avec du 3.3V). C'est l'alimentation transmise sur le fil rouge qui est le 5V de l'USB et non le 3.3V régulé par la puce. Ouf, on n'est pas passé par la correctionnel

    Maintenant que j'ai vu grâce au message de Auteur que ST propose un utilitaire de programmation, il faut l'utilisé Et vérifier en premier que la page mémoire 0x08004800 n'est pas protégée en écriture.

    Delias

  19. #19
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 190
    Points : 11 573
    Points
    11 573
    Par défaut
    Citation Envoyé par Bktero Voir le message
    Cest vrai que le cable impose du 5V pour son envoi ! Mea culpa je n'ai pour ainsi toujours utiliser que la partie réception de ce genre de cables donc c'était pas un soucis
    Y a pas de Mea culpa, ta remarque était très pertinente.

    Delias pensait, tout comme moi (mais son message et plus clair que le mien), qu'il y avait un régulateur 3.3V sur cette carte. Chose qui est vrai si on regarde le schéma donné par Auteur.

    [édit] grillé
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  20. #20
    Modérateur

    Homme Profil pro
    Ingénieur électricien
    Inscrit en
    Septembre 2008
    Messages
    1 267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électricien

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 267
    Points : 4 829
    Points
    4 829
    Par défaut
    Bonsoir à tous

    Vincent, j'ai l'impression que tu mélanges un peu les choses:
    Pour le 3.3V et le 5V, je parlais de la passerelle USB-USART et de la communication RS232 en niveau logique avec le STM, pas du board avec le STM, En général si un board s’alimente avec l'USB et que le micro travail en 3.3V, il y a forcement un régulateur de tension. parfois interne parfois externe au micro.
    Mais bon ne pas savoir quel est le niveau de tension en sortie d'une passerelle et l'interconnecter avec un micro sans chercher plus c'est le meilleur moyen pour jouer aux Indiens (et leurs signaux de fumées)

    Le coup de la résistance c'est pour la communication directe en USB avec le STM, hors ce n'est pas ce qui est utilisé pour la programmation. Cela n'enlève rien au fondement de ta remarque et est parfaitement valable en général pour le made in China.

    Quand à moi, ce que j'achète de la sorte, c'est les circuits obsolètes, car en général ce sont des fins de stock, ou les restes de bobines de circuits qui ont passés les tests qualités. Et là les surprises sont moindres...

    Bonne nuit

    Delias

Discussions similaires

  1. [xubuntu] Ecriture impossible sur une clef USB
    Par Invité2 dans le forum Matériel
    Réponses: 2
    Dernier message: 07/11/2008, 19h07
  2. [Base de registre] Ecriture impossible
    Par sami_b dans le forum Windows XP
    Réponses: 7
    Dernier message: 28/08/2008, 13h49
  3. ecriture impossible non créateur fichier
    Par dommybart dans le forum Réseau
    Réponses: 2
    Dernier message: 19/11/2007, 13h30
  4. Réponses: 12
    Dernier message: 26/04/2007, 11h38
  5. ecriture impossible dans une table vierge
    Par stefano dans le forum Bases de données
    Réponses: 3
    Dernier message: 15/01/2007, 17h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo