Als ersten Mikrocontroller habe ich vor vielen Jahren den PIC16F84 kennen und hassen gelernt. Dann habe ich die Mega AVRs verwendet und sie waren einfach toll. Nun kam es aber, das ich mal für ein Projekt 4 16 Bit PWM Kanäle brauchte und geschaut habe, ob es denn nicht einen Controller gibt, der das in Hardware hat. Bei Reichelt habe ich dann den PIC24FJ64GA002 gefunden, für 3,35€. (Die Version mit weniger Flash gibts schon für 2,40€.) Zuerst war ich sehr skeptisch aufgrund der schlechten Erfahrungen mit PICs in der Vergangenheit. Aber der Controller ist einfach toll! Also es ist ein 16 Bit Controller, der auch mit dem internen RC-Oszillator mit den vollen 32MHz betrieben werden kann! Allerdings brauchen die Befehle mindestens 2 Takte, so dass effektiv etwas weniger als 16MIPS rauskommen. Der Controller ist im bastelfreundlichen DIL 28 Gehäuse erhältlich. Er hat Interruptprioritäten! Der AD-Wandler kann in einen (kleinen) Puffer sampeln. (Mehrere auswählbare Kanäle oder nur ein Kanal mehrmals.) Er kann Interrupts auslösen wenn sich der Zustand eines Pins ändert und hat 5 16 Bit Timer, die zu 2 32 Bit Timer kombiniert werden können. Aber das beste Feature dieses Controllers ist eine INTERNE MATRIX FÜR DIE PERIPHERIEFUNKTIONEN!!! D.h. intern kann z.B. die Matrix per Software so geschaltet werden, das die PWM Ausgabe eines Kanals gleichzeitig an 3 Pins ausgegeben wird. Oder man kann sich z.B. die UART und SPI Signale an die Pins legen, die vom Layout am besten passen!!! Das ist echt genial, vor allem für Bastler, die selbstgemachte einseitige Platinen bevorzugen.
:
Verschoben durch User
Wenn dir die PIC24F schon gefallen, dann schau dir mal die PIC24H oder die dsPIC33 an. Das sind im Prinzip die gleichen Controller nur mit 40MIPS und (bei den 33ern) mit einem DSP Core).
... schrieb: > Zuerst war ich sehr skeptisch aufgrund der schlechten Erfahrungen mit > PICs in der Vergangenheit. Aber der Controller ist einfach toll! Ein bischen störend ist die recht lange Bugliste vieler Modelle. > Das ist echt genial Ich ahne den Grund. Die älteren dieser Baureihe, die dsPIC30, haben eine teilweise derart bescheuerte Mehrfachbelegung der Pins (z.B. CAN und Programmierinterface auf den gleichen Pins), dass Microchip sich von den Kunden wohl ziemlich was anhören musste und in der nächsten Runde die Flucht nach vorne angetreten ist.
Ausgangsmatrix klingt seeehr verlockend! Ist die wirklich komplett frei belegbar (ausser den Versorgungs- und Taktleitungen) oder gibt es diverse Einschränkungen? Gruß, Jens
Viele Pins der spezialisierten Peripheriemodule wie Timer,SPI,UART,... laufen über die Matrix, aber nicht alle. Beispielsweise nichts vom ADC und auch nicht die GPIO.
Gut, die GPIO selbst nicht, also z.B. PORTA.6 bleibt meinetwegen Pin 6 aber was ich festlegen kann ist dass SPI.clk auf PORTB.3 geht, oder dass TX auf PORTC.4 kommt statt auf irgendwas festgelegtes? Stimmt das so? Gruß, Jens
Jens Plappert schrieb:
> Stimmt das so?
Ja. Ausser I2C, möglicherweise aufgrund spezieller Anforderungen an die
Interface-Hardware.
Moin, und der kostenlos verfügbare Compiler ist welcher? Ok, darf auch was kosten, aber bitte im Rahmen. Das Gewürge mit PIC Assembler ist das LETZTE, einen µC ohne vernünftigen Compiler fasse ich jedenfalls nicht mehr an. -- SJ
Mikrochip bietet den C30 für privaten Einsatz kostenlos. Es fehlt gegenüber der Vollversion ein bischen Optimierung und ist seitens Microchip eine Gratwanderung, denn technisch ist das der bekannte GCC plus ein herstellerspezifischer Optimierungslauf. Ist verwendbar. Programmierung und Debugging läuft über die gleiche Technik und Hardware wie bei den 8bit PICs.
Ein deutlich besser ausgestatteter Lieferant für diese Baureihe ist beispielsweise TME (tme.eu).
Transistorfreak schrieb:
> Mein neuer Lieblingstransistor ist der 2N3055...
Ja, feuer- und blitzsicher ;-)
Transistorfreak schrieb:
> Mein neuer Lieblingstransistor ist der 2N3055...
Was ist daran denn neu?
Den hatte ich damals schon zu DDR-Zeiten eingesetzt (von Tungsram).
Peter
Die GPIO über eine Matrix zu führen macht nicht viel Sinn, weil die ja eh alle gleich sind. Bei den AD Eingängen ist es ähnlich, man hat ja 12 gleichwertige zur Verfügung. Ich hab noch nicht nachgeschaut, ob Microchip den Sourcecode für ihre Erweiterungen zum GCC alle veröffentlicht haben. Wenn nicht, dann wäre das nach meiner Meinung eine Verletzung der GPL. Ansonsten optimiert die eingeschränkte Version ja trotzdem, wie der normale GCC ja auch. Apropos Bugs: da gibt es einen Bug in der PWM Hardware. Man darf den Wert 1 nicht verwenden, sonst liegt für einen Timer-Zyklus der Ausgang auf high. Ich hab da mal ein Java-Applet geschrieben, das das beachtet und den Wert 1 nicht mit in die PWM Tabelle schreibt, sondern auf oder abrundet. ;-) http://aaabbb.de/JNumberTableMaker/pwm_sine_function_table_maker.html
... schrieb: > Ich hab noch nicht nachgeschaut, ob Microchip den Sourcecode für ihre > Erweiterungen zum GCC alle veröffentlicht haben. Wenn nicht, dann wäre > das nach meiner Meinung eine Verletzung der GPL. Ansonsten optimiert die > eingeschränkte Version ja trotzdem, wie der normale GCC ja auch. Dieser Optimizer ist ein spezieller Compiler-Pass, der als separates Programm abläuft. Damit unterliegt er nicht der GPL. Wie das mit den Steuerprogram selbst aussieht (dem was sonst üblicherweise "gcc" heisst), das die Passes, den Assembler, Link etc aufruf, das weiss ich nicht. Jedoch muss da was drin enthalten sein, was dies einbindet und die Lizenz überprüft. Und abhängig davon die Compilerflags durchschaltet und den Optimizer-Pass einbindet, wobei meiner Erinnerung nach ohne Vollversion auch ein paar normale GCC Optimierungen dran glauben müssen. Die Lizenzprüfung selbst erfolgt wieder mit einem externen Programm und ist nicht ins GCC direkt eingebunden. Auch hier man damit wohl GPL-sicher, aber möglicherweise nicht ganz hacking-sicher.
... schrieb: > Apropos Bugs: da gibt es einen Bug in der PWM Hardware. Das ist leider nicht der einzigste. Besondern dumm sind Fehler im Datenblatt wie z.B. beim ADC Clock Prescaler: Dieser ist laut Datenblatt 8bit groß, in der Praxis aber leider nur 6bit (zumindest bei den dsPICs, bei den 24F habe ich das noch nicht nachgeprüft). Hat mit etliche Stunden gekostet das rauszufinden.
>> Mein neuer Lieblingstransistor ist der 2N3055...
Hat der auch eine Ausgangsmatrix fuer Emitter,Basis und Kollektor ?
Duck und Wech
Helmi
>Hat der auch eine Ausgangsmatrix fuer Emitter,Basis und Kollektor ?
durch etwas Überstrom kannst Du die zumindest intern miteinander
verbinden ;-)
So nebenbei bemerkt: ist die korrekte Bezeichnung für diese Matrix nicht Kreuzschiene?
Mein neuer Lieblingswiderstand ist der 450 OHM, weil der so Farbringe hat. ...und wenn man genug Strom draufgibt, dann ändern die sogar die Farbe und der Widerstand verschwindet im Nirvana der Matrix! Iss datt nich geil, ey?!?!? Enter The Matrix.
Ausgangsmatrix...warum haben eigentlich die AVR sowas nicht? Es müsste ja keine Alles-Auf-Alles-Matrix sein, aber beispielsweise gewisse Peripherie auf beliebige Pins mappen wäre schon nützlich...
Der Druck durch die Kunden muss da sein. Atmel hatte die Mehrfachbelegung bisher wohl einigermassen brauchbar gestaltet. Microchip nicht.
Na dann schau Dir doch mal das Pinout vom XMega an. Das ist dermaßen genial geordnet, daß es keine Matrix braucht. Jeder Pin ist auch in Hardware invetierbar, was besonders bei UART und PWM Bauteile spart oder ganz neue Moglichkeiten, wie Differentialmodulation eröffnet. Es gibt separate Register für Pinsetzen, Pinlöschen und Pintoggeln. Ganz zu schweigen von der restlichen Peripherie. Und die Bugliste ist inzwischen auch recht kurz. Mein Lieblingscontroller ist der XMega128-A1.
mr.chip schrieb: > Ausgangsmatrix...warum haben eigentlich die AVR sowas nicht? Es müsste > ja keine Alles-Auf-Alles-Matrix sein, aber beispielsweise gewisse > Peripherie auf beliebige Pins mappen wäre schon nützlich... Mal geraten: - A/D-Wandler und Analogkomparator gehen wohl wegen Störsignalen nicht so einfach (und ist ja eh ein Eingang und kein Ausgang) - SPI wird für die Programmierung gebraucht und kann man nicht einfach weglegen. - Falls die o.g. Vermutung stimmt, dann kann man auch I2C nicht verlegen - Die Quarz-Anschlüsse sind wohl auch etwas spezieller und sollten nicht ewig weit geführt werden. - GPIO geht sowieso auf allen Ports. Damit bleibt nicht viel übrig. UART und die Timer-Geschichten (PWM und so). Ob sich das lohnt?
> Damit bleibt nicht viel übrig. UART und die Timer-Geschichten (PWM und > so). Ob sich das lohnt? Umso mehr! Schliesslich wird dann die Matrix nicht mehr so komplex und es reicht im Prinzip auch, wenn man nur ein paar Vertauschungsmöglichkeiten hat, um das Layout zu vereinfachen. Zudem bezweifle ich, dass ADC/Analog Comparator nicht über die Matrix geführt werden können - intern werden sie ja auch gemuxt. Das Problem bei I2C sehe ich aber nicht.
Solch eine Matrix nett, aber unnötig. Jedes Layout kann auf bestehende Pinouts angepaßt werden. ATMegas werden deshalb nicht nochmal neu designt und ob es bei den neuen Chips kommt, ist fraglich. Ich denke, beim XMega ist man schon einen Schritt vorangegangen.
>Vertauschungsmöglichkeiten hat, um das Layout zu vereinfachen.
Das spielt im profesionellen Umfeld keine so grosse Rolle. Hier werden
eher 2-Seitige oder Multilayerpaltinen eingesetzt. Und fuer
Hobby-Elektroniker die meistens 1-Seitig machen werden die das wohl
nicht machen.
Gruss Helmi
Markus Kaufmann schrieb: > - SPI wird für die Programmierung gebraucht und kann man nicht einfach > weglegen. SPI wird nicht für die Programmierung gebraucht und lässt sich verlegen. Das ist doch kein AVR. > - Falls die o.g. Vermutung stimmt, dann kann man auch I2C nicht verlegen Hatte ich schon erwähnt. > Damit bleibt nicht viel übrig. UART und die Timer-Geschichten (PWM und > so). Ob sich das lohnt? 2x SPI, jede Menge Timer-Pins, 2x UART, externe Interrupts, ... Bei dem oben betrachteten 28pin Zwerg sind das 23 Inputs und 17 Outputs, also 40 Funktionspins!
A. K. schrieb: >> - SPI wird für die Programmierung gebraucht und kann man nicht einfach >> weglegen. > > SPI wird nicht für die Programmierung gebraucht und lässt sich verlegen. > Das ist doch kein AVR. Doch es ist einer: >mr.chip schrieb: >> Ausgangsmatrix...warum haben eigentlich die AVR sowas nicht? Vor allem bei dem mega8 habe ich mir sowas schon oft gewünscht, denn wenn man den UART verwendet hat man keinen 8bit Port mehr frei. Ebenso kommen sich SPI und die OC1x Ausgänge in die Quere. Ein weiterer Vorteil ist, dass man problemlos mehr Peripherie in ein Device packen kann, als Pins vorhanden sind. Man wird nie alles davon benötigen, aber dennoch könnte man von ein paar Sachen (UART, Timern, SPI) mehr gebrauchen als vorhanden sind. Die Matrix ist auf jeden Fall eine geniale Sachen.
Nein, der Vorteil ist doch ein anderer. Für gewöhnlich sind doch genau die Peripheriefunktionen, die man für ein Projekt braucht, vom Hersteller auf den selben Pin gelegt, weil es halt mehr Peripherie als Pins gibt. Das passiert auch bei Atmel. Mit dieser Matrix ist man jetzt doch recht flexibel und kann sich quasi seinen Controller mit den benötigten Funktionen selber zusammenstellen. Also kein Fluchen mehr, weil der Hersteller die I2C und RS232 auf den selben Pin gelegt hat. Ich find es gut.
Travel Rec. schrieb:
> Solch eine Matrix nett, aber unnötig.
Wenn man die Mehrfachfunktionen so legt, dass keine Konflikte auftreten.
Bei 100pinnern nicht wirklich ein Problem, aber bei 18/28pinnern mit 40
möglichen Pinfunktionen (s.o.) nicht mehr so ganz einfach. Irgendwem
tritt man dabei immer auf die Füsse.
Es gibt dsPIC30, bei denen auf den gleichen Pins sowohl die
Programmierpins als auch die CAN-Pins liegen (und noch ein bischen
mehr). Da ein CAN-Transceiver seinen Rx-Pin nicht abschalten kann ist
das ohne irgendeine hardwaremässige Umschaltung nicht handhabbar.
Benedikt K. schrieb:
> Doch es ist einer:
Ok, in dem Kontext war evtl. einer gemeint. Aber so ganz... Der Mega128
hat ISP nicht auf den SPI-Pins sitzen, wie mancher erst nachträglich
gemerkt hat.
Andersrum betrachtet: Microchip kann einen Controller etwas grösserer Komplexität rausbringen, wo die Konkurrenz diverse spezialisierte Modelle mit unterschiedlichen Periphieriefunktionen braucht. Und wenn man sich die Pinouts dieser Microchipper mal genau ansieht, dann stellt man fest, dass in diversen Gehäusen unterschiedlicher Pinzahl offensichtlich der gleiche Chip drinnen steckt. Bei festgelegter Pinzuordnung ist das kaum sinnvoll realisierbar.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.