Hi,
ich muss mit ca. 10Mhz 8bit breite Daten ausgeben.Ich hatte das bis
jetzt ganz elegant mit einem AVR gemacht, allerdings nur mit 4Mhz. 16Mhz
des Avr waren dafür sehr angenehm ausreichend. Jetzt müsste ich den AVR
auf 40Mhz übertakten, was ziemlich unangemessen wäre :-))
Ich benötige ca. 128k für die Daten. Ram wird kaum benutzt, flash in ein
register lesen, und ausgeben (Das ganze erzeugt ein statisches Bild auf
nem TV)
keine zähler, keine timer, alles hardcoded. Ich hatte erst an einen
CPLD+Flash gedacht, allerdings sind das dann 2 Ics, und mehr platz auf
dem Board.
Der Arm sollte (genau wie der AVR) die Widerstandmatrix direkt treiben
können.
Achso und ein Freier, gut funktionierender Assembler sollte verfügbar
sein.
Bei ARMs könnte es etwas haarig sein, eine auf den Takt genau konstante
I/O-Rate hinzubekommen, zumal manche ARMs bei I/O nicht eben schnell
sind.
Das könnte allerdings was für PIC30 (dsPIC33) sein. 10MB/s aus dem Flash
direkt auf die I/O ist problemlos machbar und es gibt 28-Pinner mit
128KB Flash.
Es vermute, dass der Datenstrom absolut gleichförmig erfolgen muss, weil
sonst Bildstörungen auftreten. Was bei Controllern mit hinsichtlich des
Zeitverhaltens auf der Ebene einzelner Takte schwer durchschaubaren
Busstrukturen interessant werden kann. Egal ob programmiert oder per
DMA. Daher die Idee mit den PIC30, deren Zeitverhalten ist so einfach
wie bei AVR, die sind aber schnell genug.
Einen Flash-Sample-Player kann man auch ohne Controller mit einem
ausreichend großem EPROM/Flash-ROM, einem Taktgenerator und ein paar
kaskadierbaren Zähler-ICs "in Hardware" bauen.
Ein Controller könnte, wenn das Timing doch etwas komplexer ist, den
Ablauf "vonnt janze" steuern.
Dann wenn ich Flash nehme und Diskret, müsste ich dann noch irgendwie
V/Hsync erzeugen. Also kommen wieder Ics dazu. Also fällt das schonmal
aus.
MMHH ich grübel schon noch wie ich das am schmutzigsten lösen kann :-))
Hallo, habe auch ein paar mal Videobilder direkt erzeugt, bzw. Overlay.
Wieviel Daten brauchst du konkret, 128kbit oder kbyte. Weiters, musst du
nicht nur die Daten seriell, 1 Pin (SPI) ausgeben ?
Mit PIC30 hatte ich eher die Familie gemeint als konkrete Modelle. Es
ist m.E. ein Fehler von Microchip, für eng verwandte Modelle völlig
verschiedene Namen zu verwenden. Eine bekannter Marke wie "AVR" kann
nicht entstehen, wenn sich das ohne Not in dsPIC30, PIC24 und dsPIC33
aufdröselt.
@ Andreas Kaiser
Ich hatte schon einiges mit den PICs zu tun, diese Namensgebung macht
schon sinn, daran kann man die "Generation" dieser Prozessoren erkennen.
Also die dsPIC30-er reihe ist die erste, schlechterer Energieverbrauch,
schlechtere Register / Möglichkeiten der implementierten Pheriperie.
Betrieb mit 5V möglich
Die PIC24-er optimierter vom Stromverbrauch, bessere Pheriperie, 3,3V,
dickeres Errata, in dem nicht alle Bugs drin stehen (die sind halt
neu)...
Beispiel: PIC24 hat eine Auto-Baud Erkennung für UART in der HW
implementiert, beim dsPIC30 muss das umständlich (mit Timer) zu Fuß
programmiert werden (dazu gibts von Microchip Appnotes).
chris wrote:
> Pic 24 hat wenig mit pic30 gemeinsam
Die Prozessorarchitektur und alles was irgendwie mit
Entwicklungssystemen zu tun hat ist identisch. Und wird auch von
Microchip selbst unter "PIC30" einsortiert.
Und der Unterschied zwischen diversen PIC24-Typen und den dsPIC33
besteht m.W. nur im DSP-Support von ansonsten praktisch identischen
Typen, so dass hier sicherlich die Chips in der Fertigung identisch sind
und der effektive Unterschied im Marketing und einer Fuse besteht.
Ja, pic3x sind DSP controller, pic24 haben nicht die zweite ALU sowie
dsp befehle, sprich weniger silizium, deshalb billiger.
Auch ein Grund ist der fehlende PLL sowie die Takteinheit vom 18F
inklusive das Flash. Diese Taktreduzierung macht den 3x Kern erst als uC
interessant, da sonst der Stromverbrauch zu hoch ist, im Vergleich zu
konkorrenten und spart silizium.
@ Andreas Kaiser:
Nein das ist nicht so. Selbst der Herstellungsprozess der PIC24 ist ganz
anders. Es ist zwar der gleiche Compiller/Entwicklungsumgebung, aber die
CPUs der neueren Generation haben auch mehr Befehle.
Also man könnte es mit einem Pentium 2 und Pentium 4 vergleichen,
Pentium 4 arbeitet schneller und stromsparender mit gleicher
Taktfrequenz wie ein Pentium 2.
Ein Code für einen dsPIC30 geschrieben läuft unter Umständen nicht im
PIC24, auch nicht wenn er in C geschrieben wurde. (Was auch stark von
den Pheriperie-Registern abhängt)