Das Brennen von dsPIC30/33 / PIC24


zurück zu 16-Bit-PICs , PIC-Prozessoren , Elektronik , Homepage

Einleitung
Pinbelegung
ICSP versus STDP
geeigneter Brenner

Hardware: Brenner5
Software: dsProg


zurück zu 16-Bit-PICs


Einleitung

Leider kann man nicht einfach einen dsPIC30/33 oder PIC24 in einen herkömmlichen PIC-Brenner stecken und drauflosbrennen.  

nach oben

Betriebsspannung

Während der dsPIC30 mit einer Betriebsspannung von 5 V betrieben werden kann, ist das für dsPIC33 und PIC24 nicht möglich. Diese Chips erfordern eine verringerte Spannung von z.B. 3,3V. Daraus ergibe sich, dass Brenner8 und Brenner5 nicht in der Lage sind, dsPIC33 oder PIC24 direkt zu brennen, da sie immer 5V-Signale erzeugen. Für diese Typen ist das 3,3V-Programmiergerät Brenner9 geeignet.

Für den Brenner8P (rev 5) gibt es einen Adapter, der ihn in einen Brenner9 "verwandelt".

Einige Microchip-Brenner (z.B.ICD-2) lösen das Dilemma dadurch, dass sie gar keine Spannung für den PIC bereitstellen, sondern auf eine Speisung mittels Vdd des PICs angewiesen sind. Das klappt natürlich nur, wenn der PIC in einer Schaltung sitzt, die mit Betriebsspannung versorgt wird.

nach oben

Pinbelegung

Zum Programmieren muss der

dsPIC über einen 5-Draht-Bus mit dem Programmiergerät verbunden werden. Einige Brenner besitzen IC-Sockel, in die PICs eingesteckt werden können. Diese Sockel sind in aller Regel so belegt, das PIC12Fxxx, PIC16Fxxx und PIC18Fxxxx-Typen darin an den 5-Draht -Bus korrekt angeschlossen sind.
Leider ist die Pinbelegung der dsPICs nicht mit den Pinbelegungen der anderen Typen identisch. Deshalb können die dsPICs nicht in diesen IC-Sockeln programmiert werden.

Um einen dsPIC an ein Programmiergerät anzuschließen, muss dafür ein spezieller Adapter gebaut werden, der an den ICSP-Steckverbinder des Programmiergeräts angeschlossen wird.
Alternativ eignen sich auch der universelle Programmieradapter sowie dsPIC-Test-Boards von Microchip, die mit dem ICD-Anschluss versehen sind. Sie können mit einem ICD-Kabel an ein Microchip-Programmiergerät angeschlossen werden, oder man schließt sie mit einem ICSP/ICD-Adapter an den Brenner8P (nur dsPIC30) , Brenner9 (dsPIC33 und PIC24) der den Brenner5 (nur dsPIC30; ab Rev. 7e) an. 


Die folgende Tabelle fasst die Kompatibilitäten noch ein mal zusammen. ein ICSP/IDC-Adapter ist in jedem Fall nötig.

Programmiergerät
dsPIC30
dsPIC33
PIC24
Brenner5
JA
nein nein
Brenner8P
JA nein nein
Brenner8P+Adapter
JA JA JA
Brenner9
nein
JA JA

Den Brenner5 betrachte ich nur als Notlösung, um kleinere HEX-Files in einen dsPIC30 zu brennen. Generell sind Brenner9/8 zu bevorzugen, da sie deutlich zuverlässiger und schneller arbeiten.

nach oben

ICSP versus STDP

Es gibt grundsätzlich 2 Möglichkeiten, dsPIC30Fxxx-Typen zu brennen. PE und ICSP.

ICSP
Wie auch bei z.B. den PIC18-Typen kann man über das serielle Interface (5-Draht-Bus) Befehle in den PIC senden, die dort vom PIC-Kern ausgeführt werden. Mit der entsprechenden Befehlssequenz bringt man den dsPIC dazu, Code in den Flash oder EEPROM zu brennen. Dieses Verfahren nennt Microchip bei den dsPICs STDP. 

PE
Im PE-Mode kommuniziert der Brenner nicht direkt mit dem PIC-Kern, sondern mit einer Firmware, die im PIC sitzt, und dort die Brennarbeit erledigt. Diese Firmware nennt sich "Programming Executive" (PE). Da die Nutzung der PE wesentlich weniger Kommunikation zwischen Brenner und PIC erfordert, wäre damit ein schnelleres Brennen möglich.

In der Praxis spicht aber auch einiges gegen die Nutzung der PE:

  1. Die PE steht in einem speziellen Abschnitt des FLASH. Nicht jeder dsPIC enthält die PE im fabrikfrischen Zustand, und es kann auch passieren, das die PE beschädigt (gelöscht) wird. Dann muss sie zunächst mit dem ICSP-Mode wieder in den Flash geschrieben werden. Ein Brenner muss also ohnehin in der Lage sein, den ICSP-Mode zu nutzen. Der PE-Mode ist also eine zusätzliche Last.
  2. Die Datenrate im PE-Mode ist auf 1 MBaud beschränkt. Im ICSP-Mode sind dagegen bis zu 20 MBaud zulässig. Wenn ein Brenner in der Lage ist, die hohe Datenrate auszunutzen, dann kann das den höheren Kommunikationsbedarf des ICSP-Modes kompensieren.
  3. Der Geschwindigkeitsvorteil der PE kommt nur beim (nicht so wichtigen) Blank-Test voll zur Geltung, da dabei der Inhalt des zu prüfenden Speichers nicht zum Brenner übertragen werden muss. Beim Brennen und lesen, ist der PE-Mode aber nicht unbedingt deutlich schneller als ICSP.
  4. Die PE ist ein Stück Software, und als solche kann sie Bugs enthalten. Sie stellt also eine zusätzliche Fehlerquelle dar.
  5. Zur Komunikation mit der PE muss der Brenner 15-µs-kurze Pulse auf der Datenleitung des 5-Draht-Busses erkennen. Für einen Parallelportbrenner ohne Eigenintelligenz (z.B. Brenner5) ist das keine triviale Aufgabe.
Meine Brennsoftware benutzt deshalb z.Z. nur den ICSP-Mode, ich halte mir den PE-Mode aber als Option für die Zukunft offen.
 
nach oben

geeigneter Brenner

USB
Der Brenner8P ist in der Lage dsPICs zu brennen, wenn ICSP-Adapter verwendet werden.
Als Software ist  USBurn (Windows) oder usburn (Linux)  zu verwenden..


Parallelport
Der Brenner5 ist in der Lage dsPICs zu brennen, wenn ICSP-Adapter verwendet werden.
Als Software ist  dsProg  zu verwenden.
Den Brenner5 betrachte ich nur als Notlösung, um kleinere HEX-Files in einen dsPIC30 zu brennen. Generell sind Brenner9/8 zu bevorzugen, da sie deutlich zuverlässiger und schneller arbeiten. 

nach oben

zurück zu 16-Bit-PICs , PIC-Prozessoren , Elektronik , Homepage

Autor: sprut
erstellt am: 21.02.2006
letzte Änderung: 01.03.2011

Quelle: Microchip