Voorkom Widlarizing mijn STM32F103C8T6 controlers!!!


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

Waarheden zijn "Illusies waarvan men vergeten is dat het illusies zijn"

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.

Henri's Law 1: De wet van behoud van ellende. Law 2: Ellende komt nooit alleen.

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" - www.arcovox.com

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.

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

Waarheden zijn "Illusies waarvan men vergeten is dat het illusies zijn"

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" - 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

Waarheden zijn "Illusies waarvan men vergeten is dat het illusies zijn"

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/

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 // Backwards Lightspeed Bus: i*i=-1, so iic=-c.
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

Waarheden zijn "Illusies waarvan men vergeten is dat het illusies zijn"

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

Waarheden zijn "Illusies waarvan men vergeten is dat het illusies zijn"

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

Waarheden zijn "Illusies waarvan men vergeten is dat het illusies zijn"

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.

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

Waarheden zijn "Illusies waarvan men vergeten is dat het illusies zijn"

Op 3 juni 2020 21:44:01 schreef blackdog:
Ik kan nog een keer proberen of een van de editor zoals notepad++ die ik ook gebruik voor ondermeer batch files nu beter werkt

Ken je Ultraedit? Je moet er wel voor betalen. Op ons werk gebruikten we die.
Ultraedit kent syntax-highlighting voor een aantal programmeertalen en uiteraard zit C ertussen.
Je kan er je eigen programmeertaal aan toevoegen. Maakt niet uit hoe exotisch die is.

Bezoek mijn neefjes' site: www.tinuselectronics.nl

ik vind zelf Visual Micro plugin voor Visual studio wel goed werken.
100x beter dan de arduino IDE iig.

@Stijnos dat lijkt me wel wat. Bij het volgende projectje ga ik dat eens proberen. Weet je toevallig of het ook meer ondersteund naast de arduino? Op hun site zie ik een aantal merken staan maar of dat ook betekend dat ze die ondersteunen weet ik niet.

https://visualgdb.com/?features=embedded
Dat ziet er ook wel interessant uit.

[Bericht gewijzigd door hardbass op 4 juni 2020 15:38:01 (14%)]

wat de andere merken daar doen weet ik niet zo goed.
Misschien omdat ze ook arduino achtige boards hebben? Hoewel vrijwel alle arduino's toch gewoon AVR's hebben (nu is dat tegenwoordig allemaal van microchip, sinds die Atmel hebben opgeslokt)

Maar goed.
Ik gebruik het enkel op een eigen board met een mega2560.
Het debuggen heb ik nooit echt aan de praat gekregen, maar puur als IDE is het al een hele vooruitgang.

Die Visual GDB is wat anders en heeft ook een heel ander prijskaartje.
Ik heb er wel is naar gekeken en wil dat nog steeds een keer gaan proberen, want dat ziet er wel belovend uit en ik ben een fan van Visual Studio en een stuk minder van Eclipse.

Zelfs voor jouw bluepill een heel artikel https://visualgdb.com/tutorials/arduino/stm32/bluepill/

De embedded versie is toch ook gewoon $99. Vervolgens betaal je voor updates en support maar dat is voor zo snel ik het kan zien niet nodig. Visual micro is ook 100 euro, voor de eindeloze versie.

Ik moet er nog eens over peinzen, het is zomaar een beetje hobby, aan de andere kant als het goed werkt scheelt het wel veel hoofdpijn. Daarnaast kost fysiek gereedschap ook geld dus waarom zou je software gratis moeten zijn. Laat ik eens met de trial beginnen :)