Wegwijs in 32bit microcontrollerland

Dag allen,

Na redelijk wat projectjes in picbasic met 8 bit microcontrollers mis ik soms de rekenkracht van een 32bit microprocessor, vooral als het gaat over floating point berekeningen.

Mijn wenslijst is het volgende:
-Zeker ICD -> in circuit debugger in de software aanwezig, zodat ik stap per stap het programma kan doorlopen.
-Als er microcontroller (test)bordjes van bestaan, zou leuk zijn.
-Een community, of bibliotheek met voorbeelden
-Een eenvoudige programmeeromgeving

Over dat laatste wil ik toch even duidelijk maken, ik heb hier nu een STM nucleo64 (ARM) board met een STM32F030 liggen, met de atollic compiler.
Als ik zie hoeveel config files en bestanden, libraries enz.. daarin zitten, dat gaat dat me toch wel net iets te ver.
In de compilersoftware alleen zijn al zoveel mogelijkheden / merken.

Ik heb ooit een mbed van NXP gekregen, die online compiler werkt echt goed, maar heeft geen ICD, helaas, enkel via de seriële uitgang kan je in een terminal wat opvangen. Wel veel goede programmatie voorbeelden.
Nadeel is ook dat zo'n testbordje al prijzig is.

Ik heb ook eens gekeken naar mikroe en hun producten, zijn er mensen die daar ervaring mee hebben? En of ze tevreden zijn van die compiler software?

Ik ben eigenlijk opzoek naar een goed platform om iets performantere projectjes mee te doen, echter ben ik geen professionele embedded software man, dus graag niet extreem ingewikkeld.

Bij deze de vraag, wat gebruik jij (zowel ide als hardware) voor je grotere microcontroller projecten?
PIC32 / ARM ?

Arco

Special Member

Ik gebruik de PIC24 serie en de MikroE compilers, gaat prima... (nooit behoefte gehad aan PIC32, 70 MIPS is voor mij genoeg... :) )

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

Ik gebruik voornamelijk de STM32 serie (F0/F1 voor kleine projectjes, F3 als ik veel ADCs nodig heb, F4 voor algemeen rekenwerk, en de F7/H7 voor grafische toepassingen), en daarnaast een paar controllers uit de Texas Instruments Picollo serie.

STM32 met Atollic is echt niet moeilijk, natuurlijk zijn er best een boel instellingen en vinkjes te vinden, maar daar hoef je niets mee te doen!

Elke moderne compiler heeft makefiles and linker command files; als je die niet ziet, betekend dat alleen dat je nog dieper in de shit zit als je iets wil veranderen. Wederom, zolang je niets bijzonders wilt, hoef je daar niets mee te doen! Download gewoon een voorbeeld projectje en bouw dat verder uit.

@Arco: heeft die PIC24 ook nieuwerwetse dingen, zoals DMA?

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken

Op 21 december 2018 21:27:07 schreef coldrestart:
... mis ik soms de rekenkracht van een 32bit microprocessor, vooral als het gaat over floating point berekeningen.

Dan moet je van de STM32F0xx naar de STM32F4xx of -7xx overstappen. Die hebben floating point units aan boord.

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

Special Member

heeft die PIC24 ook nieuwerwetse dingen, zoals DMA?

Ja...
(niet dat het echt nieuw is; de 8051 derivaten van 25 jaar geleden hadden ook al DMA... ;) )

[Bericht gewijzigd door Arco op vrijdag 21 december 2018 22:52:51 (39%)

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

Ik heb hier de MC 32-bit starter kit.
Ooit wat mee zitten klooien, maar toch weer terug naar 8/16 bit.
Mede omdat de compiler een C-compiler is en ik een soort allergie voor C heb.

PIC32MX360F, usb kabel, cd met alle documentatie en tools enzo

Mag je van me overnemen. Mijn email adres staat in mijn profiel, dus als je interesse hebt laat het maar horen.

Just find out what you like and let it kill you

@Arco: Dat is één van de dingen die ik erg mis, als ik voor de verandering iets simpels op een 8-bit AVR wil doen, en het maakt een wereld van verschil voor ADCs, SPI communicatie, etc.

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken
Arco

Special Member

Voor de PIC/PIC24/PIC32/PIC33 zijn er ook Basic en Pascal compilers van MikroE...

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

Alvast bedankt allemaal voor de tips.
Inderdaad, die compiler van MikroE ziet er wel leuk uit, ook met voorbeelden én ICD.

Ik ga bij het begin beginnen en eens op dat STM bordje een ledje laten knipperen, en dan kijken hoe vlot dat gaat.

Als ik me wat verdiep in een bepaald merk of systeem, moet je toch de datasheet van de controller doorzwemmen en ik wil me ergens op standardiseren, zodat ik code van vorige projecten opnieuw kan gebruiken.

Het hangt er van af wat je allemaal wilt. De meeste mensen willen dingen als: poortje inlezen, analoge waarde inlezen, even rekenen en actie ondernemen. Dat gaat prima met "arduino". Dat is tegenwoordig ook beschikbaar voor STM32. Maar als je dingen wilt die dichter bij de "state of the art" zitten, dan ga je features gebruiken die verschillende microcontrollers anders implementeren.

Dus: op rond de 1MHz analoge samples nemen en die eens in de zoveel tijd verwerken, daar komt DMA, continuous buffers en half-full interrupts bij kijken. Dat kan niet met een standaard arduino of met de standaard arduino software.

Het "afgeronde" geheel van de arduino betekent ook dat eea weer lastiger is. Zo is het niet triviaal om op een iets andere processor te draaien. Ik heb hier een STM32F042 voor m'n neus liggen en dacht: laat ik die even proberen. Niets van dat alles: die zit er niet kant-en-klaar in.

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

Mijn ervaringen met 32bit vindt je hier :
http://wiki.robotmc.be/index.php/STM32_Discovery_Print_met_ARM_Cortex_…
Ondertussen is de Atollic ide/compiler ook gratis geworden, geen codelimiet meer.

Het gaat me niet om state of the art zaken te gaan ontwikkelen, dat gaat mijn petje teboven.
Het is me meer te doen om de in circuit debugger, wat bij arduino niet mogelijk is en de limitatie van 8 bit bij berekeningen.

Arco

Special Member

Ik heb eventueel nog een nieuw (nooit gebruikt) PIC32MX7 multimediaboard liggen.
(daar ik bij de PIC24 ben blijven steken ben ik er nooit aan toe gekomen om er iets mee te doen)

http://blog.flyingpic24.com/wp-content/uploads/2013/07/multimedia_pic32mx7.png

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

Golden Member

Op 21 december 2018 21:27:07 schreef coldrestart:
...mis ik soms de rekenkracht van een 32bit microprocessor, vooral als het gaat over floating point berekeningen.

Weet je zeker dat je floating point nodig hebt? Het overgrote deel van de toepassingen kan toe met fixed point arithmetic. Dat is net zo snel als rekenen met integers, alleen de representatie is anders. Afhankelijk van de kwaliteit van je libraries kan het je een factor 5-10 aan snelheid schelen.

Don't Panic!
Kruimel

Golden Member

Zo op het eerste gezicht kan ik me ook zo snel geen beeld vormen van het gebied tussen "simpel" en "veel 'floating point' rekenkracht". Ik kan me voorstellen dat je om de zoveel tijd belang hebt bij snelle en nauwkeurige berekeningen, maar ik denk dat we dan voor een concreet probleem een oplossing moeten zoeken, want nu ga je gewoon een hele reeks antwoorden krijgen met de verwijzing naar een relatief snelle processor, maar is je probleem niet opgelost. Als we weten hoeveel rekenkracht je nodig hebt zijn we al dichterbij. In simpele projecten zit ik gewoonlijk meer met synchronisatieproblemen (bijvoorbeeld: hoe regel ik dat de processor zonder teveel jitter op een interrupt reageert maar intussen wel een display vaak genoeg ververst) die niet het gevolg zijn van een tekort aan rekenkracht. Dan moet je veelal je "eigen rekenkracht" inzetten om een slim programma in elkaar te draaien. :)

Arco

Special Member

Zorgen over verversing van een display zul je alleen bij het weergeven van snel veranderende video content hebben.
Normale grafische of karakterdisplays aansturen zul je met geeneen micro problemen hebben.

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

Ik zal even verduidelijken wat mijn wenslijst is:
-Uitlezen van acceleratie,gyro en magneto sensoren (IMU) hoeken uitrekenen e.d. met daarachter PID regelingen.
-CAN bus communicatie
-Nog diverse I²C sensoren uitlezen

Het is een hobbyproject, dus ik heb niet exact de juiste processor voor mijn toepassing nodig, mijn oplages zijn beperkt tot enkele stuks.
Dus als die processor overkill is, dan lig ik daar niet van wakker.

Ik heb niet veel kennis over wat er allemaal op de markt bestaat,er is zoveel (arduino,teensy,PIC,AVR,NXP,STM,...) dus daarom dat ik de vraag heb gesteld.
Blijkbaar kan een 16bit PIC perfect floating point getallen aan, zoals Arco aangaf, dus waarschijnlijk is dat al meer dan voldoende.

Wat ik met "simpel" of "eenvoudig" bedoel is een programmeer omgeving dat plug en play is met voorbeelden én waar je stap-voor-stap door je programma kan lopen, net dat maakt het veel eenvoudiger om je programma te ontwikkelen.En ik wil wel investeren in een goede compiler, zoals ik dat destijds bij Proton heb gedaan (wat nu volledig gratis geworden is), maar dat moet wel met een hobby vriendelijk budget kunnen.
Al zijn de meeste compilers hun demo versie al voldoende.

ATMEL AVR =============

Ik werk hier veel met de Atmel AVR serie. 8-bit, eenvoudig te gebruiken, goede compiler (C / C++) ondersteuning, maar geen single step en debug funkties.

Dat moet wel kunnen, maar dan moet je wel een debugger aanschaffen zoals bijv een Atmel Ice of een dragon. Vanaf +/- 50 Euro. Dat heb ik nooit gedaan.

STM32 =================

Dan werk ik ook wel eens met een STM23F103C8T6, ondersteund door de Atollic ontwikkel omgeving (gratis want opgekocht door ST-semiconductor). Volledig C++, en single step/debug dmv een ST-Link. Dat werkt erg goed, maar die processor is wel een heel stuk complexer. Veel meer registers om in te stellen, veel meer opties in libraries dus veel meer zoekwerk bij programmeren.

https://www.ebay.com/itm/STM32F103C8T6-Minimum-System-Development-Boar…

https://www.ebay.com/itm/ST-Link-V2-Stlink-Emulator-Downloader-Program…

PIC ===================

Met PIC heb ik geen ervaring, dus daar kan ik weinig van zeggen.

Kruimel

Golden Member

Lijkt me een aardige zaak voor een STM32 serie microcontroller inderdaad. Ik heb er zelf niet heel veel ervaring mee, maar wat betreft functionaliteit ontdek ik in die ST micro's best veel handige functionaliteit (net die extra timer, trigger mogelijkheid, stukje analoge handigheid of klokuitgang) en kan ze om die reden niet afraden. Ik geloof dat ze ook 2-wire debugging hebben, waardoor je niet een reeks pinnen op hoeft te offeren voor debugging. Ze zijn bovendien ook best goedkoop (al komen ze nog niet aan de 32 bit voor 32 cent zoals geclaimed).

Op 23 december 2018 12:00:51 schreef Kruimel:
(al komen ze nog niet aan de 32 bit voor 32 cent zoals geclaimed).

Ik heb er ooit een zwik gekocht omdat ik het niet geloofde. Het kwam heel aardig in de richting toendertijd. Ik heb de factuur van 47.36 euro voor 148 stuks voor m'n neus. (Ik heb ondertussen meer dan 300 STM32F030's gebruikt, maar dat zijn de 48 pins exemplaren. Degenen die ik gekocht had zijn TSSOP20. Daar zijn er dus nog een zwik van over.).

[Bericht gewijzigd door rew op zondag 23 december 2018 13:43:35 (20%)

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

Special Member

Ik vind bij de pics heel handig dat je een PPS hebt; je kunt alle digitale peripherals (op i2c na) rerouten naar willekeurige pinnen.
(kan zelfs naar meerdere pinnen tegelijk indien gewenst).

Geeft een nette en simpele print lay-out...

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