www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Mein neuer Lieblingsmikrocontroller


Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 Moderator
Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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).

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... 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.

Autor: Jens Plappert (Firma: FTSK) (gravewarrior)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ausgangsmatrix klingt seeehr verlockend!

Ist die wirklich komplett frei belegbar (ausser den Versorgungs- und 
Taktleitungen) oder gibt es diverse Einschränkungen?

Gruß,
Jens

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist aber unter "Offtopic" falsch untergebracht.

Autor: Jens Plappert (Firma: FTSK) (gravewarrior)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Transistorfreak (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mein neuer Lieblingstransistor ist der 2N3055...

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jens Plappert schrieb:

> Stimmt das so?

Ja. Ausser I2C, möglicherweise aufgrund spezieller Anforderungen an die 
Interface-Hardware.

Autor: Sven Johannes (svenj)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein deutlich besser ausgestatteter Lieferant für diese Baureihe ist 
beispielsweise TME (tme.eu).

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Transistorfreak schrieb:
> Mein neuer Lieblingstransistor ist der 2N3055...

Ja, feuer- und blitzsicher ;-)

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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_functi...

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... 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.

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... 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.

Autor: Helmut Lenzen (helmi1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> Mein neuer Lieblingstransistor ist der 2N3055...

Hat der auch eine Ausgangsmatrix fuer Emitter,Basis und Kollektor ?

Duck und Wech

Helmi

Autor: Jens G. (jensig)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Hat der auch eine Ausgangsmatrix fuer Emitter,Basis und Kollektor ?

durch etwas Überstrom kannst Du die zumindest intern miteinander 
verbinden ;-)

Autor: Ollz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So nebenbei bemerkt: ist die korrekte Bezeichnung für diese Matrix nicht 
Kreuzschiene?

Autor: Gunb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: mr.chip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Druck durch die Kunden muss da sein. Atmel hatte die 
Mehrfachbelegung bisher wohl einigermassen brauchbar gestaltet. 
Microchip nicht.

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Hannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
FPGA? Warum einen Controller nutzen, einzige Grund:
Package!

H.

Autor: Markus K. (markus-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: mr.chip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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.

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Helmut Lenzen (helmi1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>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

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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!

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Hartmut Kraus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jo, dsPIC ruleZ...

Die Library von Microchip ist auch nicht zu verachten...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.