Voorkom Widlarizing mijn STM32F103C8T6 controlers!!!

blackdog

Golden Member

Hi,

Ik sta op het punt mijn STM32F103C8T6 controlers die ik al een tijd heb liggen, een onderstaande behandeling te geven!
https://www.bramcam.nl/The-Widlar-izer.png

Wat een ongelovelijke klotezooi zijn de beschrijvingen die ik vind, hoe het USB probleem van deze controlers op te lossen.
Natuurlijk kan ik een usb/serieel printje er aan hangen of gewoon een Teensy pakken waar ik er genoeg van heb, was ik nu al klaar.

Weet iemand een goede beschrijving die voorkomt, dat mijn laars of de hamer op mijn vijf STM32 controlers terrecht komt?
Werkstation is met W10 64Bit uitgerust, driver via install.bat uitgevoerd.

.
https://www.bramcam.nl/STM32-Driver-01.png

.
En drie van de 5 printjes.
https://www.bramcam.nl/STM32-Driver-02.png

Mijn dank is alvast groot! :-)

Groet,
Bram

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.
bprosman

Golden Member

driver via install.bat uitgevoerd.

Met "Run as Administrator" ?

De jongere generatie loopt veel te vaak zijn PIC achterna.
Henk H.

Golden Member

Driver via windows (apparaatbeheer) installeren? Gun Windows 10 de tijd, als je bij control panel kijkt zijn apparaten al lang en breed geïnstalleerd maar als je in het nieuwe menu kijkt (start menu > settings > devices) loopt het installatieproces daar vaak nog lang door. Pas als dat afgerond is werkt het apparaat goed. Ik heb dat vaak bij printers (die hardware installeer ik het meest).

De programmer zit in een USB poort van het moederbord (niet voorop of een uitbreidingskaart). Ik denk dat de poort geen verschil maakt, maar om een "undocumented feature" te snel af te zijn ;)

EDIT: Gebruik je een USB 3.x poort? Werkt het misschien wel op een USB 2 poort? END EDIT

Is het niet zo dat die STM32 leeg is en je zelf eerst iets moet schrijven om de usb aan de praat te krijgen?
Fabriek af beschikt deze STM32 alleen over een Uart bootloader.
Of zit er aan de onderkant nog een usb naar serieel chip?

Shiptronic

Overleden

Dat vind ik het grote naadeel van de chinees, nooit een fatsoenlijke DS van wat je gekocht hebt, al was het maar online te vinden, een vaag ID nummer en dat is het.

Wie de vraag stelt, zal met het antwoord moeten leren leven.
blackdog

Golden Member

Hi Heer Bram,

Natuurlijk als Administrator uitgevoerd!

2N3055
Dat zou ook een mogelijkheid kunnen zijn, hij knippert wel als een "normale" Arduino, maar dat kan natuurlijk ook via de serieel poort zijn gedaan.

Henk H.
Er is geen USB chip, en hij heeft tijd voldoende gehad.
Hij is getest op een USB3 en USB2 Poort.

Verder heb ik een artikel gevonden dat er een weerstand van een verkeerde waarde op het printje zit R10 heb ik reeds verleegt naar 1K5, helpt ook niet.

Ik hang hem eens aan serieel/usb device...

Groet,
Bram

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.

Ik heb een STM32 nucleo en die werkt op W8 perfect. Volgens mij zit daar eenzelfde controllertje op met zo'n SWD debug interface die je van de main print kunt afbreken.

1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.
Arco

Special Member

Ik ben gelukkig al lang geleden gestopt met USB: ik vind het een draak van een uitvinding... ;)
(altijd problemen en geen galvanische scheiding. Ik gebruik meestal een LAN poort, robuuster en simpeler)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
benleentje

Golden Member

Er is voor USB wel galvanische scheiding mogelijk

Ik heb tussen de 10 en 20 apparaten, devices continu aan de USB poorten hangen en nog nooit enige vorm van iets wat leek op een probleem gehad. Ik heb zelfs een USB controller op 10 meter vanaf de PC hangen wat ook gewoon werkt deze is overigens wel met een galvanische scheiding en met actieve kabel.

Mensen zijn soms net als een gelijkrichter, ze willen graag hun gelijk hebben.

Ik heb die printjes ook, op mijn windows 7 installeert de driver probleemloos en kan ik ze met de Arduino IDE programmeren. Ik zoek de driver even voor je op, wordt vervolgd.

It's the rule that you live by and die for It's the one thing you can't deny Even though you don't know what the price is. It is justified.
blackdog

Golden Member

Hi,

Ik heb de eerste Blue Pill kunnen voorzien van een BootLoader via een serieel printje en een bootloader file die via de ST software moest worden geinstaleerd.

Wat een KUT bedrijf is die ST, dat vond ik al, als ik iets zocht op hun website,
en dan nu dat gekut om de software te krijgen met registreren is om je haren uit je hoofd te trekken.
Wat een randdebielen zijn de gene die dat hebben uitgedacht.
Hoe irriteer je je klanten met je bullshit!

Maar goed het werkt nu op het eerste printje, de hoeveelheid opties voor de STM32 zijn wel erg veel,
dat ligt niet direct aan ST, maar aan de fabrikanten van de printjes.
Wil je een kloon programmeren, dat kan ook, kies je toch gewoon de "Fake" series :-)

Ik weet nog niet of ik blij wordt van deze controlers, daar ik geen idee heb waar ik nog tegenaan ga lopen.
Ik heb dit printje gekozen vanavond omdat ik twee aparte i2c bussen wou hebben en voldoende processorkracht.
We gaan zien wat het wordt de komende week.

Dank voor de hulp.
Bram

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.
Arco

Special Member

Er is voor USB wel galvanische scheiding mogelijk

Ja,

Dat is voor alles mogelijk... ;) (het had default al in elke poort moeten zitten)
Veel USB apparaten komem na een hik of onderbreking in de USB verbinding nooit meer terug zonder een reset.
Komt ook door de onnodig complexe opzet van de hele USB topology.

(een originele serieele Midi interface bijv. werkt stukken beter als de (veel snellere) USB-midi versie)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
blackdog

Golden Member

Hi,

Het hele punt is in dit topic natuurlijk niet de galvanische scheiding, maar de stappen die nodig zijn om een Blue Pill microcontroler aan de gang te krijgen.
Welke Chinees het "wat" wel of niet in welke versie van de STM32 voorgeprogrameerd... daar ging het om, om daar achter te komen.
Als hij leeg was, zoals mijn printjes(denk 2 jaar oud) wat was er dan nodig om deze controlers te kunnen programmeren in de Arduino IDE.

En Ja, ik heb een USB scheider en gebruik die waar nodig, maar er geen moment aan gedacht om hem te gebruiken bij mijn STM32 controlers om de "Blink" software te draaien. :-)

Groet,
Bram

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.

Het hele probleem is proberen een controller te programmeren met een programma in de controller.

Dat kan best vaak goed gaan, maar blijft ontzettend wiebelig omdat brakke code die nog in ontwikeling is de controller in een verkeerde toestand kan brengen waardoor je programmeer-interface niet meer werkt.

De enige juiste oplossing is een stand-alone debugger, die voor de ST helemaal niet zo duur is. Je kunt een nucleo afbreken (daar zit ie op), maar ook een ST-Link dongle kopen bij de chinees voor een paar euro.

Werkt honderd keer beter, en staat bovendien echt debuggen (met breakpoints, en single step etc) toe.

D'r zit een bootloader in. Als bij reset de boot0 en boot1 pins in de juiste richting staan boot ie "from system memory", en dat is de bootloader. Hij zeurt via het DFU protocol over USB om nieuwe firmware. Maar tegelijk ook over I2C en serieel (Maar daar doet ie NIETs totdat je de juiste wakker-worden sequence stuurt).

Omdat dit vanuit reset werkt zit de CPU altijd in de juiste state, onafhankelijk van wat voor crashend programma er in zit.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Lucky Luke

Golden Member

En op sommige van die bluepills zit op USB D+ een 10k pull-up, waarvan her en der geschreven staat dat het te hoog is maar vaak wel werkt. Dus als het niet werkt kun je daar nog 1k5 op zetten.

Met een st-link V2 (of kloon) kun je leuk debuggen. Ik gebruik nu cubeMXide en dat werkt leuk. (Ik ben alleen nog in gevecht met de (documentatie van) de HAL).

Die boot-pinnen zitten trouwens op de gele jumpertjes, dus eenvoudig te verzetten.

Eluke.nl | handgetypt | De mens onderscheid zich van (andere) dieren door o.a. complexe gereedschappen en bouwwerken te maken. Mens zijn is nerd zijn. Blijf Maken. (Of wordt, bijvoorbeeld, cultuurhistoricus)
blackdog

Golden Member

Hi,

Hier een plaatje van de Blue Pils die ik heb, zeven stuks in twee uitvoeringen.
Het zwarte printje bevat de zelfde controler als het blauwe printje, alleen de pinning is wat anders, het is zeker geen "Black Pill" uitvoering.

De volgende stap is dus het gebruik van beide i2c bussen, en nee, niet om twee controlers te koppelen waarmee je wordt overspoeld als je met Google zoekt, maar gewoon twee i2c bussen binnen één project.
B.V. de display en relais driver gescheiden houden van wat sensoren en de DA en ADC.

Iemand daar wat voorbeelden van met deze printjes.

Ondertussen vannacht en vanochtend drie uur tijd besteed om te zoeken naar zinnige oplossingen hiervoor.
Een uur geleden doe ik een zelfde zoekopdracht voor de Teensy controlers en bij de eerste hit van Google was het raak, zinnige info.

Maar dit wist ik al van te voren, de hele Teensy controler + Forum en Website is een stuk professioneler dan wat heb gevonden over de STM32 oplossingen/websites.
Naturlijk is er zeer veel info bij ST te vinden, die vonden trouwens dat ze het recht hebben mij te spammen omdat ik wat software van hun website heb gedownload.
Drie e-mails binnen 12 uur!!! dus uitgeschreven en als ze door blijven gaan dan gaan ze op de blocklist.(update ze staan nu geblokt in mijn firewall :-) )

Mmmm, mijn eerst testen met alleen een INA260 via i2c begint al met een drama, hier heb ik dus geen zin in, kost klauwen van mijn tijd, weg met die rommel en een Teensy gaan gebruiken!

Groet,
Bram

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.

Ik heb thuis zelf een aantal van die bluepills van ome Ali en nooit problemen mee gehad. Die USB poort heb ik zelf nog nooit gebruikt om er software in te laden, daarvoor gebruik ik meestal een (clone) ST-link 2. Het is ook mogelijk de software te laden via de UART maar dan moet je eerst de BOOT jumpers correct zetten maar via de ST-link gaat het veel sneller en heb je meer mogelijkheden om te debuggen.

Ik heb de USB poort al gebruikt als virtuele com poort en windows 10 heeft daarvoor geen drivers nodig. Dit kan je eenvoudig instellen via STM32cubeMX, deze maakt als het ware een soort template project waarmee je aan de slag kan in System workbench.

Programmeren in Arduino zal mogelijk zijn maar vind persoonlijk System Workbench prettiger werken. De leercurve ligt bij de STM32 een pak steiler dan bij Arduino omdat je met veel meer rekening moet houden.

blackdog

Golden Member

Hi El Dimi,

Dank voor je info, ik heb de zeven stuks nu al van een bootloader voorzien en kan simpele software via de Arduino IDE er in programmeren.
Ondertussen ben ik er al achter dat er meerdere manieren voor zijn om de STM32 van programma's te voorzien.

Een simpele Schets gaat goed, maar zo gauw ik i2c code gebruikte, ging het al mis met diverse errors omdat de library van ADAFRuit voor de INA260 problemen geeft met deze controler.

Ik ga dus verder geen tijd in steken in de STM controlers, want die heb ik niet, dat zelfde simpele scriptje draaid in 1x op en Teensy LC controler en is ook veel beter gedocumenteerd.
Dat die Teensy LC 4x duurder is, vind ik totaal onbelangrijk, mijn tijd is veel kostbaarder.

Ik zeg in het geheel niet dat de STM32 geen leuk ding is, hij is ook vrij krachtig, veel aansluitingen enz.
Wat me wel tegenvalt is, dat de ADC referentie ingangen niet naar buiten is gebracht bij de uitvoering van de Blue Pill.
De rede is natuurlijk dat ST deze niet beschikbaar heeft gemaakt in de 48 pins IC uitvoering, een beetje een blunder 1e klas als je 12Bit ADC hebt.

Verder is de ingebouwde RTC ook leuk, maar daar lees ik verder ook weinig goeds over, een extra i2c klok printje met de DS3231 en je bent klaar is dan een stuk goedkoper en veel stabieler.
Iemand die de hele dag programmeerd denkt daar natuurlijk anders over, die doet dat meestal voor werk en productie aantallen.
Ik gebruik controlers om mijn meetinstrumentjes op te leuken en dan gaat het om enkele stuks, en wat ik al zij, mijn tijd is kostbaar. :-)

Gegroet,
Bram

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.
Stijnos

Golden Member

Klaag dan niet zo over stm en zrggen dat het een kut bedrijf is.
Ik denk dat ze zeker wel in de top5 microcontroller fabrikanten zitten.
Jij wil iets snel om zonder geduld en het lezen van een datasheet iets te kunnen prototypen. Dan moet je idd iets arduino achtigs nemen. Of teensy (ken ik zelf niet, maar is ook niet echt voor productie aantallen denk ik)
Ik vind STM na me daar echt in verdiept te hebben echt wel goed. Zeer uitgebreide datasheet en zeer flexibele peripherals.
De leercurve is best wel stijl, maar je gebruikt het met een verkeerd doel.

Je had nog wel naar platform io kunnen kijken, dat werkt wel met stms

blackdog

Golden Member

Hi Stijnos,

Ik klaag dat ST een kut bedrijf is betreffende de website, tracking en het sturen van spam e-mail,
dat heeft niets met hun controlers te maken wat mij betreft.

En nu heb ik ook nog eens geen geduld, je bent goed bezig Stijnos!
Zeker bij elkaar 4 uur gezocht/proberen en door CO een beetje in de goede richting gedrukt waardoor ik het uiteindelijk voor elkaar kreeg.

Ik heb aangegeven dat het niet in de controler op zich zit, maar eigenlijk in alles er omheen.
De chinees die de goedkoopste uitvoering kiest van de chip waar dan geen referentie aansluitingen op zitten, ST zijn schuld? nee dus.
Allerlij problemen kom ik tegen bij het opstarten en daar was ik echt niet de enige in, als ik mijn zoek acties er bij pak.
ST zijn schuld natuurlijk niet, het is een onvolwassen controler printje, waar je overal plukjes data vandaan moet halen om iets te laten werken in de Arduino IDE.

Kijk eens op de website van Teensy, dan zie je direct wat ik bedoel met een goed ontwikkelde website en support die je daar krijgt op het forum.
https://www.pjrc.com/teensy/

Wat ik tot nog toe ben tegengekomen van de Blue en de Black Pill in de IDE omgeving van Arduino zorgt er niet voor dat ik die printjes snel zal geen gebruiken.
Ja het klopt dat ik geen software ontwikkelaar ben, ga ik ook nooit worden, maar deze printjes met hun gebrekkige software omgeving in de Arduino IDE en library conflicten zetten mij niet aan tot het gebruik.
Ik zie het als goede componenten(de ST controler) die door prutsers in elkaar gezet is aan de hand van een met haaiepoten geschreven handleiding. :+

Ja je kan het mij verwijten dat ik de aaname heb gedaan dat ik de Blue of Black Pill zo kan gaan gebruiken in de Arduino IDE.
Ik werd direct gecorrigeert door de 10 regels code die een sensor moest uitlezen, natuurlijk kan je dan zeggen dat het aan de library ligt, zal best.
Op de Nano werk het en ook op de Teensy, dan ben ik snel klaar, ik ga zoals ik al aangaf geen nieuwe IDE leren of taal,
of allerlij modules kopen om deze printjes te kunnen programmeren "zoals het hoort".
Deze controlers zijn gewoon niet geschikt voor mijn gebruik.

Maar geen geduld, kom op zeg, ik ben geen kleuter! ;)

De zeven printjes liggen weer in het bakje, misschien voor simpele relais stuur projectjes.

Groet,
Bram

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.
Stijnos

Golden Member

ok ok.
verkeerd product voor verkeerd doel dus.
persoonlijk vind ik de teensy website er nogal amateuristisch uitzien, maar vast wel een goede community en goed forum.

de blue pill bordjes hebben wellicht inderdaad de kleine stm die er is, maar als je veel meer uit een micro wil halen, dan moet je gene arduino code willen doen.
Arduino leent zich verder wel prima voor rapid protyping. Kun je met een simpele arduino pro mega of micro niet uit de voeten?
Ik denk dat je met arduino op een teensy ook een beetje de kracht van een 600Mhz freescale processor teniet doet

Ik weet niet of je al progressie hebt, maar in de screenshot in je eerste foto staat 'A request for the USB device descriptor failed'. Ik moet je waarschuwen, ik ben zelf nooit verder gekomen dan een aantal bytes overknallen tussen een pc en stm32 dus mijn USB kennis is een beetje roestig maar: Ieder USB device heeft een descriptor die beschrijft wat voor apparaat het is. Naar mijn weten moet dit altijd werken, zo niet dan zit het probleem aan de kant van de slave. Ik denk dat er iets fout gaat in de configuratie van de USB. Wat voor omgeving gebruik je? Zelf gebruikte ik de omgeving van ST, met ST-cube https://www.st.com/en/development-tools/stm32cubemx.html om de peripherals in te stellen. Ik moet zeggen dat dat wel vrij aardig werkt.

Wat je nu ervaart is dat je van Arduino achtige spullen met een enorme hobbyisten userbase om gaat naar een stapje professioneler spul. Zo lang je bij Arduino blijft is er heel erg veel informatie te vinden die door adafruit en hobbyisten op internet is gezet. Daarnaast zijn er ook enorm veel libraries gemaakt door zowel adafruit als hobbyisten gratis op internet zijn gezet. Dit maakt het allemaal enorm eenvoudig en tijds besparend als je iets wilt doen. Lib importeren en het werkt. Voor de STM32 is er veel minder kant en klare code te vinden op het internet. Als je dus iets wilt bereiken moet je geluk hebben dat iemand anders je voor is en het op internet heeft geplaatst. Anders moet je zelf gaan zoeken in datasheets ect. En dat kost erg veel tijd! Ik snap je frustratie ook volledig, heb zelf ook al vaak lopen @#%^@#$en met omgevingen die maar half werken. De enige oplossing is een kopje koffie, een rondje wandelen en er opnieuw voor gaan zitten. Dat en erg veel lezen, je ontkomt er echt niet aan als je iets leuks wilt maken.

Als alternatief op de ST chip kan ik je de ESP32 aanraden. Wij zijn op het werk veel bezig met de ESP32. Dit is een chip waarvan de framework 'ESP-IDF' zeer goed omschreven is. Ook zijn er veel voorbeelden te vinden wat het ontwikkelen erg makkelijk maakt. Net als de Arduino is dit een vrij populaire chip binnen de bobby wereld waardoor er veel te vinden is op het internet. Het opzetten van de ontwikkelomgeving, als je niet kiest voor Arduino of platformio, is wel even wat werk al is dat sinds IDF V4 wel verbeterd.

Nog een sidenote:
Ieder merkje heeft zijn eigen framework. Voor de ESP is dit ESP-IDF, voor de st is dit de STCube en voor Arduino is dit, je raad het nooit: Arduino. :) Nu heeft Arduino ook ondersteuning voor de ESP en de ST chip. Dit is ergens wel makkelijk maar houd wel in de gaten dat libraries niet altijd meer compatible zijn omdat de hardware anders is.

Als ide vind ik platform IO wel grappig voor de hobby. Het is igg er makkelijk op te zetten in vergelijk tot een eclipse omgeving met ESP-IDF. De Arduino omgeving vind ik te gebrekkig, maar is wel weer heel gemakkelijk voor beginners.

En wat betreft spam, maak gewoon een tweede email voor accounts. We leven nu eenmaal in een tijdperk waar je voor iedere zoutkorrel die je nodig hebt een account moet aanmaken met de bijbehorende reclame mails, popups tijdens het lezen en andere ellende.

PE2BAS

Voor one-off projectjes moet je inderdaad kijken naar de support, niet naar de prijs of de feature-set.

En qua support zijn hobbyproducten als Arduino en Teensy inderdaad de beste.

Voor een veel uitgebreidere vergelijking van microcontrollers en hun ontwikkelomgeving:
https://jaycarlson.net/microcontrollers/

blackdog

Golden Member

Hi,

Ik wou even laten weten als aanvulling dat het al weer een jaar geleden was dat ik een andere IDE voor Arduino probeerde.
Vandaag heb ik wat gestoeid met de Beta versie van de Arduino IDE, dat is versie 1.9 omdat ik auto complete wel pretig vind voor een dyslect zoals ik ben.
Nou, het rammelt wat mij betreft nog te veel en werkt niet intuitief, zelfs al zou het goed werken volgens hun manier, dan vind ik het niet prettig werken.

Ook heb ik flink geworstels met Atom + platform-IO, en daar wordt ik op het ogenblik niet nat van...
Het rammelt te veel, dan werk het weer wel en dan weer niet, zo irritant, heb Clang drie maal en Atom + platform IO 2x moeten installeren.

Begin ik dit te typen in platformio: in dan krijg ik drie opties en wat ik wou typen "int" zit daar niet bij.
Bij "de" "typen krijg ik alleen de "def" als optie, waarom niet "def" "delay uSec" en "delay mSec.

Bij "pr" krijg ik alleen "printf" te zien, doe ik "pri" dan zie ik drie opties van "printf, dit is in mijn ogen niet handig.

Ik kan allerlei redenen verzinnen waarom het zo zou zijn opgelost, maar ik vind het niet prettig werken."

Voor mij is taal/schrijven erg vermoeiend door mijn dyslectie en als ik code aan het schrijven ben, moet mijn aandacht niet naar een editor gaan die een eigen leven lijd.
Dan kan ik beter zelf de code voluit gaan schrijven in de Arduino IDE, dat voelt dan natuurlijker aan voor mij.

Ik kan nog een keer proberen of een van de editor zoals notepad++ die ik ook gebruik voor ondermeer batch files nu beter werkt,
dat is zeker al twee jaar geleden dat ik die gebruikt heb als externe editor.
Als ik nog wat tijd morgen over heb zal ik laten weten of dat wel voor mij prettig werkt.

Groet,
Bram

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.