dsPIC30F Tutorial
Samstag, 19. Mai 2012
 
 

PIC Mikrocontroller Forum  |  Sonstiges  |  Groupware / Projektmanagement  |  dsPIC30F Tutorial « vorheriges nächstes »
Seiten: [1] 2 Nach unten Drucken
Autor Thema: dsPIC30F Tutorial  (Gelesen 8878 mal)
 
Bernd
Globaler Moderator
Hero Member
*****
Offline Offline

Beiträge: 3815



Profil anzeigen
« am: März 22, 2005, 23:07:09 »

Hallo Leute,

Fernando arbeitet zur Zeit an einem ausführlichen Tutorial für die PIC18-Familie, die auch hier im Forum immer mehr Verbreitung findet. Parallel dazu habe ich gerade begonnen, ein ähnliches Tutorial für die dsPIC30F-Familie zu schreiben. Da der Umfang doch sehr groß ist (die relevante Dokumentation von Michrochip zum dsPIC30F umfaßt über 2000 Seiten), möchte ich auf diesem Wege fragen, ob jemand bereit ist, mich bei diesem Projekt zu unterstützen.

In dem Tutorial sollen die einzelnen Hardware-Module beschrieben und Grundlagen über die Konfiguration und die Architektur der dsPICs vermittelt werden. Eine kurze Einführung in ASM30 wäre auch wünschenswert, da die verfügbaren C-Compiler für den Privatanwender zum einen sehr kostspielig sind und zum anderen die Assembler-Programmierung mit ASM30 in meinen Augen deutlich komfortabler als bei den PIC16/18 Familien ist.

Ich suche Leute, die
  • einzelne Kaptitel verfassen
  • Korrektur lesen
  • konstruktive Kritik üben[/list:u]
    Falls jemand Interesse haben sollte, kann er sich hier im Forum oder direkt bei mir über PN melden. Sollte sich der eine oder andere Interessent finden, würde dieses Projekt im Rahmen der Groupware durchgeführt werden. Ich werde Fernando dann bitten, ein entsprechendes Projekt dort zu eröffnen. Detailierte Kenntnisse der dsPIC30F-Architektur sind nicht erforderlich, grundlegende Erfahrungen mit PICs werden aber vorausgesetzt. Wer die dsPIC30F näher kennenlernen möchte, sollte zumindest eine Beteiligung im Bereich "Korretkur"/ "Kritik" in Erwägung ziehen.

    Falls sich jemand nicht so richtig vorstellen kann, wie die Form des Tutorials in etwa ausssehen soll, bin ich gerne bereit, Entwürfe für ausgewählte Kaptitel per PN vorab zur Verfügung zu stellen.

    An dieser Stelle möchte ich mich noch einmal bei Sandynister bedanken , der bereits aktiv an der Korrektur der ersten Entwürfe beteiligt ist.


    Viele Grüße

    Bernd
Gespeichert

Steffen
Globaler Moderator
Hero Member
*****
Offline Offline

Beiträge: 1235


Profil anzeigen
« Antworten #1 am: März 23, 2005, 09:26:03 »

Hallo Bernd,

ich hatte bisher zwar noch keine Zeit, mich näher mit den dsPICs zu beschäftigen und auch kein aktuelles Projekt, wo der Einsatz in Frage kommt aber hier
Zitat von: Bernd
Wer die dsPIC30F näher kennenlernen möchte, sollte zumindest eine Beteiligung im Bereich "Korretkur"/ "Kritik" in Erwägung ziehen.


würde ich mich gern beteiligen.

MfG
Gespeichert
Sepp
Gast
« Antworten #2 am: April 10, 2005, 09:23:25 »

Zitat
Eine kurze Einführung in ASM30 wäre auch wünschenswert, da die verfügbaren C-Compiler für den Privatanwender zum einen sehr kostspielig sind und zum anderen die Assembler-Programmierung mit ASM30 in meinen Augen deutlich komfortabler als bei den PIC16/18 Familien ist.



Es gibt doch den gcc für den DSPic. Der ist in jedem Fall kostenlos.
Auf der Microchip-Seite kann man den Source herunterladen.

Eine prima Idee wäre es, wenn jemand den Code kompilieren würde und dazu eine Doku erstellt. Dann steht einer weiten Verbreitung des DSPics nichts mehr im Wege -> siehe auch Atmel AVR + GCC.
Gespeichert
Bernd
Globaler Moderator
Hero Member
*****
Offline Offline

Beiträge: 3815



Profil anzeigen
« Antworten #3 am: April 11, 2005, 16:55:07 »

Zitat
Es gibt doch den gcc für den DSPic. Der ist in jedem Fall kostenlos.
Auf der Microchip-Seite kann man den Source herunterladen.

Soweit ich weiß, ist der frei erhältliche Sourcecode nicht komplett. Mit googlen findet man auch nur ein paar Fragen, wie man vorgehen muß, um eine lauffähige Version zu erhalten. Antworten habe ich leider keine gefunden.

Im Micorchip-Forum gibt es auch einen Thread zu diesem Thema, der bisher allerdings zu keinen Ergebnissen geführt hat.


Viele Grüße

Bernd
Gespeichert

bemi
Full Member
***
Offline Offline

Beiträge: 193


Profil anzeigen WWW
« Antworten #4 am: Mai 13, 2005, 20:43:31 »

Hierran wäre ich auch interessiert:
Zitat
Wer die dsPIC30F näher kennenlernen möchte, sollte zumindest eine Beteiligung im Bereich "Korretkur"/ "Kritik" in Erwägung ziehen.


BeMi
Gespeichert

Projektseite: Amadeus-USB
Hälge
Gast
« Antworten #5 am: August 11, 2005, 16:35:23 »

Hi,
ist das Tutorial wegen zu viel Arbeit auf Eis gelegt? Ich befasse mich nun gut ein halbes Jahr mit dem dsPIC (5011) und komme recht gut damit klar - bin eigentlich von den Möglichkeiten der er mir bietet recht angetan. Bis jetzt gibt es nur eine Kleinigkeit die mich stört, aber das könnte auch am Silicon liegen.

Was mich aber nun vielmehr interessiert: hat jemand schon den puren gcc für den dsPIC zum Laufen gebracht. Ich habe keine Lust immer das Datum für den C30 zurückzusetzen.

Hälge
Gespeichert
H

Offline Offline

Beiträge: 45


Profil anzeigen
« Antworten #6 am: August 11, 2005, 19:53:09 »

Okay, anscheinend hat hier noch keiner mit dem gcc einen Build erzeugt.

Beschäftigt sich denn überhaupt jemand hier mit dem dsPIC?

Hälge
Gespeichert
Bernd
Globaler Moderator
Hero Member
*****
Offline Offline

Beiträge: 3815



Profil anzeigen
« Antworten #7 am: August 11, 2005, 20:43:56 »

Zitat
Okay, anscheinend hat hier noch keiner mit dem gcc einen Build erzeugt.

Ich kann nur eine Übersicht von mir bekannten Links geben. Für Linux soll es bereits (eingeschränkt) lauffähige Versionen geben.

http://forum.microchip.com/tm.asp?m=85994
http://forum.microchip.com/tm.asp?m=92418
http://forum.microchip.com/tm.asp?m=94243
http://forum.microchip.com/tm.asp?m=85994

Für Windows gibt es eine Kurzanleitung, die ich allerdings auch nicht ausprobiert habe. Sandynister wollte es mal versuchen, ich weiß aber nicht, ob er es geschafft hat.

http://www.rpc-engineering.de/bin/view/Knowhow/DsPicGcc

Zitat
Beschäftigt sich denn überhaupt jemand hier mit dem dsPIC?

Ja, hauptsächlich verwende ich dabei den Hi-Tech dsPICC Compiler. Das Programmiergerät von bemi, einem Nutzer dieses Forums, unterstützt auch dsPICs.

Zitat
ist das Tutorial wegen zu viel Arbeit auf Eis gelegt?

Nicht unbedingt auf Eis gelegt, aber auf Sparflamme. Das Interesse ist nicht sonderlich hoch und im Moment fehlt mir einfach auch die Zeit dafür.


Viele Grüße

Bernd
Gespeichert

H

Offline Offline

Beiträge: 45


Profil anzeigen
« Antworten #8 am: August 12, 2005, 10:47:26 »

Danke Bernd.

Die Kurzanleitung für die Win-Installation werde ich mal versuchen wenn ich mal wieder vom Datumumstellen genervt bin. Hier Zuhause ist das ja nicht wirklich ein Problem, aber in der Firma ist das schon widerlich, wenn die erzeugten Dateien nicht das korrekte Datum tragen. Ich hatte es auch mal mit Austragen mit regedit hinbekommen, aber beim letzten mal klappte es nicht mehr.
Was das Programmiergerät betrifft nutzte ich den ICD2 (an beiden Orten).

Ich hatte gesehen, dass der HI-Tech mehr kostet als der C30. Hat der einen lästigen Dongle, wie z.B. die Compiler von ImageCraft? Lässt der sich in eine IDE eigener Wahl einbinden und unterstützt er den ICD2? Zwar ist das MPLAB kostenlos, aber ich mag damit nicht arbeiten. So habe ich z.Z. immer meine Haus und Hof IDE (nutze ich auch für M32C und AVR ) und compile und flashe mit dem MPLAB. Man gewöhnt sich ja fast an alles.

Hälge
Gespeichert
Bernd
Globaler Moderator
Hero Member
*****
Offline Offline

Beiträge: 3815



Profil anzeigen
« Antworten #9 am: August 12, 2005, 17:59:12 »

Zitat
Was das Programmiergerät betrifft nutzte ich den ICD2 (an beiden Orten).

Hatte ich auch nur im Zusammenhang damit erwähnt, ob sich hier jemand mit dsPICs beschäftigt :yawinkle: .

Zitat
Hat der einen lästigen Dongle, wie z.B. die Compiler von ImageCraft?

Nein.

Zitat
Lässt der sich in eine IDE eigener Wahl einbinden

Der dsPICC ist zur Zeit nur ein Komandozeilen Compiler (eine IDE gehört also nicht zum Lieferumfang). Der dsPICC "Command-line Driver" ist sehr flexibel und die Einbindung in eine IDE sollte in den meisten Fällen relativ problemlos möglich sein. Das selbe sollte aber auch für den C30 gelten, d.h. wenn Du Probleme hast, diesen in Deine "Haus und Hof IDE" einzubinden, wird sich mit dem dsPICC vermutlich nicht viel daran ändern. In Zukunft werden die HT-Compiler eine auf Eclipse basierende IDE besitzen. Den Anfang macht dabei der PICC Compiler (wahrscheinlich in ein paar Wochen), danach sollen PICC-18 und dann der dsPICC folgen.

Zitat
und unterstützt er den ICD2?

Im Sinne von "kompatiblen Code für den ICD2 generieren" ja, ansonsten ist keine Unterstützung vorhanden (also weiter MPLAB benutzen...). Die bereits angesprochene IDE soll irgendwann einmal eine Unterstützung für Hardware-Debugging enthalten, aber die offizielle Aussage "some sort of hardware debugging support" ist sehr weit auslegbar.

Zitat von: Matt Luckman
Our plan is to have the IDE with code wizard, simulator and some sort of hardware debugging support. The IDE for PICC-18 will be ready very soon after the PICC version. The simulator will take a little longer and hardware deubgging will take even longer again.

Im Moment halte ich den C30 Compiler insgesamt gesehen für etwas stärker als den dsPICC. Der Hauptgrund für den Einsatz des dsPICC war für mich der Umstand, daß ich bereits zuvor mit PICC und PICC-18 gearbeitet habe (zum einen erhält man einen Rabatt auf den dsPICC, zum anderen ist es meistens angenehmer, mit Toolchains eines Herstellers zu arbeiten) . Ansonsten wäre mir die Entscheidung zwischen diesen beiden Compilern deutlich schwerer gefallen. Für 16er und 18er PICs würde mein Votum eindeutiger ausfallen (sowohl gegenüber CCS als auch gegenüber dem C18) :yawinkle: .

Du solltest Dir das Manual und die Demo-Version des dsPICC herunterladen, um Dir selbst ein Bild zu machen.


Viele Grüße

Bernd
Gespeichert

H

Offline Offline

Beiträge: 45


Profil anzeigen
« Antworten #10 am: August 12, 2005, 18:59:56 »

Zitat

und die Einbindung in eine IDE sollte in den meisten Fällen relativ problemlos möglich sein. Das selbe sollte aber auch für den C30 gelten


Der C30 soll kommandozeilenorientiert sein? Werde ich mal nach suchen.

Im Grunde konnte ich mich noch nicht zum Kauf des C30 durchringen, weil ich die Hoffnung habe irgend jemand erstellt den WinDsPIC. Der Controller ist meiner Meinung so leistungsfähig, das der Einsatz sich lohnt. Meine Rechnung geht allerdings dann nicht auf, wenn andere die vor der Wahl eines Controllers stehen, lieber einen ARM7 einsetzen und der Markt sich mehr in 32Bit verschiebt Und dazu gibt des bekanntlich WinARM und Wiggler. Das wäre mir auch so gegangen, nur war der ARM7 den ich bräuchte erst in den letzten Monaten von Atmel herausgekommen. So wurde es der dsPIC. Und da die Entwicklung nahezu abgeschlossen ist, werde ich nicht alles umschmeissen. Es hatte ja auch etwas gutes, es gab ziemlich viele Glücksmomente mit dem dsPIC.

Um nocheinmal mein (einziges) Problem das ich mit dem 5011 hatte zu erwähnen: Kennt einer der dsPICer von Euch das flasche Verhalten von Portbits, wenn direkt nacheinander die Portbits eines (bel.) Ports gekippt werden. Ich habe das Problem, dass wenn z.B. Bit 0 low und Bit 1 high sind und ich die dann mit
PORTBbits.0=1;
PORTBbits.1=0;
jeweils umdrehe bleibt Bit 0 auf Low stehen.

mit
PORTBbits.0=1;
PORTBbits.0=1;
PORTBbits.1=0;

funktioniert es dann, aber finde ich nicht schön, weil ich durch meine defines gar nicht immer weiß, ob die Bits zu einem Port gehören und mir das eigentlich auch Schnuppe ist.
Im Übersetzten Code vergisst der Compiler die erste Anweisung nicht, alles ist so wie es soll, nur ausgeführt wird es nicht korrekt. Es sind keine Kapazitäten an den Portleitungen.


Hälge
Gespeichert
bemi
Full Member
***
Offline Offline

Beiträge: 193


Profil anzeigen WWW
« Antworten #11 am: August 12, 2005, 19:03:31 »

Ist das beim dsPIC nicht das gleiche wie beim PIC18.

Zum setzen nicht auf das PORT Register zugreifen, sondern auf die Latches (LATxxx).
Gespeichert

Projektseite: Amadeus-USB
H

Offline Offline

Beiträge: 45


Profil anzeigen
« Antworten #12 am: August 12, 2005, 19:33:34 »

Ja das könnte das Problem beseitigen.

Ich bin einfach zulange aus den PICs raus  :rolleyes:
Obwohl ich dort das Problem nur dann hatte, wenn eine Last am Pin hing.

Möglicherweise ist der dsPIC einfach zu schnell selbst für unbelastete Pins.
Ich werde es gleich mal umbauen...

danke

Hälge
Gespeichert
H

Offline Offline

Beiträge: 45


Profil anzeigen
« Antworten #13 am: August 12, 2005, 19:52:18 »

okay LAT hat's gebracht...

Nun habe ich überhaupt kein Problem mehr mit dem Controller

Hälge
Gespeichert
Bernd
Globaler Moderator
Hero Member
*****
Offline Offline

Beiträge: 3815



Profil anzeigen
« Antworten #14 am: August 12, 2005, 20:17:48 »

Zitat
Der C30 soll kommandozeilenorientiert sein? Werde ich mal nach suchen.

Prinzipiell mußt Du nur dafür sorgen, daß die von Dir verwendete IDE die selben Programmaufrufe macht, die von MBLAB im Output Window angezeigt werden. Der "Command Line Driver" für C30 scheint "pic30-gcc.exe" zu sein. Werden diesem  C-Dateien übergeben, werden sie zu einer Objektdatei compiliert, übergibt man die resultierenden Objektdateien, wird das Projekt gelinkt. MPLAB stellt an sich nur ein Interface dar, welches durch klicken die Funktion eines make-Files übernimmt, d.h. für den Aufruf der Kommandozeilen-Programme mit den benötigten Parametern sorgt.

LATB wollte ich noch erwähnen, aber das hat sich aber jetzt wohl erledigt. Belastet ist der Ausgangspin pratisch immer, da im Datenblatt von 50pF Lastkapazität ausgegangen wird, die durch Streukapazitäten der Leiterbahn und Eingangskapazitäten von angeschlossenen ICs schnell erreicht werden können.

Bei 30 MIPS ist der im Datenblatt angegebene maximale Wert von 25ns in jedem Fall zu hoch für aufeinanderfolgende Schreibzugriffe auf einzelne Bits des Portregisters, da das Auslenen zu Beginn des Instruction Cycles stattfindet und das Schreiben am Ende. Effektiv vergehen zwischen Schreiben und Lesen nur etwa 8,3ns - 16,7ns (1* oder 2*t_osc).


Viele Grüße

Bernd
Gespeichert

Seiten: [1] 2 Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  

Powered by MySQL Powered by PHP Made for Mozilla (Firefox) Made for Internet Explorer
Seite erstellt in 0.054 Sekunden mit 18 Zugriffen.
 
Top! Top!