Habe ein kleines Programm auf einer älteren BluePill laufen. Macht eine Ausgabe auf einem 128x64 OLED Display an I2C (pins PB6/PB7). Hatte mir dieser Tage (am 30.3. bei Aliexpress) 3 Stck. BluePill, das Stück für 2,61€ inkl. Versand bestellt. Kam heute morgen (4 Tage!). Teil macht eigentlich einen guten Eindruck. Auf der Unterseite noch footprint zum Auflöten eines SPI Rams. Vergoldete Kontakte. Programmiere es mit einem auf Blackmagic umprogrammierten stlinkv2-USB-Dongle. Habe die BluePill in einer 2-reihigen Sockelleiste stecken, das Ganze in einer Lochrasterplatine. Alte raus, neue rein. Programmiert, OLED geht nicht. Ich kann wahlweise die Bluepill mit 5V vom Netzteil auf der Platine oder von 3,3V vom Dongle betreiben, natürlich jeweils die andere Spannung inaktiv. Programmierung lief. Ich kann auch hineinsteppen ins Programm. Aber hier scheint das Programm zu hängen: <pre> Thread #1 1 (Suspended : Signal : SIGINT:Interrupt) HAL_GetTick() at stm32f1xx_hal.c:305 0x8001e70 I2C_WaitOnFlagUntilTimeout() at stm32f1xx_hal_i2c.c:7,306 0x8002bda HAL_I2C_IsDeviceReady() at stm32f1xx_hal_i2c.c:3,568 0x8002918 SSD1306_Init() at ssd1306.c:171 0x800134c main() at main.c:181 0x8000978 </pre> Wie gesagt, auf der älteren BP läuft das OLED Display an I2C (PB6/PB7). Jemand eine Idee? EDIT: erinnere mich vage: braucht's da irgendwo einen Pullup?
:
Bearbeitet durch User
Christoph K. schrieb: > Hatte mir dieser Tage (am 30.3. bei Aliexpress) 3 Stck. BluePill, das... Beim Ali, was erwartest du? fake chip.
Christoph K. schrieb: > braucht's da irgendwo einen Pullup? Sollte auf dem Display vorhanden sein (an SCL und SDA), allerdings für meinen Geschmack zu hochohmig.
Wie ist das mit der I2C clock, könnte es da Unterschiede geben? 400000 KHz ist eingestellt. Beide CPUs sind STM32F103C8T6. Tragen auch das ST Logo. Nichts weggelasert.
Peter L. schrieb: >>>400000 KHz ist eingestellt > > geil, I2C mit 400MHz Takt! Man kann sich auch mal vertippen. Herabsetzen auf 200 KHz bringt auch nichts.
:
Bearbeitet durch User
kannst du bitte mal ein Foto vom Chip einstellen? Habe hier einige gut aussehende Chips mit STM-Aufdruck und doch Fakes. Haben z.B. keinen Timer5. Kannst du die I2C Register ansprechen?
WeAct sind die guten, sofern keine Kopie. Gibt es leider auch, siehe https://github.com/WeActStudio/BluePill-Plus Da sind auch Links zu guten/schlechten Shops.
J. S. schrieb: > WeAct sind die guten, sofern keine Kopie. Gibt es leider auch, siehe > https://github.com/WeActStudio/BluePill-Plus > > Da sind auch Links zu guten/schlechten Shops. War eigentlich auch mein Eindruck. Hier Foto. Sorry, das war das falsche Foto (das ist vom alten, der funktioniert). Neues kommt gleich...
:
Bearbeitet durch User
Christoph K. schrieb: > J. S. schrieb: >> WeAct sind die guten, sofern keine Kopie. Gibt es leider auch, siehe >> https://github.com/WeActStudio/BluePill-Plus >> >> Da sind auch Links zu guten/schlechten Shops. > > War eigentlich auch mein Eindruck. Hier Foto. Sorry, das war das falsche > Foto (das ist vom alten, der funktioniert). Neues kommt gleich... Banal: Hast Du sie bei Weact Studio gekauft?
Thomas W. schrieb: > Christoph K. schrieb: >> J. S. schrieb: >>> WeAct sind die guten, sofern keine Kopie. Gibt es leider auch, siehe >>> https://github.com/WeActStudio/BluePill-Plus >>> >>> Da sind auch Links zu guten/schlechten Shops. >> >> War eigentlich auch mein Eindruck. Hier Foto. Sorry, das war das falsche >> Foto (das ist vom alten, der funktioniert). Neues kommt gleich... > > Banal: Hast Du sie bei Weact Studio gekauft? Ist ja gar nicht mal so leicht, überhaupt herauszukriegen, bei wem man hinter Aliexpress gekauft hat. Auch das Shop könnte natürlich eine Fälschung sein.
An SDA und SCK mal gegen Vcc gemessen und es war "kein einziges Ohm" zu sehen :). 4,7k Pullups eingelötet. Bringt aber nichts. Habe jetzt auch alle drei Exemplare durchgetestet. Alle zeigen das gleiche Fehlverhalten. Nach wie vor das Hängen in der I2C I2C_WaitOnFlagUntilTimeout(). Das Etikett auf der Packung sieht etwas suspekt aus, findet Ihr nicht?
:
Bearbeitet durch User
Christoph K. schrieb: > An SDA und SCK mal gegen Vcc gemessen und es war "kein einziges Ohm" zu > sehen :) Wenn deine Display Module auch die üblichen Spannungsregler enthalten, musst du gegen die interne VCC (3,3V) messen, nicht extern. Oder einfach im laufenden Betrieb ein Multimeter dran halten. Im Ruhezusatnd sollte die Spannung eindeutig HIGH sein.
Christoph K. schrieb: > s. Foto. Darauf kann man nichts erkennen, keine IC-Beschriftungen, gar nichts. Leg' die Platine auf einen weniger hellen Untergrund, beleuchte sie mit möglichst diffusem (aber ausreichend viel) Licht und halte Dein Smartphone möglichst parallel zur Platine. Nimm Dir eine Schachtel oder ähnliches, stell die neben Deine Platine und leg' Dein Smartphone da drauf, dann ist es a) vernünftig ausgerichtet und b) es verwackelt nicht, weil Du es nicht in der Hand hältst. Und sieh Dir das Bild vor dem Hochladen wenigstens selbst mal an.
Harald K. schrieb: > Christoph K. schrieb: >> s. Foto. > > Darauf kann man nichts erkennen, keine IC-Beschriftungen, gar nichts. Ist auch nicht noetig: Das ist schon der Real Deal, WeAct Studio hat auch eine vernuenftige Reputation. Ich hatte Anfang 2025 Bluepill von WeAct gekauft, auf dem Chip steht:
1 | stm32f
|
2 | 103cbt6 |
3 | 992e4 0893 |
4 | mys 99 223 |
Unter der letzten Zeile
1 | ST-Logo (e4) X |
Das X ist (lt. Technical Note TN1433 von ST) die Revision. Gucke bitte mal, ob die Revision bei Deiner funktionsfaehigen Bluepill anders ist. Gucke bitte auch die Errata-Sheet fuer den F103 fuer den Bereich I2C. Was fuer ein Display hast Du? Hast Du die SW selbst geschrieben? Gruesse Th.
Thomas W. schrieb: > Gucke bitte auch die Errata-Sheet fuer den F103 fuer den Bereich I2C. Die HAL enthält funktionierende Workarounds für die I²C Bugs.
Christoph K. schrieb: > War eigentlich auch mein Eindruck. Hier Foto. Sorry, das war das falsche > Foto (das ist vom alten, der funktioniert). Neues kommt gleich... Wenn das doppelt vorhandene Bild eins der neuen Boards zeigt ist der Controller darauf wahrscheinlich echt. Der 2D Code, den ST für das Werk ST MUAR Malaysia Ende 2022 eingeführt hat, dürfte (noch) nicht auf allzu viel Fälschungen zu finden sein. https://www.mouser.com/PCN/STMicroelectronics_13318_merged.pdf
Harald K. schrieb: > Christoph K. schrieb: >> s. Foto. > > Darauf kann man nichts erkennen, keine IC-Beschriftungen, gar nichts. > > Leg' die Platine auf einen weniger hellen Untergrund, beleuchte sie mit > möglichst diffusem (aber ausreichend viel) Licht und halte Dein > Smartphone möglichst parallel zur Platine. Nimm Dir eine Schachtel oder > ähnliches, stell die neben Deine Platine und leg' Dein Smartphone da > drauf, dann ist es a) vernünftig ausgerichtet und b) es verwackelt > nicht, weil Du es nicht in der Hand hältst. > > Und sieh Dir das Bild vor dem Hochladen wenigstens selbst mal an. Wenn Du den Thread verfolgt hättest, dann hättest Du gesehen, daß ich speziell belichtete Fotos der IC Beschriftung hochgeladen habe.
Christoph K. schrieb: > dann hättest Du gesehen, daß ich > speziell belichtete Fotos der IC Beschriftung hochgeladen habe. Zu denen Du dazugeschrieben hast, daß das die älteren Platinen wären.
Harald K. schrieb: > Christoph K. schrieb: >> dann hättest Du gesehen, daß ich >> speziell belichtete Fotos der IC Beschriftung hochgeladen habe. > > Zu denen Du dazugeschrieben hast, daß das die älteren Platinen wären. Zuerst Foto (Singular) die ältere Platine, dann folgten Fotos (Dubletten) nachgeschoben von der neueren.
Du machst es den Helfern echt schwer. Jetzt check halt mal die Pullups am I2C Bus. - einmal ohne Display gegen VCC und gegen V33 - einmal mit Display gegen VCC und gegen V33 Das ganze halt einmal mit dem alten und dem neuen Board. Alle Widerstandsmessungen ohne Stromversorgung. Wie hoch sind die Messwerte? Ist das Display an 3.3V oder Vcc angeschlossen? Wie sind die Chip Revisionen? Dir ist schon klar dass du einmal ein Blupill Board hast und einmal ein Bluepill+ Board. Die sind schaltungstechnisch nicht 100% gleich. Eine vernünftige Skizze wie alles verschaltet ist wäre auch nicht schlecht. Parameter beim Aufruf von I2C_WaitOnFlagUntilTimeout() wären auch nicht schlecht. https://sourcevu.sysprogs.com/stm32/HAL/symbols/I2C_WaitOnFlagUntilTimeout
:
Bearbeitet durch User
Harald K. schrieb: > Hättest Du Dich klarer ausgedrückt ... Ok. Geklärt. Der funktionierende (nicht WeAct) hat (e4) 2 drauf stehen. Der WeAct hat neben dem ST auch (e4) und dann folgt der QR-Code. <PRE> 99217 93 X MSYS 410 RM </PRE> Benutze ein Paket SD1306.c möglicherweise von Stefan Frings. Müßte gleich mal in die Source gucken.
:
Bearbeitet durch User
<pre> ssd1306.c: /** * original author: Tilen Majerle<tilen@majerle.eu> * modification for STM32f10x: Alexander Lutsai<s.lyra@ya.ru> ---------------------------------------------------------------------- Copyright (C) Alexander Lutsai, 2016 Copyright (C) Tilen Majerle, 2015 </pre> Aus den Chip Revisionen werde ich momentan nicht schlau.
Habe jetzt die Pullup-Situation noch mal untersucht und korrigiert. Hatte das Display mit 4.7k an SCL und SDA hoch zu 5V. Sind jetzt an 3.3V angeschlossen. Und ich betreibe das Board jetzt auch erst mal bis zur Klärung des Problems nur noch an 3.3V über den USB Programmier Dongle. Situation ist jetzt so, daß die alte BluePill mit dem OLED Display funktioniert, die neue nicht. Die Chiprevision ist nicht aus der Firmware auslesbar? Gut, es nennt sich BluePill+. Der Schaltplan weist aber keine Änderungen auf, die für meine Anschlüsse relevant sind. OLED geht an PB7-SDA, PB6-SCL. Dann habe ich noch PA0-PA3 (Outputs) und PB8-PB15 (Inputs) und ON_BOARD_LED war beim alten an PC13 pull down und ist am WeAct an PB2 von Output High getrieben. Letzteres habe ich jetzt mal berücksichtigt und im .ioc konfiguriert. Werde mir dann mal die I2C Errata zur Brust nehmen.
Christoph K. schrieb: > Die Chiprevision ist nicht aus der Firmware auslesbar? Beim original STM32F103 nicht, bei Fälschungen geht es oft.
:
Bearbeitet durch User
Das zu durchforstende Errata-Dokument ist dieses: https://www.st.com/resource/en/errata_sheet/es0340-stm32f101xcde-stm32f103xcde-device-errata-stmicroelectronics.pdf ?
Christoph K. schrieb: > Der WeAct hat neben dem ST auch (e4) und dann folgt der QR-Code. > > <PRE> > 99217 93 X > MSYS 410 RM > </PRE> Die Chiprevision steht nach der oben verlinkten Proccess Change Notification am Ende der vorletzten Zeile: "X". Bei meinem Controller, bei dem das Packaging ebenfalls in Malaysia erfolgte, steht dort eine "2" und auch der Wafer Diffusion Plant code links daneben ist anders.
Christoph K. schrieb: > Jemand eine Idee? Wenn es dir nicht auf das letzte Quäntchen an Geschwindigkeit ankommt: Ein Soft-I2C Treiber löst fast alle I2C Probleme dieser Welt. Und man kann sich die beiden I2C Pins praktisch völlig frei auswählen.
:
Bearbeitet durch User
Gelöst. Mea culpa. Asche auf mein Haupt. Die ganze Diskussion über Fake, Errata, Pullups, gute Shops schlechte Shops etc. konnte sich in Luft auflösen. Einer hat hier eine Bemerkung gemacht (Thomas Z. usbman), die mich noch mal aufhorchen ließ. Bluepill+. Die hat eine etwas andere Pinbelegung auf dem Footprint. Pin 1 in einer der beiden Reihen hat Vcc(!). Da ist bei der älteren BluePill G drauf. Zufälligerweise war meine Verdrahtung für das Display so, daß es sich den GND von just diesem Pin1 nahm, so daß am Display an GND auch Vcc lagen. Zufall und Glück zugleich, sonst hätte es vielleicht schlimmere Folgen gehabt. Danke aber für die lange und aufschlußreiche Diskussion. Bei der Gelegenheit möchte ich noch eine kleine Warnung loswerden, die auch in die Kategorie Pinbelegung fällt. Ich hatte mir im Zuge der Forschung vorgestern noch zwei OLED Displays 1,3" OLED I2C Display Modul Binghe auf emerson gekauft. Kurz bevor ich sie auf einem Breadboard verdrahten wollte, guckte ich noch mal drauf und stellte fest, daß die 4 Pins wie folgt belegt waren: Vcc GND SCK SDA Währen die alten, die ich in die Lochrasterplatine eingelötet hatte, die (eigentlich intuitivere) Belegung wie folgt tragen: GND Vcc SCK SDA
:
Bearbeitet durch User
Christoph K. schrieb: > Gelöst. Mea culpa. Asche auf mein Haupt. Mir ist es auch schon so gegangen mit diesen Boards. "Keines" gleicht dem anderen, nur der Name. Man muss wirklich sehr genau prüfen, was man in der Hand hat und ob das Schaltbild auf dem Bildschirm dazu gehört. Schön auch dass du die Lösung hier beschreibst.
:
Bearbeitet durch User
900ss schrieb: > Mir ist es auch schon so gegangen mit diesen Boards. "Keines" gleicht > dem anderen, nur der Name. Man muss wirklich sehr genau prüfen, was man > in der Hand hat und ob das Schaltbild auf dem Bildschirm dazu gehört. Und dieser Laden ( https://weactstudio.de.aliexpress.com/store/910567080 ) verkauft auch verschiedene Varianten von diesem Board. Teilweise sind in dem Shop auch u.a. unterschiedliche CPUs als "Farbe" in dem Shop auswählbar. Ich habe dort letztes WE selbst was bestellt und war zuerst auch etwas verwirrt, letztendlich ist es aber besser wenn solche Unterschiede ausgewiesen sind.
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.