Ganz einfach, wie würde eure Wunsch MCU aussehen wenn ihr eine bauen
könntet?
(Sollte halbwegs realistisch bleiben)
Hier mal meine:
6502 Kern
64 KByte Flash in 8x8 KByte Bänke an zwei stellen einblendbar.
68 KByte SRAM in 4x16 KByte Bänken an zwei stellen einblendbar und die
letzten 4 KByte als Zeropage, Stack und Füllmaterial bis $1000.
Mindestens 32 IO Leitungen, je nach IC Bauform halt mehr.
Eine UART mit eingebautem Pegelwandler (kein MAX232 nötig) den man auch
abschalten kann bei bedarf.
Vier Timer die einen IRQ auslösen können, aber auch einfach eine IO
Leitung triggern.
ADC und DAC dürfen nicht fehlen, genauso wie SPI.
Optional: Unterstützung für RGB Videoausgabe (Sync Generator...), CAN,
Ethernet und SDHC.
Speicherraum:
RAM0 $0000-$0fff Nicht verschiebbar, da sich hier unter anderem der
Stack aufhält, da sind auch die ominösen 4 KByte hin.
RAM1 $1000-$4fff Austauschbare RAM-Bank 1
RAM2 $5000-$8fff Austauschbare RAM-Bank 2
IO $9000-$bfff Der IO Bereich eben, kann sich alle x Bytes spiegeln um
Dekodierlogik zu sparen.
ROM1 $c000-$dfff Austauschbare ROM-Bank 1
ROM2 $e000-$ffff Austauschbare ROM-Bank 2 (Reset legt diese auf Page 0)
Alle möglichen Bauformen, vom DIL bis zum PGA/BGA.
Preisvorstellung: Bei der Apotheke C. an der Theke für 10 Euro (DIL-40),
bei $GROSSHÄNDLER im 1000er Pack für 1,50 das Stück (BGA).
Die 32Prozessorregister+SREG sollten nicht mehr gepusht werden brauchen,
sondern einfach per (intern mehrfach vorhandener) Bänke umgeschaltet
werden.
- SMD, am Besten TQFP
- 3V3 für vollen Takt
- 5V tolerante Eingänge
- SPI mit FIFO Buffer (viell 16Bytes)
- Hardware MUL, DIV ;-)
- ...
Komm schon...das geht besser...
Da muss wenn schon noch das Ethernet-Interface drinne sein, am besten
direkt an zwei Portpins wackeln. Dann natürlich noch die üblichen
Verdächtigen, wie OGG und MP3 De- und Enkoder.
Am liebsten auch noch on-board Funk mit mindestens 10km Reichweite. Und
damit man sich Trafos sparen kann, hätt ich auch gerne noch ne Serie mit
230V-Betriebsspannung und Ports, die mindestens 5 Ampere treiben
können^^
Naja auf seinen beinchen sollte er dann bitte auch laufen können ;) und
nen kleiner eingebauter Fusionsreaktor wär auch was feines ;)
Also ich finde die XMegas relativ vielversprechend, mehr interner RAM
wär zwar schön, hab aber auch kein Problem damit welchen extern
dranzuhängen, wenn ich den wirklich brauche.
Najo...die XMEGA ham zwar viele schöne Sachen an Bord, aber das wird für
8 Bit einfach zu viel. Da hättense wenigstens 16 Bit draus machen
sollen, so ist das doch alles rumgemurkse... schreibste hier noch zwei
Bit von der Adresse rein, da noch eins und so, ne, schön is das
nichmehr.
@Sven:
Und wie dick wird das Kühlaggregat bei 230v? ;)
Wenn man ganz kleine Brötchen backen will, nen AVR der teile des RAMs
ins Flash einblenden kann.
Um mal ernsthaft zu werden: uC-Core mit den üblichen Annehmlichkeiten
gegenüber FPGAs und Co (also ADC integriert, interner Taktgenerator,
interne Pullups), dazu einigen CPLD-Makrozellen on-chip, die sich auf
Wunsch an die IOs schalten lassen (um digitale Daten vorverarbeiten zu
können und beim Ausgeben flexibler bezüglich der Timings zu sein. Evtl.
Totem-Pole-Ausgänge, um das Teil in einer 5V-3,3V-Mischschaltung
einsetzen zu können.
Dann würde so manche Platine nämlich beinahe eine Ein-Chip-Lösung.
Ich fänds toll, wenn man Spannungsregler irgendwie mitintegrieren
könnte, damit man die 1.3 und 3.3V Konsorten auch direkt an 5V betreiben
kann. Wär richtig praktisch, klar, die I/O müssten denn auch wenigstens
umschaltbar sein.
@stefan:
Von Fujitsu gibts einige Microcontroller (besser gesagt mindestens eine
Familie, die mir bekannt ist), die integrierte Spannungsregler haben.
Intern laufen sie mit 5V. Da ein Linearregler verbaut ist heizen sie
natrlich entsprechend, wenn man etwas mehr Spannung einspeist.
- Schnell: Wenn eine MCU kein externes Speicherinterface hat und
braucht, könnte man die core-clock prinzipiell aufdrehen, ohne daß das
design für den Anwender komplizierter würde. Abgesehen vom
Energieverbrauch natürlich, bin ich der Meinung, daß ein AVR8 heutzutage
auch 400 MIPS können sollte.
- Hardware-Mikrothreads. Keine Interrupts. Ein Satz von WAIT
Instruktionen um flexibel eine Fortsetzungsbedingung formulieren zu
können.
- Nach aussen hin sollte das Ding flexibel konfigurierbar sein. Ich
würde gerne die elektrischen Eigenschaften meiner IO relativ frei
programmieren können, also open-drain/push-pull/line-driver, 5, 3.3,
1.8V. Flankentiming usw. Das Aussentiming kann dabei für günstigere
Modelle durchaus gemütlicher sein.
- In der Folge sollte z.B. ADC in Software implementierbar sein.
Beispielsweise so: Da jeder Ausgang eine konfigurierbare Ausgangspannung
erzeugen können muss, könnte man in einer Eingangsbeschaltung den
Ausgangswert an einen zum Eingang gehörenden internen Komperator führen
und dann würde ein Mikrothread diesen Ausgangswert modifizieren, bis es
funkt. Da kann sich dann jeder selbst überlegen wie schnell er wieviele
bits braucht.
Mit anderen Worten: Einen cleveren Analogteil, ein Digitalteil auf Speed
und keine vorgegebene Funktionalität.
Das klingt momentan nur begrenzt realistisch, allerdings kann ich mit
gut vorstellen, daß irgendwann so jemand wie Intel oder AMD auch noch in
den MCU Markt geht und dann 80 Mal kleinere Pupsläden wie ATMEL mit
überlegener Technik einfach wegzuhauen versucht.
Was mich ja mal interessiert, (wobei ich nicht genau weiß, ob das
überhaupt hier rein gehört) wären optische Prozessoren.
Die sind zwar noch mitten in der Entwicklung, es gibt aber schon
funktionstüchtige Varianten in Din-A5 Größe.
Das besondere ist, dass man nicht mehr mit langsamen Elektronen, sondern
mit Photonen via Gitter,... rechnet. Das führt zu extremst schnellen
Rechenzeichen!!!
Ach ja, bevor ich's vergesse: Die Einbindung von neuronal-ähnlichen
Netzen wäre auch nicht schlecht;-)
Der freundliche Bastler von Nebenan wrote:
> 6502 Kern> 64 KByte Flash in 8x8 KByte Bänke an zwei stellen einblendbar.> 68 KByte SRAM in 4x16 KByte Bänken an zwei stellen einblendbar
Urgs... Naja, jeder soll so träumen wie es ihm gefällt. Für mich klingt
das eher nach Albtraum. Banking bis zum Erbrechen, von der 6502 ganz
abgesehen.
Ich hätte gerne einen MSP430 mit der MSP430X Architektur, mit externem
Speicher-Interface oder wenigstens mit mindestens 64kByte internem RAM.
Ein gescheiter 16Bit ADC mit min 85dB SNR sollte mit drauf sein und die
Taktfrequenz sollte bis 32MHz gehn. Ansonsten sind die schon sehr gut.
Naja, Stromverbrauch könnte noch weniger sein, obwohl das dann schon
schwierig wird. Achja, ein paar mehr als 3 DMA Kanäle wären nicht
schlecht.
So, genug geträumt.
>Wenn man halt mit dem C64 aufgewachsen ist...>Überdies ist die 6502 die CPU mit der einfachsten Maschinensprache,>zumindest IMHO.
Hmmm, dann kennst Du offenbar ausschließlich die 6502-Maschinensprache.
Orthogonalität? Fremdwort...
Warum könnte man in einen Microcontroller nicht gleich 4G DRAM
integrieren? Dann bräuchte es extern nur noch einen Flash oder ein
Eprom. Am besten mit einem dynamischen Datenbus, der sich auf 8, 16 oder
32 Bit einstellen lässt.
Im MC wäre dann der DRAM-Controller integriert. Eine FPU wäre auch nicht
schlecht.
Im grossen und ganzen müsste das doch gehen? Okay es müssten nicht
gleich 4G DRAM sein, aber sicher ziemlich viel. RAM hat man ja nie genug
;) Mit den heutigen Technologien passt das sicher in eines der gängigen
QFPs.
Aha, wenn genuegend Saft da ist kann man sich ja die Wunsch CPU in einem
FPGA basteln. Und dann noch ein paar Monate fuer einen ASM verbraten.
Mir ist lieber fuer eine bereits erhaeltliche CPU vernuenftige Tools zu
bekommen. Dass ein Projekt in vernuenftiger Zeit machbar ist.
Aber halt auch nur wenn man einen ausreichend grossen FPGA hat. Mit
einem, der nur 8k Gatter hat, wird man nicht allzu weit kommen denke
ich.
Aber du hast recht, man kauft besser Prozessoren und Controller, die es
schon gibt. Eine selbergebaute CPU wäre zwar ziemlich cool, aber ich
könnte mich mit der Idee doch nicht so recht anfreunden. Ausserdem ist
es doch schade, den guten FPGA für sowas zu verwenden. Besser man
platziert auf einer Leiterplatte gleich beides: Controller und FPGA, die
über Daten- Steuer- und Adressleitungen verbunden sind. So hat man einen
flexiblen Peripheriebaustein, der diverse Dinge selbständig tun kann -
man kann dann dort Register drin basteln, in die der Controller
reinschreiben oder Werte rauslesen kann.
Tobias Plüss wrote:
> Warum könnte man in einen Microcontroller nicht gleich 4G DRAM> integrieren? Dann bräuchte es extern nur noch einen Flash oder ein> Eprom. Am besten mit einem dynamischen Datenbus, der sich auf 8, 16 oder> 32 Bit einstellen lässt.
Hei Tobi ;p
Also wenn wir schon 4G RAM auf dem Chip haben, koennen wir gleich noch
16G Flash daneben integrieren, mit 10E20 Schreibzyklen.
Eine CPU im FPGA ist heute Standard. Da gibt's einen Haufen freie cores
dazu. Siehe www.opencores.org. Viele CPUs sind als Core fur einen FPGA
erhaeltlich.
6640 wrote:
> Eine CPU im FPGA ist heute Standard. Da gibt's einen Haufen freie cores> dazu. Siehe www.opencores.org. Viele CPUs sind als Core fur einen FPGA> erhaeltlich.
Jups, sogar nen Atmega103-Kern ;)
Obwohl ich mir besseres vorstellen kann als wie wieder nen Havard zu
verbauen.
Das ist nämlich das was mir am AVR nicht gefällt, man kann keinen Code
ausm Speicher ausführen. Keine Chance den AVR in einem billigen
Eigenbaucomputer zu verbauen ausser mit ner VM (siehe AVR-ChipBasic,
etc...).
Ok, der 6502 ist auch nicht perfekt, aber dafür gibt es modifizierbare
Tools wie Sand am Meer, man hat Communitysupport (CSDB ;) ) und wenn man
das Teil in einen FPGA packt kann man ihn noch schick erweitern.
Wenn du mir verraten kannst welcher Mikro freie(BSD oder GPL!)
Tools(C-Compiler und Flasher) hat die unter Linux laufen, Von Neumann
ist und Schweinebillig ist werde ich mir den sofort besorgen.
@Mike:
Nein, ich kenn noch ein wenig x86, aber diese CPU ist sowas von
Gruselig, da vertrau ich lieber auf den Output des Compilers.
@Michael G:
Nein, das mit dem DRAM war ernst gemeint. 4G meine ich darum, weil es
natürlich eine 32 Bit CPU sein soll.
Aber es müssen nicht 4G sein, aber ich denke ein paar MB sollten machbar
sein, vielleicht sogar im 100 MB-Bereich.
Der freundliche Bastler von Nebenan wrote:
> Wenn man halt mit dem C64 aufgewachsen ist...
6502 stand auch bei mir am Anfang. Ist aber kein Grund, da ewig stehen
zu bleiben. Viele Jungs haben mit Mopeds angefangen, den meisten davon
wird das dann aber bald zu klein.
> Überdies ist die 6502 die CPU mit der einfachsten Maschinensprache
Was die Maschinensprache angeht, also Hex-Ebene ohne symbolische
Adressen (z.B. http://oldcomputers.net/kim1.html): Da tut man sich
weitaus einfacher wenn man keine relativen Adressen rechnen muss. Muss
man bei 1802 nicht, mit 6502 schon. Einfacher ist dann nur noch
MAXQ2000: 1 Befehl mit 2 Adressierungsarten.
Du meinst möglicherweise Assemblersprache. Einfacher und eleganter als
MSP430 geht's dann m.E. kaum. Solange man unter 64KB bleibt, darüber
ergibt das weniger Sinn, auch nicht wirklich in Form von MSP430X.
Mein Wunsch-µC:
- Bauform QFP64 mit 0.8mm Raster
- ARM Kern + FPU
- integrierter DRAM Controller
- Anschlussmöglichkeit für ext. Flash,
der sich über JTAG programmieren lässt.
- Geschwindigkeit sollte man während des
Betriebs ändern können (1MHz - 100MHz)
- UART, I²C, SPI, USB 2.0 (master+slave),
Ethernet, 16Bit ADC, 16Bit DAC
- DMA für alles
- 3.3V Betriebsspannung
- 5V Kompatibilität
Dieser Punkt ist interessant:
> - Anschlussmöglichkeit für ext. Flash,> der sich über JTAG programmieren lässt.
MCUs, bei denen man externen Flash-Speicher per JTAG programmieren kann
habe ich noch nie gesehen. Gibt es so etwas überhaupt?
Ja gibts, allerdings kenn' ich nur einen. Den MC68360 von Motorola /
Freescale. Sehr schöner Prozessor... im allgemeinen finde ich die
68k-Architektur und die davon abgeleiteten Derivate ziemlich genial. Die
ganze Registerstruktur etc. gefällt mir besonders... immerhin hat man da
16 Akkus zu je 32 Bit, in denen man jede Operation durchführen kann.
Ich, der ich an 8051 gewohnt bin, finde das natürlich toll ;)
Die Freescale Dinger haben aber ein großes Problem was sie nur für
Firmen interessant macht:
Keine freien Tools, vorallem kein Flasher.
Für mich als Linuxer sind die dann eh nichts, CodeWarrior kostet ein
Schweinegeld und ein, von mir aus auch closedsource, Flashertool sucht
man vergebens.
Wie wahr, leider ist das so.
Mir ist auch nur eine Hand voll freien Tools bekannt, und die ist nicht
wirklich toll.
Aber ich darf die Software aus der Firma benutzen (hab mal nachgefragt).
Eine wirklich gute Toolchain, allerdings halt für Windows (was sie für
dich als Linuxer wohl nicht wirklich attraktiver macht).
Wir verbauen bei uns noch häufig CPU32 dinger.
Dumm nur, daß eierlegende Wollmilchsäue auch entsprechend kompliziert zu
parametrisieren sind und einen Hang dazu haben, genau das zu tun, was
man gerade nicht will...
Ich hätte gerne eine mcu, die analoge Funktionsblöcke enthält. Also z.B.
man möchte ein Signal Filtern/Verstärken/Verändern und hinterher wieder
Analog ausgeben. Hierbei aber nicht auf digitale Verarbeitungswege
zurückgreifen. Am besten, man hat mehrere Verstellbare Filterbänke,
mehrere Verstärker und mehrere Analog-Rechenschaltungen (mul, add) und
kann diese beliebig miteinander verschalten - zur Laufzeit veränderbar.
Das wär mal was!
Was habt ihr alle nur für ein Problem mit den 3,3 Volt?
Das ist doch einem Spannungsregler piep-egal, ob er nun 5 Volt oder 3,3
Volt macht.
Ist mir völlig unverständlich...
Lila, Weiß und Gold sind hier zu sehen:
http://refurbs.de/dip.htm
@WunschCPU:
32Bit Speicherzugriffe, Bis ca 40MHz, üppig Ram, DMA und alles
Abschaltbar, was man nicht braucht und Strom zu sparen. Gerne auch Teile
des Rams. Ansonsten wurde schon viele Genannt, was ich jetzt nicht
nochmal abpinseln will.
Sebastian
Tamme D. wrote:
> ich will eine in pink ;) immer nur schwarz i so trist>> *duckundwech*
Nimmst halt nen schwarzen und malst ihn tuelli an ;) Musst nur Deinen
rosa Nagellack dazu verwenden hehe :D