Hallo allemaal,

Ik wil beginnen met de wondere wereld van Microcontrollers. Nu zit ik met de vraag voor welke microcontroller-familie kan ik het beste kiezen.

Voor het maken van de keuze vind ik onderstaande punten belangrijk:
- Ontwikkelsoftware tegen geringe kosten, liefst gratis.
- Uitgebreide gratis software libraries. Dus veel voorbeeld code.
- Goede en duidelijke documentatie, ook voor beginners.
- Gemaakte eigen software eenvoudig te laden op de microcontroller middels USB.
- Goedkope debug mogelijkheden.

Wat zijn jullie ervaringen/adviezen?

Je vergeet de C8051 serie van Silabs nog... ;)
Ze zijn allemaal geschikt, het hangt er ook van af wat je er mee wilt doen.
(Voor wat simpel schakelwerk heb je nu eenmaal minder nodig als voor gecompliceerd rekenwerk...)

Ik ben begonnen met avr icm basic.
google eens op bascom?
-makkelijk te leren
-veel voorbeelden code

grtz

er zijn wat ARM CPU's met onboard USB controller die werken als een soort USB stick.
dus inpluggen, 1 poortje laag trekken, resetten en de PC ziet het als USB stickje van een aantal KB waar je zo je programma in kan slepen.
NXP heeft bijvoorbeeld de LPC1343 en LPC1342, beide ARM cortex M-3 uC's, de een heeft 16K flash en de ander 32K flash
KEIL heeft een gratis demoversie tot 32K ervoor en anders heb je iets als CooCox:
http://www.coocox.org/Index.html

maar ARM's zijn allemaal SMD dingen en de programmeertaal soms een beetje lastig met niet zo veel voorbeelden.
je kan een arduino pakken, is een goedkoop ontwikkelbordje met een AVR erop.
extreem populair, voor alles is een voorbeeld en driver wel te vinden.
IDE draait op bijna elk OS, gewoon via USB uploaden.
hele zooi is open source en gratis.
25 euro en je kan beginnen.

als je liever met een losse uC wilt werken kan je kijken naar de PIC van microchip, goedkoop, www.picbasic.nl heeft een goede nederlandse tutorial.
heeft alleen geen USB oid, programmeren heb je dus een losse programmer voor nodig, de pickit 2 of 3 zijn goede en goedkoop (<40 euro en dat is incl een klein dev boardje)
voordeel hiervan is dat je meteen bijna de hele reeks picmicro's kan programmeren, van een 40 cent 8 pins ding tot een 32 bits beest van een uC.

voor de absolute beginner die nog nooit een stukje code heeft gemaakt raad ik de arduino aan, niks aanklooien met printjes maken en SMD solderen, geen gedoe met een schakeling op je breadboard bouwen voor je kan beginnen.
plug & play, kan niet simpeler, binnen 5 mins heb je een ledje aan het knipperen.

iets meer ervaring en een breadboard geen probleem, picmicro of losse AVR's (zelf geen ervaring met de laatste maar er is genoeg over te vinden)

De discussie AVR versus Pic zal wel nooit ophouden.

Ook de discussie basic versus C versus assembler zal wel nooit stoppen.

Door mijn eerste projectjes ben ik bij de ATmega8 en ATtiny2313 terecht gekomen. Een reden om over te stappen op PIC heb ik momenteel niet.

Mijn eerste stappen om zelf te programmeren heb ik gezet met dit boek. Niet het compleetste boek maar wel een goed begin in het Nederlands. Als de basis er is, vind je wel wat je zoekt op het internet.

De benodigde software is voor AVR volledig gratis. Voor assembler kan je gewoon AVR studio4 gebruiken. Voor het programmeren in C is er de GCC plug-in of kan je probleemloos terecht bij Eclipse met AVR plug-in.

De debug functies gebruik ik zeer weinig. Op de pc is de emulatie veel te traag en kan je al helemaal geen decodering doen van een aangeboden digitaal of analoog signaal. Probeer maar eens een DCF, RC5 of DCC signaal verwerkt te krijgen in debug mode.

Picbasic is gratis met beperkingen. Wil je de volledige functionaliteit van de pic c-compiler? Ook dan is het betalen.

De prijzen van de PIC en AVR ontlopen elkaar niet zo veel.

Als ik je zo lees, kom je bij een 8051 kloon uit. Bekijk dat spul van SiLabs eens. Programmer kost niet veel (waarom moet het met alle geweld USB zijn trouwens????).

Wat 'goede' en 'duidelijke' documentatie is, is een heel moeilijk begrip. Er zijn mensen die de datasheets van microchip 'erg goed' vinden, ik ben er niet zo van gecharmeerd.
Er zijn ook mensen die de werking van een 555 op basis van de datasheet niet snappen ('is niet duidelijk uitgelegd'), terwijl het gedrag van zo'n chippie op een half A4tje kan...

Nadeel van 8051 klonen: er is erg veel van (iets met een bomen & bos verhaal). Verder zijn 8051's wat architectuur betreft niet zo geschikt voor stack-georiënteerde talen (als C). Er is prima mee te werken, als je snapt hoe men C op zo'n ding implementeert. Die hobbel heb je met een AVR bijvoorbeeld niet.

Verder moet je je ook eens afvragen wat je aan debugging wilt. Ik redt me prima met een scoop, logic analyzer en even nadenken. Er zijn ook mensen die 'live' moeten kunnen single steppen / debuggen omdat ze het anders niet redden (waarbij dan natuurlijk je timing voor alles wat aangestuurd wordt wel hopeloos de mist in gaat; voor sommigen geen punt trouwens). Als je niet te afhankelijk bent van 'de buitenwereld' kun je je vaak ook prima redden met een simulator. Recentere AVRs hebben 'debugWire'. Met de bijbehorende programmer kun je daar veel mee (mits timing tov. de 'buitenwereld' niet van belang is). Voor 8051 hangt het erg van het 'model' wat je gekocht hebt af wat de mogelijkheden zijn.

Op wel platform wil je draaien? Voor 8051 is weer zat op vanalles te krijgen. Al draait het SiLabs spul voor zover ik weer alleen op M$. Voor AVR en ARM kom je op Linux ook goed weg.

AVRs zijn denk ik het goedkoopst (met een bepaalde hoeveelheid peripherals). Echter, de prijs van een 8051-core is ook niet hoog, dus als het niet voor 'aantallen' is, is dat niet erg. 8051's zijn er met de wereld aan peripherals, inclusief mooie development boards (zo heeft Maxim er een stel waar oa. ethernet en 1-Wire in zit en als ik het goed herinner draait er zelfs java op). microchip schermt ook met veel peripherals in allerlei verschillende modellen. Atmel heeft het er gewoon in zitten, en wat je niet nodig hebt, gebruik je niet (en dan zijn ze nog goedkoper ook).

ARMs zijn over het algemeen voor 'wat groter' werk. Voor een modelvliegtuig met allerlei knipperende LEDs kan ik je een AVR aanbevelen, een ARM is overdone zeg maar :)
Linux op een ARM draaien lukt. Heb ooit wel eens wat voor een 8051 voorbij zien komen, maar geen idee of dat echt van de grond gekomen is. Heb je een OS nodig?

Welke taal wil je gaan gebruiken? Ik vind dat iemand die μC programmeert in elk geval in assembly gewerkt moet hebben (desnoods op een 8086, Z80 ofzo...) om 'gevoel' te hebben met wat een functie met die processor / controller doet. Assembly op een 8051 of AVR is heel goed te doen. Hebben er een prima architectuur voor. Wil je alleen wat simpel met displaytjes en LEDjes knoeien, dan kom je wellicht met een basic variant ook prima weg.

Voorbeeldcode ga je voor allemaal wel vinden. De ene kwalitatief wat brakker dan de andere. Voorbeeldprojecten idem.

Voor mijzelf: ben ooit met pic begonnen. Vrij snel afscheid van genomen, en wat later de draad weer opgepakt met AVRs (wat een verademing!). Later kennis gemaakt met 8051 en ARM (al heb ik ARM alleen high-level in C gedaan, nooit echt 'diep' gegaan met timing ed.) Nooit wat met boeken gedaan. Alles van het internet geplukt.

Staar je niet blind op through-hole. Dat is over & sluiten. Er is nog wel genoeg in te krijgen, maar het is achterhaald. SMD is ook 'thuis' prima te doen, je moet er wat ervaring mee opdoen. Zelf PCB bakken lukt ook prima (maar met de prijzen van de proto-type-services van nu is dat vaak ook al wat minder interessant); het voordeel van SMD is de besparing in tijd (en het vervelende werk!) voor het gaatjes boren

AVRs zijn denk ik het goedkoopst

Ligt er maar net aan wat je nodig hebt. Zelf werk ik nu veel met ARM:

stm32discovery boardje (32Bits 128Kb flash 8Kb ram) van ST:

http://www.st.com/internet/evalboard/product/250863.jsp

Ondermeer te bestellen bij Farnell voor € 10,54 (excl BTW & verzenden) Er zit een programmer en debugger via USB al op, en ook standaard 12bits ADC en DAC met DMA.

Manual:

http://www.element-14.com/community/servlet/JiveServlet/download/24218…

Doe eens een linkje... Als ik bij Farnell dat nummer copy-paste (stm32discovery board levert niks op), dan kost een eval board meer dan €200. Die bedoel je vast niet :)
Overigens zijn dat soort boards niet echt representatief voor wat een chippie kost natuurlijk (maar wel heel erg makkelijk om het te leren kennen; vandaar dat ze vaak relatief goedkoop zijn)

Fabrikant: STMICROELECTRONICS
Ordercode: 1824325
Fabrikantnummer: STM32VLDISCOVERY

http://nl.farnell.com/productimages/farnell/standard/1824325-40.jpg

Ik gebruik deze vaak voor eenmalige dingen op een stukje gaatjes print waar dan de rest op zit. Is goedkoper dan zelf een chip kopen en een print laten maken.

[Bericht gewijzigd door Roland van Leusden op (32%)]

Geinig ding, zeker voor dat geld! (kun je het zelf niet voor maken)

(eh... gaatjes print? dan teken ik 'm zelf wel even... meeste werk is weer het boren...)

In gaatjesprint zitten al gaatjes ... Meestal zijn het alleen maar schakelaars / lichtsluisjes en FET's / ULN2803 die ik eraan knoop. Met 51 I/O pinnen heb ik geen I/O expanders als de 74HC595 meer nodig.

Geef eerlijk toe dat het voor de meeste projecten overkill is, maar kwa kosten is het erg gunstig. Werk nog wel eens met kunstenaars waar de eisen regelmatig tijdens het project veranderen en dan is 128Kb flash en wat meer I/O wel handig.

Wat gebruik je als ontwikkelsoftware voor die STM32VLDISCOVERY?

Is daar iets goedkoops voor te gebruiken, anders dan zo'n vreselijk eclipse/gcc-gedrocht?

Moeite nemen om even de handleiding te lezen?

2 Development toolchain
Atollic, TrueSTUDIO® (including the free LiteTrueSTUDIO®)
IAR, Embedded Workbench® for ARM
Keil, MDK-ARMTM

Op 23 november 2010 17:12:28 schreef Mr. Brown:
Wat gebruik je als ontwikkelsoftware voor die STM32VLDISCOVERY?

Is daar iets goedkoops voor te gebruiken, anders dan zo'n vreselijk eclipse/gcc-gedrocht?

IAR of Keil.
de IAR versie gaat tot 32K code, meer dan zat voor zelfs grote projecten

Kijk ook eens naar een Luminary heeft Cortex M3, in mijn ogen de "opvolger" van de 8051.

luminary bestaat niet meer.... opgeslokt door TI ..

Cortex is inderdaad een grote contender om de 8051 te gaan vervangen, maar schrijf de 8051 niet zomaar af.
er zijn zoveel chips met die core in ... vooral de Silabs devices en ook analog devices zijn daarbij zeeer interessant.

Cortex M3 zou mijn keuze zijn als ik 32 bit geweld nodig heb. engi nadeel voor het ogenblik is dat ze zwak zijn op on board analoge interface gebied.

voor c op de 8051 is sdcc toch wel een aardige keuze dacht ik. Al een hele tijd niks meer mee gedaan maar ik zie op de homepage dat ook daar net als bij avr-gcc een nette debug mogelijkheid is. Ik ga eens met beide spelen voor ik wat aanschaf denk ik.

Voor het normale werk gebruik ik meestal een r5f21258. Dit is een R8C/25 met 64K flash en 3k RAM
De R8C is een verdere ontwikkeling van de M16C en is een 16bit die op 20MHz draait. Deze is voor de meeste toepassingen voldoende. Voordeel van deze is dat deze beter prestaties levert bij het zwaarder rekenwerk door de hardware multiply en divide. De R8C is een zeer robuuste controller die 15kV ESD nodig heeft om tilt te slaan waar de concurentie al bij 5kV plat ligt. De R8C is afkomstig van de M16 reeks (oorspronkelijk van mitsubishi). De M16 kun je in bijna iedere auto terug vinden.

Voor het zwaardere werk gebruik ik de r5f64112. Dit is een R32C/111 met 512k flash en 63k RAM
De R32C is de 32bit versie verder ontwikkeld uit de M16C en draait op 50MHz. Naast hardware multiply en divide heeft deze ook een floating point unit aan boord.

Voor beide reeksen voorziet renesas een c compiler die tot 64k gratis compileert. Je moet al heel veel code schrijven omdat te laten gebeuren. Beiden kunnen via een serial port geprogrammeerd worden. Om beter te kunnen debuggen is het aangeraden om de E8a debugger te gebruiken. Koop deze niet apart maar in een starter kit. De kits zijn meestal goedkoper dan de E8a apart.

En onlangs is de RX bij de renesas familie gevoegd. Dit is een 100MHz controller die alle voordelen van al de renesas families verenigd. Deze haalt 1,6 drystone mips op 100Mhz dankzij dat de flash op 100MHz kan werken.

ik krijg toch de kriebels van een compiler met restricties persoonlijk maar dat neemt niet weg dat ze soms betere code produceren dan een gcc variant. Die is er overigens geen voor dat type of misschien toch wel?

@ Roland...

Zou je me via de mail een voorbeeld project willen sturen. Heb uit nieuwsgierigheid maar van die dingen besteld. Maar nu wil ik er wel mee aan de slag kunnen.

Bij voorbaat dank.

Om niet het topic te kapen zou ik te TS het volgende zeggen:
Ik ben ooit (zoals veel meer) begonnen met de site www.picbasic.nl
Daar staat alles stap voor stap uitgelegd. Deze gebruikt de PIC16F62A.

Het grootte nadeel de software is gelimiteerd tot 50 regels.

Wil je een gratis pakket dan zou ik kijken naar WINAVR voor AVRs.

@Bas Smit

Ik had de handleiding gelezen, was geen moeite hoor.

Als je zelf de moeite genomen zou hebben om even de vraag te lezen dan had je misschien kunnen concluderen dat

Atollic, TrueSTUDIO® (including the free LiteTrueSTUDIO®)
IAR, Embedded Workbench® for ARM
Keil, MDK-ARMTM

alle 3 niet bepaald in de categorie goedkoop en geen eclipse vallen, althans niet zonder vervelende beperkingen, ik wil o.a. wel 128K code kunnnen gebruiken.

Ik was vooral nieuwsgierig naar welke compiler/ontwikkelomgeving Roland gebruikt?

Mr. Brown

Ik gebruik de Atollic TrueSTUDIO, daar zit geen code limiet op. Is wel eclipse trouwens, maar daar heb ik verder geen problemen mee.

Wel mis je de volgende zaken die de PRO versie wel heeft: Code Review, Bug Tracking, Revision Control, UML Modelling and Code Coverage Analysis (TrueANALYZER), maar dat heb ik als hobbist ook niet nodig.

Electronick

Hier is een pagina met veel info, zo ben ik ook begonnen:

Now go to: http://www.st.com/mcu/modules.php?name=mcu&file=familiesdocs&f… and download STM32F10x_StdPeriph_Lib, which is the second entry from the top. This is the latest version of the standard peripheral library firmware that ST provides. When you unzip it, you will see that it has loads of examples of how to do the things you want to do.

TrueSTUDIO® has a project wizard that creates a project for the ST eval boards. This brings in all of the peripheral library code, and gives you a skeleton of an application that initialized the LCD, the LEDs and a while(1) loop. You can then take the examples from the aforementioned STM32F10x_StdPeriph_Lib and cut them into this basic application very quickly in order to try things out.

http://www.joral.ca/blog/?p=110

Bedankt voor de tip, ik ga Atollic TrueSTUDIO eens bekijken.

Ik kreeg onderstaande tip ook via een andere weg.

Als documentatie en uitleg in Engels geen bezwaar is zou je kunnen overwegen met het Arduino platform aan de slag te gaan. http://www.arduino.cc/

De ontwikkelsoftware is gratis en er zijn veel voorbeelden te vinden, ook voor traditioneel lastiger dingen als verbinden met internet (heb je wel extra hardware voor nodig).

Verschillende partijen bieden bordjes aan waar je mee kunt starten, Even googlen levert een hele stapel webwinkels.

Er bestaan een heleboel kant en klare libraries, zie de library pagina van de arduino website. Sommige kun je met willekeurige digitale of analoge poorten gebruiken, andere libraries zijn ontwikkeld om een of meer specifieke poorten te gebruiken. Je kunt dus niet helemaal willekeurig elke poort voor elk doel gebruiken.
Bijvoorbeeld de X10 library staat toe dat je zelf twee digitale poorten aanwijst, maar de PS2Keyboard library vereist in ieder geval gebruik van pen 3 (digitaal).
Dus als je een schakeling wilt maken zul je vooraf moeten kijken of het past en er geen poorten dubbel gebruikt worden.

[Bericht gewijzigd door Henry S. op (40%)]

Op 22 november 2010 23:23:31 schreef subel:
Ik wil beginnen met de wondere wereld van Microcontrollers. Nu zit ik met de vraag voor welke microcontroller-familie kan ik het beste kiezen.

PIC : beste verkrijgbaarheid op langere termijn
AVR : beste 8-bit architectuur
8051's : meest verschillende leveranciers onder de 8-bitters
MSP430 : low-current 16-bitters
cortex-M0 of M3 : 32-bits met veel rom/arm voor de prijs van een 8-bitter (maar geen DIP)

> Ontwikkelsoftware tegen geringe kosten, liefst gratis.

voor allemeaal is wel wat gratis te vinden

> Uitgebreide gratis software libraries. Dus veel voorbeeld code.

idem

> Goede en duidelijke documentatie, ook voor beginners.

geen enkele

> Gemaakte eigen software eenvoudig te laden op de microcontroller middels USB.

koop een progger. < E 50. Er zijn er een paar met een ingebouwde USB-bootloader.

> Goedkope debug mogelijkheden.

lastiger, en ik debug nooit, dus dit weet ik niet zo

> Wat zijn jullie ervaringen/adviezen?

een buurman die ervaring heeft met een bepaalde chip is veel belangrijker dan welke andere overweging dan ook.