Ich habe kürzlich ein paar STM32L152R8T6-Chips in einem örtlichen Elektronikgeschäft gekauft. Laut Seite 11 des Datenblattes soll dieser Chip 10K SRAM und 64K FLASH haben. Wenn ich jedoch einen dieser Chips (den ich bereits auf ein Perfboard gelötet habe, zusammen mit einem einfachen Transistor-UART-3,3-V-<> 5-V-Level-Shifter) mit 'stm32flash' abfrage, antwortet er folgendermaßen:
$ stm32flash -b 115200 /dev/ttyACM0
stm32flash 0.4
http://stm32flash.googlecode.com/
Interface serial_posix: 115200 8E1
Version : 0x30
Option 1 : 0x00
Option 2 : 0x00
Device ID : 0x0416 (L1xxx6(8/B))
- RAM : 16KiB (2048b reserved by bootloader)
- Flash : 128KiB (sector size: 16x256)
- Option RAM : 16b
- System RAM : 4KiB
Und das Linker-Skript von STM32L1xx Standard Peripheral Library v1.3.1 für Geräte mit mittlerer Dichte legt die Größe von FLASH auf 128 KB und die Größe von RAM auf 16 KB fest.
Die Fragen sind :
Ich habe auch versucht, es mit STs eigenem Flash Loader Demonstrator zu verwenden (über Windows 7 auf VirtualBox VM, habe es nicht auf der tatsächlichen Hardware, vielleicht werde ich das später testen), aber es sagt immer wieder, dass es ein "Unrecognized Gerät... Bitte setzen Sie Ihr Gerät zurück und versuchen Sie es erneut".
Ich verwende einen Arduino Mega 2560 als USB <> UART-Brücke und verwende RX0 / TX0, um eine Verbindung zu STM32 herzustellen. Natürlich wird der AVR-Chip von Arduino deaktiviert, indem sein /RESET mit GND verbunden wird. Mit einem solchen Setup kann ich problemlos und ohne Fehler ein einfaches Programm zum Blinken einer LED hochladen und verifizieren (mit stm32flash und einer seriellen Schnittstelle), und es wird funktionieren. Ich habe auch mit integrierten DAC und ADCs herumgespielt, sie scheinen auch gut zu funktionieren (wenn auch etwas langsamer als ich erwartet hatte, aber das hängt wahrscheinlich nicht zusammen - ich fange nur mit ST-Mikros an).
Ich bin auch auf diesen Thread gestoßen , der möglicherweise eine Antwort auf diese Frage enthält, aber ich weiß nicht, ob er erklärt, warum das ST-eigene Tool den Chip nicht erkennen kann.
Die Geräte-ID Ihres Controllers lautet wie folgt:
Device ID : 0x0416 (L1xxx6(8/B))
und ich denke, der Schlüssel ist dieser Teil: L1xxx6(8/B) , diese ID muss für STM32L152R8- und STM32L152RB -Geräte gleich sein .
Wenn wir uns die Tabelle der Flash-/RAM-Größen von ST ansehen, hat der STM32L152RB 128K/16K.
Ich bin mir nicht sicher, vielleicht kann die SPL die RB-Werte nur zuweisen, wenn diese Geräte-ID gelesen wird.
Sie können versuchen, die 64K/10K-Werte manuell einzustellen und prüfen, ob Sie die MCU programmieren können.
Ich glaube nicht, dass Ihre ICs gefälscht sind, überprüfen Sie den Text darauf, um sicherzustellen, dass es eine 8 und kein B ist .
Alexej