Hallo Leute,
Wollte mal mit den PIC32 Controllern anfangen.
wenn ich das richtig verstanden habe, muss ich um in C Programmieren zu
können den C32 Compiler downloaden. Gibt es da auch noch alternativen,
weil ich mich nicht registrieren will. Wenn die Registrierung
unbedenklich ist, dann regestriere ich mich und kann dann einfach die
"60 Tage full, danach ohne Optimierung"-Version benutzen, kostenlos?
Weitere Frage: was wäre ein billiger Programmieradapter. Habe mir den
mal angeschaut:
http://olimex.com/dev/pic-icd2-pocket.html
Ist der für PIC32s geeignet?
wenn nein welcher Programmmer ist gut und günstig?
Danke, M.H.
Das musst du für mich genauer definieren. Kann man den in MPLAB
integrieren?
Wenn nein, wie kann ich damit programmieren und mit welchem Programmer?
Nochmal: Wenn die C32 Version i.O. ist dann nehm ich die. Hab aber keine
Lust dass ich da noch was zahlen muss
wenn du MPLABX runterlädst, kannst du angeben, welche compiler du
mithaben willst (die werden dann gleich in MPLAB integriert und alles
kostenlos). dabei musst du nix angeben/registrieren. MPLABX läuft auch
auf Linux und Apfel.
ich würde dir zu einem PICKit3 (langsam für 32bitter) raten oder besser
(wegen geschwingikeit) zu einem ICD3 (bitte beim PicKit3 unterstützte
PICs selber überprüfen). Mit diesen kannst du brennen und debuggen.
http://www.microchip.com/ICD3http://www.microchip.com/PICKit3http://www.microchip.com/MPLABX
ps: die meisten arbeiten mit den kostenlosen C-compiler von Microchip,
von daher, empfehle ich dir auch zu diesen weil du dann schneller hilfe
bekommst.
Welcher ist der Kostenlose?? Habe jetzt mal mplabx mit c32 comp.
runtergeladen. Habe festgestell, dass der jetzt auch im normalen mplab
drin ist. hab einfach mal die eval vesion ausgewählt (richtig so?) rein
theoretisch kann man doch über dieseSeite die Registrierung umgehen,
oder?
M. H. schrieb:> Wollte mal mit den PIC32 Controllern anfangen.>> wenn ich das richtig verstanden habe, muss ich um in C Programmieren zu> können den C32 Compiler downloaden. Gibt es da auch noch alternativen,> weil ich mich nicht registrieren will. Wenn die Registrierung> unbedenklich ist, dann regestriere ich mich und kann dann einfach die> "60 Tage full, danach ohne Optimierung"-Version benutzen, kostenlos?
Die Registrierung ist unbedenklich. Nimm den C32, dann passt alles
zusammen.
> Weitere Frage: was wäre ein billiger Programmieradapter. Habe mir den> mal angeschaut:> http://olimex.com/dev/pic-icd2-pocket.html> Ist der für PIC32s geeignet?
nein. Du brauchst entweder ein PICKit3 oder einen ICD3 oder einen 1:1
Clone von einem von beiden.
fchk
M. H. schrieb:> Welcher ist der Kostenlose?? Habe jetzt mal mplabx mit c32 comp.> runtergeladen. Habe festgestell, dass der jetzt auch im normalen mplab> drin ist.
Normal ist beim MPLAB8 kein Compiler dabei, sondern nur Voreinstellungen
dafür.
fchk
Hi,
Registrierung ist absolut unbedenklich.
ICh bekomme darüber nicht einmal eine Mail pro Monat, IAR oder Xilinx
sind da deutlich schlimmer. Und eine WEitergabe gar erfolgt nicht.
Zumindest erhalte ich über für diese Zwecke genutzte MailAddy noch keine
Mails von "dritten" - Und die benutze ich schon seit Jahren.
Und jemand der dennoch Bedenken hat kann sich ja problemlos eine "Yahoo"
oder "Web.de" Adresse erstellen. Ist in 5 Minuten gemacht.
ICh halte es sowieso für Sinnvoll mit mehreren EmailAdressen zu
arbeiten.
Seit JAhren mache ich es so, das ich eine Email_Addy fürs "geschäft"
habe, eine für "Privat", eine nur für "Foren", eine für solche Downloads
usw...
Wenn dann mal eine Addy "verspammt" wird, (Wie vor ein paar JAhren durch
einen Trojaner auf dem PC einer Freundin) dann ist der Schaden sehr
begrenzt und man braucht nur einem kleinen Kreis ggf. die neue Mail
mitzuteilen.
Aber BTT:
Als Programmierdevice würde ich AUF JEDEN FALL zu einem Originalgerät
von MC raten. Maximal einen 100% Clone könnte man auch noch akzeptieren.
Der ICD2 Clone KÖNNTE tatsächlich zwar ein 100% Clone sein, da die
benötigten Informationen ja öffentlich sind, aber gerade ICD2 würde ich
heute nich tmehr zum Einstieg nehmen, INSBESONDERE nicht für die PIC32.
Es lassen sich zwar EINIGE PIC32 damit programmieren, aber leider längst
nicht mehr alle. Und die Liste der nichtmehr unterstützten PICs wird
immer größer (Das liegt am Spannungsbereich, das ICD2 kommt mit der
Spannung nicht weit genug runter als das die neuen PIC die für kleine
Spannungen konzipiert sind das problemlos vertragen)
Wie schon geschrieben kommen für den Einsteiger zwei Programmiergeräte
in Frage. Das PicKit3 oder aber der ICD3.
Von den Grundfunktionen sind die beide identisch, aber der ICD3 bietet
beim Debuggen etwas mehr an Funktionalität und ist bei einigen µC
während des Programmiervorgangs deutlich schneller. Aber er ist auch
einiges teurer.
Welcher Programmer nun für dich der bessere ist, das musst du selbst
entscheiden. Soll es nur ein reinschnuppern sein und du willst später
auch nur ab- und an etwas mit den µC machen -ODer du weist gar überhaupt
nicht ob du wirklich mit den PIC32 weiter machst- dann würde ich mir
ohne Frage das PK3 holen. Kostet um 30Euro, kann alle aktuellen
Microchip µC, egal ob 8, 16 oder 32Bit und kann auch debuggen. Für den
Einstieg oder die gelegentliche Anwendung ist es auch nicht tragisch
wenn der Schreibvorgang auf dem µC statt 5 sek. mal 30 oder gar 45
Sekunden braucht.
Damit hast du lange ausgesorgt und bis auf die paar Sekunden beim
Flashen so gut wie keine NAchteile.
Steht bei dir schon fest das du RICHTIG INTENSIV mit den PIC32 arbeiten
willst, dann bliebe schon die Frage ob es nicht direkt der ICD3 sein
soll, weil wenn ich evtl. tagein Tagaus mehrmals die Stunde flashe, dann
können die Sekunden schon was ausmachen und man wird sich schon nach
einem "schnelleren" Programmer umsehen. Wobei der PReis mit fast 200
Euro schon happig ist.
ODer man sagt sich, selbst wenn ich doppelt kaufe, erst PK3, dann ICD3
später einmal, das ist auch nicht verkehrt da ich so immer
Ausfallreserve habe oder den billigen Programmer dann für kritische
Schaltungen wo ich mir nicht 100% sicher bin das keine für den
Programmer "gefährlichen" Pegel vorkommen können (OK, ist Ausnahmefall,
haben nur wenige, hatte ich auch erst einmal) nehmen kann um für DIE
WENIGEN Schreibvorgänge nicht den teureren ICD3 riskieren zu müssen.
In so einem Fall wäre der PK3 auch die "erste" Wahl für dne Einstieg.
http://www.microchipdirect.com/ProductSearch.aspx?Keywords=PG164130
(Achtung Versandkosten bei MC-Direkt sind HOCH, besser andere Quelle
suchen)
Olimex bietet ja auch einen PK3 NAchbau an, wenn es ein 100% Clone (Ok,
das offensichtlich abweichende Gehäuse mal ausgenommen) ist, dann KÖNNTE
man diesen auch nehmen. Das würde ich aber vorher erfragen.
Und auf JEDEN JEDEN JEDEN Fall lasse die Finger von Programmiergeräten
die keine Clone der offiziellen Geräte sind und eigene Software
brauchen.
Die Zeit in der solche Geräte als günstige Alternative eine Lösung waren
ist vorbei, manchmal sind die heute teurer als die Originalen, bieten
kein Debugging und sind im HAndling VIEL Umständlicher da die ja nicht
aus MPLAB heraus funktionieren! Zudem bieten die KEINE Garantie auf
zukünftigen Support.
Ach ja:
M. H. schrieb:> Wenn die Registrierung> unbedenklich ist, dann regestriere ich mich und kann dann einfach die> "60 Tage full, danach ohne Optimierung"-Version benutzen, kostenlos?
JA- Die nutzung ist kostenlos AUCH DAUERHAFT ... 60Tage funktioniert die
voll, dann werden einige Optimierungen zurückgeschaltet -(der fertige
Code wird evtl. Größer)- aber es funktioniert einwandfrei.
Eine Rolle spielen die Optimierungen für dne Hobbyisten so gut wie
überhaupt nicht! Wenn man wirklich ein Programm hat das so umfangreich
ist das der Speicher im verwendeten µC Knapp wird (Als Einsteiger wird
es sehr lange dauern bis du diesen Punkt erreichst, selbst bei den
Kleinsten 32Bittern), dann nimmt man für 20ct. mehr halt den
"nächstgrößeren" im selben Gehäuse.
Interessant ist die MAximale Optimierung nur für Komerzielle Anwender
die HOHE STÜCKZAHLEN produzieren. Wenn man durch die bessere Optimierung
es sachafft sein Programm in den µC mit einer nummer Kleineren Speicher
zu Quetschen, dann lassen sich (bei großen Stückzahlen) sicher 5-10ct.
pro Controller sparen. Verbaut man aber 10k µC am Tag, sind das schon
250-500 Euro/TAG, 50 -100k Euro pro Jahr. Da spielt es eine Rolle.
Für den Bastler mit 10µC/Monat oder den Betrieb mit einer Fertigung von
Speziallösungen und einem "Verbrauch" von 500µC/Monat, da spielen die
20ct keine Rolle.
Nicht wenige Bastler nehmen ja sowieso die Varianten die in dem
jeweiligen Gehäuse am meisten an Leistung bieten.
ICh würde dir evtl. aber zum DIREKTEN Installieren der LITE Version
raten.
Diese läuft von Anfang an mit geringeren Optimierungen. Bietet also ERST
einmal weniger Leistung.
Allerdings ersparst du dir nach 60Tagen dann das Wegklicken des
Hinweisfensters das die 60Tage rum sind und die Optimierungen
abgeschaltet sind. Das kommt dann öfter...
Oder wenn du auch in PC Programmierung einigermaßen Firm bist MACHST du
dir selbst eine UNBESCHRÄNKTE Version mit Maximaler Optimierung. (IST
AUCH ZULÄSSSIG!)
Die Compiler für 16 & 32 Bit basieren auf GCC und daher liegen die
Quellcodes OFFEN, kannst du dir bei Microchip runterladen. Da einfach
die entsprechenden Stellen abändern und Compilieren. HAbe dazu schon
Anleitungen (was, wo) im Netz gesehen.
Ist wie gesagt in diesem Fall VÖLLIG LEGAL ;-)
Gruß
Carsten
OK. Dann werde ich mich da mal regisrieren und die Lite installieren.
Wie sage ich MPAB v8.80, dass ich diesen Compiler verwenden möchte bzw.
Wo er ist.
M. H. schrieb:> OK. Dann werde ich mich da mal regisrieren und die Lite installieren.> Wie sage ich MPAB v8.80, dass ich diesen Compiler verwenden möchte bzw.> Wo er ist.
Project -> Select Language Toolsuite
Project -> Set Language Tools Locations
(sollte nach der Installation eigentlich passend eingestellt sein)
Da ich noch zur schule gehe, weiss ich nicht was ich bei COMPANY
eingeben muss. Ebenfalls weiss ich nicht wofür die Adresse gut ist. Muss
dort meine private rein oder die Company Adresse
M. H. schrieb:> Da ich noch zur schule gehe, weiss ich nicht was ich bei COMPANY> eingeben muss. Ebenfalls weiss ich nicht wofür die Adresse gut ist. Muss> dort meine private rein oder die Company Adresse
Völlig Egal,
Kannst auch sonstetwas reinschreiben...
ICh habe meine Registrierungsdaten auch erst "real" gemacht als ich den
Hobbybereich verlassen habe...
Vorher war ich auch "Carsten Anonym" aus der "SagichnichtStraße"
Wobei die Realdaten aber auch nicht Schaden.
Wenn du es mit deinen Realdaten machen möchtest, dann schreibe bei
Company ruhig: "Schule". Kann bei Anfragen an MC sogar recht hilfreich
sein, die bisherige Erfahrung zeigt das die sowohl Schülern und
insbesondere natürlich Studenten "sehr Hilfsbereit" gegenüber
eingestellt sind.
Gruß
Carsten
ich kann Carsten in allem nur beipflichten. ich habe bei denen seit
vielen jahren schon einen account mit richigen daten (ich bekomme nie
spam oder so). früher war ich auch student und habe vielleicht deshalb
immer guten hardware-support (samples) bekommen (ich hab's nie
missbraucht). und vielleicht liegt es auch heute daran, dass wenn ich
mal etwas brauche (kommt ca. 1x/jahr vor, weil ich es über distributoren
nicht bekomme), dass ich sofort(!) beliefert werde auch wenn ich da
"only for private hobby" als verwendungszweck hinschreibe. unterdessen
habe ich auch schon mit meinem privaten account für ein projekt meiner
firma gesamplet, weil ich keine lust hatte einen firmen-account zu
errichten... die folge ist nun, dass wir ein produkt von Microchip
anstelle vom hersteller XY zukünftig verbauen (20k stück pro jahr). tja,
eine hand wäscht die andere ;-)
> die folge ist nun, dass wir ein produkt von Microchip> anstelle vom hersteller XY zukünftig verbauen
... zumal es bei Microchip seltener Lieferprobleme gibt als anderswo
Michael G. schrieb:> Wegen Programmieradapter: Sehe ich das richtig das sich die PIC32 nicht> per UART flashen lassen oder bin ich blind auf den Augen?
Nein, Du bist nicht blind. Der Standardweg heißt ICSP.
fchk
Danke für die Bestätigung, ich konnte es nicht glauben da ich davon
ausgegangen bin das Bootloader unter den 32-Bittern selbstverständlich
sind.
Hintergrund: Es geht um ein Carrierboard für ein ARM9 Modul mit Linux.
So ein Board setzen wir schon mit einem CM3 µC ein der über seinen UART
mit dem Linux-Modul kommuniziert und auch darüber programmiert wird.
Ansonsten würde es in beiden Fällen (und vielen anderen) auch ein
8-Bitter tun.
Ich hatte jetzt mit dem PIC32MX120F-irgendwas geliebäugelt weil der
klein ist und Sensortasten direkt unterstützt. Nun ja, ich sehe mir noch
die EFM32 bezügl. Touch an, sonst wird es ein anderer QFNxx Cortex mit
einem angeflanschten QT1070.
Carsten Sch. schrieb:> Eine Rolle spielen die Optimierungen für dne Hobbyisten so gut wie> überhaupt nicht! Wenn man wirklich ein Programm hat das so umfangreich> ist das der Speicher im verwendeten µC Knapp wird (Als Einsteiger wird> es sehr lange dauern bis du diesen Punkt erreichst, selbst bei den> Kleinsten 32Bittern), dann nimmt man für 20ct. mehr halt den> "nächstgrößeren" im selben Gehäuse.
Ich habe da weniger Bedenken wegen der Codegröße (-O2 kann durchaus
größer sein) sondern mehr wegen der Ausführungsgeschwindigkeit. Ich
kenne diesbezüglich aber nur den arm-gcc. Die Optimierungsstufen sind ja
plattform- und konfigurationsabhängig. Bei den GLCD Routinen meines
Radioweckers (240x64 Px) dauert der Bildaufbau bei -O1 rund 20% länger
(gegenüber -O2). Der Code ist aber etwas kleiner. Aber auch wenn die
Unterschiede nur gering sind, der Anwender wird dadurch zunächst einmal
verunsichert. Zumal es für andere Architekturen kostenlose Compiler ohne
Einschränkungen gibt.
Ich denke Microchip sollte besser darüber aufklären was es mit den
Einschränkungen konkret auf sich hat. Es ist doch schon seltsam das sie
sich einerseits Mühe geben größtmöglichen Support zu bieten auf der
anderen Seite aber die Leute abschrecken.
Ich habe noch ein paar Fragen:
Habe mir jetzt mal ein paar PIC32er angeschaut und stelle fest, dass
viele mehrere Debug/Programmier Channel besitzen. Ist es egal an welchen
ich meinen programmer hänge? Wenn nein: Wovon hängt es ab. (Hab
irgendwie nur so Sammel-datenblätter in denen alles nur so halb erklärt
ist...)
Danke.
M. H. schrieb:> Habe mir jetzt mal ein paar PIC32er angeschaut und stelle fest, dass> viele mehrere Debug/Programmier Channel besitzen. Ist es egal an welchen> ich meinen programmer hänge?
Ja. Damit hast Du Ausweichmöglichkeiten, wenn Du einen bestimmten Pin
für etwas anderes brauchen solltest. Bei einigen älteren PICs hast Du
ein bestimmtes Pin-Paar (PGC/PGD) zum Programmieren, aber noch ein oder
zwei Alternativen zum Debuggen. Das steht dann aber im Datenblatt drin.
> Wenn nein: Wovon hängt es ab. (Hab> irgendwie nur so Sammel-datenblätter in denen alles nur so halb erklärt> ist...)
Dann muss ich Dir Blindheit, Faulheit, Unfähigkeit oder eine Kombination
daraus unterstellen!
Geh auf die Produktseite Deines Controllers:
http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en545660
Lies das produktspezifische Manual "PIC32MX5XX/6XX/7XX Family Data
Sheet"
http://ww1.microchip.com/downloads/en/DeviceDoc/61156G.pdf
Lies die Errata dazu "PIC32MX575/675/695/775/795 Family Errata and
Datasheet Clarification"
http://ww1.microchip.com/downloads/en/DeviceDoc/80480H.pdf
Lies das generische "PIC32 Family Reference Manual". Das besteht aus
diversen Teilen. Für diese Frage ist Teil 33 "Programming and
Diagnostics" zuständig:
http://ww1.microchip.com/downloads/en/DeviceDoc/61129E.pdf
Da steht dann auch z.B.
"33.3.1.1.1 ICSP Interface
ICSP uses two pins as the core of its interface. The programming data
line (PGD) functions as both an input and an output, allowing
programming data to be read in and device information to be read out on
command. The programming clock line (PGC) is used to clock in data and
control the overall process.
Most PIC32MX family of devices have more than one pair of PGC and PGD
pins; these are multiplexed with other I/O or peripheral functions.
Individual ICSP pin pairs are indicated by number (e.g., PGC1/PGD1,
etc.), and are generically referred to as ‘PGCx’ and ‘PGDx’. The
multiple PGCx/PGDx pairs provide additional flexibility in system design
by allowing users to incorporate ICSP on the pair of pins that is least
constrained by the circuit design. All PGCx and PGDx pins are
functionally tied together and behave identically, and any one pair can
be used for successful device programming. The only limitation is that
both pins from the same pair must be used"
Wie gesagt - es steht alles da. Muss man nur lesen können und wollen.
PS: Zum Debuggen musst Du per #pragma angeben, auf welchem Port Du
debuggen möchtest, damit auf dem Port die anderen Pin-Funktionen
abgeschaltet bleiben. Auch das steht in diesem Text.
Den JTAG-Port würde ich übrigens abschalten. Brauchst Du nicht.
fchk
Ok. Danke.
1. In den Datenblättern heißen die Pins aber PGECx/PGEDx.
2. sorry für die Frage aber hab keinen Plan wo ich nachschauen kann wie
ich das mit #pragma machen soll. weiss nur, dass ich um zu debuggen
#pragma config DEBUG=ON schreiben muss.....
M. H. schrieb:> 1. In den Datenblättern heißen die Pins aber PGECx/PGEDx.
Ja. Wenn man weiterliest, kommt dann:
"33.3.1.2 ENHANCED IN-CIRCUIT SERIAL PROGRAMMING (EICSP)
The Enhanced In-Circuit Serial Programming (EICSP) protocol is an
extension of the original ICSP. It uses the same physical interface as
the original, but changes the location and execution of programming
control to a software application written to the PIC32MX family of
devices. Use of Enhanced ICSP results in a significant decrease in
overall programming time."
Daher das zusätzliche 'E'.
> 2. sorry für die Frage aber hab keinen Plan wo ich nachschauen kann wie> ich das mit #pragma machen soll. weiss nur, dass ich um zu debuggen> #pragma config DEBUG=ON schreiben muss.....
Dort, wo Du den C32 Compiler installiert hast, gibts unter ./doc eine
Datei "hlpPIC32MXConfigSet.chm". Die schaust Du Dir mal an. Du solltest
Dir ohnehin mal alle Dateien in diesem Verzeichnis zu Gemüte führen. Das
reduziert Deinen Fragebedarf deutlich.
fchk
M. H. schrieb:> Ok. Hab rausgefunden, dass das ICESEL Bit angibt, welche Pins benutzt> werden, richtig?>>> wie setzte ich sie mit #pragma?
Du hast in dem Verzeichnis ein "MPLAB C32 User Guide.pdf". Das darfst Du
auch lesen. Suche mal nach "4.8.1 #pragma config" und lies den folgenden
Abschnitt. Es steht alles da.
Kann es sein, dass Lesen nicht Deine Stärke ist?
fchk