tot nog toe heb ik voor mijn projectjes steeds gebruik gemaakt van microcontrollers (de grootste was de PIC18F4455: 40pins).
Ik wil eindelijk eens beginnen aan een "zot" project waarbij zelfs zon 40pins uC niet meer zal volstaan. Ik dacht eens gebruik te gaan maken van microprocessoren (omdat ik mij heb laten wijsmaken dat deze meer kunnen dan uC's). Ik heb hier totaal geen ervaring mee en weet dus ook niet wat de grote voordelen/nadelen zijn tov het gebruik van uC's. Verder zal ik voor microprocessors andere software en programmer nodig hebben (heb nog totaal geen idee welke...). (de grens voor het verschil tussen microprocessor en microcontroller is me ook nog niet geheel duidelijk)

Een andere mogelijkheid is natuurlijk verschillende uC's te gaan gebruiken..., maar ik zou ook beeldverwerking van een miniatuurcameraatje willen doen.

Heeft iemand hier ervaring mee? gebruikt u een "ic-microprocessor" (zoals een uC die in 1 ic-behuizing zit) of gebruikt u een hele aangekochte schakeling met connectoren. Welk type gebruikt u? welke software, programmer? (beschouw deze vragen ook als de start van een discussie met anderen)

de grens voor het verschil tussen microprocessor en microcontroller is me ook nog niet geheel duidelijk

Een microcontroller is gewoonlijk een 'all-in-one solution' (alles in een chip).
Een microprocessor bestaat meestal uit losse bouwstenen (chips) als CPU (de microprocessor), RAM, (EP)ROM, I/O, RTC, ...

Of een CPU of MCU meer kan hangt af van wat je ermee wilt gaan doen. Een ocerzicht van veel microprocessors vind je op: http://www.cpu-collection.de/

Nee hoor, een microprocesor bestaat niet uit losse bouwstenen die jij beschrijft anders zou het een microcontroler zijn. Een microprocesor is alleen de rekenenheid CPU teminste zo is het in de computer wereld.

Precies andersom! Een micorcontroller bestaat uit een microprocessor met heleboel interne "randapparatuur" zoals RAM/ROM/Flash, AD converter, seriele communicatie, etc. etc.

Een microprocessor heeft dat allemaal niet, en kan eigenlijk alleen instructies inlezen en uitvoeren. Die instructies komen uit extern geheugen en de resultaten worden in extern geheugen weggeschreven of verstuurd over een 8- of 16-bit databus naar externe periferie.

Als je geen microcontroller kunt vinden die 10x zo snel en geavanceerd is als een PIC18F4455, dan heb je bijzonder slecht gezocht!

een microprocesor bestaat niet uit losse bouwstenen

OK, schijnbaar is e.e.a. niet helemaal duidelijk...

"een microprocesor systeem bestaat uit losse bouwstenen (chips), waarbij de microprocessor ook een van die chips is..."

beurk, als ik eens naar de CPU's kijk op de site http://www.cpu-collection.de, ben ik plots gedemotiveerd om een poging te doen om met CPU's te gaan werken, om dan nog over het routen en soldeer(pruts)werk te zwijgen...

Het voordeel van een microprocessor systeem is dat je het naar eigen wens kan uitbreiden. Je beslist zelf hoeveel geheugen je installeert, welke peripherals, etc. Maar elk voordeel heb z'n nadeel: het is meer werk om dat allemaal zelf te doen, en te zorgen dat het allemaal netjes samenwerkt. Iedere peripheral/geheugen chip etc., moet je zelf uitzoeken en in het systeem passen.
Bij een microcontroller zit je (min of meer) vast aan de peripherals die de fabrikant voor je gekozen heeft, maar het zit er al allemaal in en het werkt prima samen.

Dit is ook de reden dat er zoveel keuze is in microcontrollers: de fabrikanten bieden je als het ware de flexibiliteit van een microprocessor systeem door de brede keuze. In plaats van het systeem met de gewenste peripherals te ontwerpen kies je dat systeem in een catalogus met microcontrollers.

Dus: ik zou zeggen dat het vooral voordelen bied om een microprocessor te kiezen als je een toepassing hebt waarvoor geen microcontroller bestaat die aan de specificaties voldoet, maar je wel weet hoe je de gewenste specificaties kan realizeren met een zelfontworpen schakeling.

Wel ik dacht dat ik ook het verschil kende. Tot ik op de website van mijn school zag dat ik volgend jaar het vak Microprocessoren en Data-acquisitie krijg.
Het deel microprocessoren werd zo omschreven:

Deel 2 brengt de student in contact met de microprocessor. De basiselementen van een microprocessor worden behandeld vanuit het oogpunt om zowel analoge als digitale informatie in te lezen of uit te sturen. Vervolgens wordt een inleiding gegeven over het programmeren van een microprocessor in de C-taal. Als processor wordt hier de PIC18F4550 genomen.

Naar mijn weten is een pic18F4550 toch een microcontroller! Dit is hoger onderwijs, en ze noemen het nog verkeerd ? Misschien doelen ze enkel op de processor in de controller... maar die 'programmeer' je niet...
Ik kijk er wel al naar uit! alhoewel dit zeer basic zal zijn (blink a led kan ik al lang :D) leer ik er waarschijnlijk toch weer dingen van bij (de echte basics - internals)

De grens tussen controllers en processoren is inderdaad vaag. Kijk eens naar de ARM implementaties. Processoren die als controllers gebruikt worden...

Routing en alles hoeft geen probleem te zijn, er zijn kant en klare bordjes te koop. Grappig dat je routing zegt, veel routers zijn geschikt om om te bouwen tot controllerboard, met relatief veel rekenkracht. Er kan vaak zelfs linux op draaien.

Mocht je echt kracht te weinig hebben, dan kun je altijd eens naar een FPGA kijken. Als je software (algoritme) te traag is, maak je het gewoon in hardware :)

Microcontroller -> to control, besturen.
Microprocessor -> to proces, verwerken.

Microcontroller is een besturingschip.
Microprocessor een verwerkingschip.

Dus zou je het in mijn bovenstaande bericht eigenlijk moeten hebben over een "Microcontroller op basis van een ARM microprocessor-kern". Klinkt leuk maar in de praktijk noemt iedereen het zoals het hem of haar uitkomt gok ik ;-)

En waarom zou je een "Microcontroller op basis van een ARM microprocessor-kern" niet gewoon een microcontroller kunnen noemen? Een auto op basis van een V8-motor is toch ook gewoon een auto?

Op 10 juli 2009 11:56:16 schreef maartenbakker:
Dus zou je het in mijn bovenstaande bericht eigenlijk moeten hebben over een "Microcontroller op basis van een ARM microprocessor-kern". Klinkt leuk maar in de praktijk noemt iedereen het zoals het hem of haar uitkomt gok ik ;-)

Nee, het is dan nog steeds gewoon een microcontroller. Je hebt ook ARM chips zonder intern geheugen (wel met peripherals e.d. zoals UART/SPI/eMMC ding/DMA) Maar dat is dan gewoon weer een microprocessor.

Dat zeg ik toch?

Je zegt toch ook wel eens: Ik heb een auto met een V8? Dat geeft informatie over de kracht van de motor, net zoals dat in mijn omschrijving het geval is.

Als je "meer" wilt dan met een simpele microcontroller, dan kun je het beste een hele snelle (32-bits) microcontroller nemen zoals een ARM, die je dan later (als alles werkt) naar wens kunt uitbreiden met extra geheugen en interfaces. Dat is een heel stuk eenvoudiger dan meteen een schakeling met een microprocessor maken waar alles wat al in een microcontroller zit omheen zit.

De enige dingen waar je op moet letten is dat het nog te solderen is, dat je een eenvoudige programmer kunt gebruiken en dat de adres- en datalijnen naar buiten worden uitgevoerd.

Het is trouwens vaak eenvoudiger om gewoon alles serieel aan te sluiten. De meeste recente microcontrollers ondersteunen dat goed, zelfs met DMA, en aardig snel. Alleen extra geheugen kun je toch beter parallel aansluiten.

microcontroller : processor + datamemory + codememory + i/o op 1 DIE ... dus kom niet af met : de chip in mijn iphone is dus ook een controller... neen das ee processor waarbij ze ram en rom gestackt hebben in in 1 verpakking gestopt hebben. de boel is niet monolithisch.

microprocessor : processor allen (duh!)

ARM is een processor. Haast alle chips die in omloop zijn met een ARM vallen onder de categorie controllers. Alleen Samsung en Atmel hebben ergens een arm 'processor'. dus zonder ram / rom .flash /eprom /eeprom .

Der is nog een verschil: de processoren in controllers zijn meestal geoptimaliseerd om heel snel context switches te kunnen doen.

Als je een straf ding wilt : pak een cortex gebaseerde chip. Vergeet ARM7 / 9. das 'bucht' voor controller toepassingen. die beesten hebben vele te veel cycly nodig om te switchen , en interrupt support is een ramp. bovendien is een standaard arm een brakke von neumann machiene.

Cortex lost dat op: ze zijn naar harvard architectuur overgestapt met gesplitte code en data bussen.