Forum: Mikrocontroller und Digitale Elektronik Wie schickt man einen dsPIC33FJ64 schlafen?


von Rudolph R. (rudolph)


Lesenswert?

Ich spiele ein wenig mit einem dsPIC33FJ64 rum, wie bringt man die zum 
Schlafen?

Also konkret habe ich ein deutlich dickeres Programm das ich nicht 
posten kann und das nur in Interrupts und DMA arbeitet, die Schleife in
der main() ist aber leer und das halte ich für keine gute Idee.

Sowas hier verbrennt ja maximal Taktzyklen:
1
int main(void)
2
{
3
4
....
5
6
while(1);
7
}

Sowas in der Art habe ich als Base-Line und mal den Strom gemessen.

Dann habe ich mal versucht, den Controller in Idle zu bringen:
1
int main(void)
2
{
3
4
....
5
6
 while(1)
7
 {
8
  Idle();
9
 }
10
11
}


Was man halt so an Makros findet.
Nur, an der Strom-Aufnahme ändert das rein garnichts.
Okay, vielleicht kommt das ja wirklich nie aus den Interrupts raus,
also mal mit Sleep probieren:
1
int main(void)
2
{
3
4
....
5
6
 while(1)
7
 {
8
  Sleep();
9
 }
10
11
}

Das müsste eigentlich den Controller lahm legen weil dann kein Takt mehr 
da ist, sowas wie ein Timer-IRQ kann dann nicht mehr passieren, oder ADC 
oder sonst was.

Das ändert nur ebenso wenig was an der Strom-Aufnahme was mir den 
Verdacht aufdrängt, dass das so garnicht funktioniert. :-)

Nur, wie macht man das dann richtig?
Die Application-Note von Microchip hat mich nicht weiter gebracht weil 
dort keine konkrete Implementierung beschrieben ist.
Das Idle() und Sleep() sind auch nur Makros, okay.

von Stefan (Gast)


Lesenswert?

Wie heist der µC ?

von Rudolph R. (rudolph)


Lesenswert?

Vollständig ist das ein dsPIC33FJ64GP706A, aber das ganze Gebamsel nach 
dem dsPIC33F ist ja nur Speicher und wie viele Pins und so. :-)

von Ingo (Gast)


Lesenswert?

>Ich spiele ein wenig mit einem >dsPIC33FJ64 rum, wie bringt man >die zum 
Schlafen?
300g Hammer



SCNR

von Noch einer (Gast)


Lesenswert?

Das Datenblatt hat ein ganzes Kapitel zum Thema Power-Saving-Modes und 
ein Dutzend Register mit denen du Takt und Peripherie abschalten kannst. 
Da setzt du erst mal diverse Register und dann rufst du den PWRSAV 
Maschienenbefehl auf.

von Rudolph R. (rudolph)


Lesenswert?

Noch einer schrieb:
> Das Datenblatt hat ein ganzes Kapitel zum Thema Power-Saving-Modes

Ach, echt jetzt? Da wäre ich garnicht drauf gekommen.

Das ist genau was die Idle() und Sleep() machen - scheint sich nur nicht 
im mindesten auszuwirken.

Ingo schrieb:
> 300g Hammer

Da bin ich bei Dir, die Datenblätter von Microchip gefallen mir bisher 
garnicht.
Die IDE ist auch für die Tonne.
Genauso wie Tools wie das PICkit3.

Da suche ich vorhin verzweifelt den Fehler in meiner Verdrahtung weil 
ich weder aus MPLAB-X noch aus dem IPE Kontakt zum Controller bekomme.
Nach einem Hinweis hier im Forum habe ich dann mal die alte Stand-Alone 
Programmier-Anwendung benutzt und die hat den Controller sofort 
gefunden.

Das geht garnicht wenn die Tools nicht funktionieren.

von WehOhWeh (Gast)


Lesenswert?

Rudolph R. schrieb:
> Da bin ich bei Dir, die Datenblätter von Microchip gefallen mir bisher
> garnicht.
> Die IDE ist auch für die Tonne.
> Genauso wie Tools wie das PICkit3.

Über das PICkit und die IDE kann man selbstverständlich geteileter 
Meinung sein, aber die Datenblätter sind gut. Zumindest besser als jene 
von ST.

Wegen dem Idle:
Du musst natürlich schon schauen, wie lange der wirklich im Idle ist und 
wie lange er in deinen Interrupts herumrödelt. Wenn er nie idled, dann 
sparst du natürlich auch keinen Strom.

Dazu gibts einen Trick: Setz dir zwei identische Timer auf, einer zählt 
im Idle, einer nicht (ist nur ein Flag in der Config des Timers, dass 
setzten muss). Wenn du die vergleichst, bekommst du einen Wert heraus, 
wie lange der µC im Idle ist. So eine CPU-Load Anzeige halt.

Und nimm ein Oszi + Shunt zum Messen der Stromaufnahme, kein Multimeter. 
Die Stromaufnahme eines controllers mit idle ist nicht wirklich 
konstant. Nur ein wirklich hochwertiges Multimeter oder ein Oszilloskop 
werden da was sinnvolles anzeigen.

von Rudolph (Gast)


Lesenswert?

WehOhWeh schrieb:
>aber die Datenblätter sind gut.

Ich habe ja auch nicht geschrieben, dass die Datenblätter schlecht sind, 
sondern das ich sie schlecht finde, wichtiger Unterschied.

> Wenn er nie idled, dann sparst du natürlich auch keinen Strom.

Aus dem Grund bin ich ja auch auf Sleep gegangen, da sollte der 
Controller nicht rauskommen können.

> Und nimm ein Oszi + Shunt zum Messen der Stromaufnahme,

An dem Punkt ist mir die absolute Strom-Aufnahme egal und ich schaue mir 
das nur auf dem Netzteil an.
Wenn der Unterschied zwischen 100%, Idle und Sleep nicht auf dem 
Netzteil zu sehen ist dann wären die Power-Save Modi ihren Namen nicht 
wert.

von unbekannt (Gast)


Lesenswert?

Hallo,
du musst die Peripherie über die PMDxbits abschalten.
Achte darauf, dass du beim wake up die Configbits der abgeschalteten 
Peripherie wieder konfigurieren musst!

So ist es bei meinem Programm möglich von 400mW auf 20mW zu kommen.

von Little B. (lil-b)


Lesenswert?

Rudolph R. schrieb:
> die Datenblätter von Microchip gefallen mir bisher
> garnicht.
> Die IDE ist auch für die Tonne.
> Genauso wie Tools wie das PICkit3.

Rudolph schrieb:
> An dem Punkt ist mir die absolute Strom-Aufnahme egal und ich schaue mir
> das nur auf dem Netzteil an.

Du solltest mal aufhören, über dein Werkzeug zu meckern und lernen, es 
richtig zu benutzen!

Die Dokumentation von Microchip ist super. Willst du ein 
Negativbeispiel, so nimm einen MSP430.
Jede IDE ist natürlich anders und gewöhnungsbedürftig. Das MplabX gibts 
für lau, und dafür ists verdammt gut!
Und das PicKit3 ist vom Preis/Leistungsverhältnis auch nicht schlecht. 
Ich hab schon mehr leute über den ICD3 meckern gehört, der locker das 
dreifache kostet.

Wenn du dann auch noch die Stromaufnahme mit deinem Netzteil misst, 
welches eine Messungenauigkeit von +-100mA haben kann, dann solltest du 
dir GANZ GENAU überlegen, wo das Problem liegt.

Lern dein Equipment zu benutzen, und deine Ergebnisse werden besser!

von WehOhWeh (Gast)


Lesenswert?

Rudolph schrieb:
> Aus dem Grund bin ich ja auch auf Sleep gegangen, da sollte der
> Controller nicht rauskommen können.

Nicht ganz richtig. Viele Interrupts laufen auch im sleep, sonst wäre 
das ja ziemlich sinnbefreit und müsste "headshot" oder so heißen. Laufen 
tun z.B. Pinchange, diverse Timer und die RTCC.
Details findest du bei "wakeup sources".

Dazu wäre noch zu prüfen:
- Ruft der überhaupt in idle() oder sleep() wirklichwirklichecht auf?
- Sind bei deinem Projekt vielleicht einige Voraussetzungen für sleeep 
nicht gegeben?
- Läuft der Watchdog?
- wird ein Interruptflag nicht zurückgesetzt?

Es kann oft sehr einfache Ursachen haben...

von Michael K. (Gast)


Lesenswert?

Rudolph R. schrieb:
> Ach, echt jetzt? Da wäre ich garnicht drauf gekommen.
Okay, ich weiß wie es Dir geht, an dem Punkt war ich auch schon.
So genervt das ich vor Wut hätte platzen können.

Das hilft Dir aber nicht, bei den PICs schon garnicht.
Mit dem MPLABX und den PICKIT ist nicht alles besser geworden im 
Vergleich zu MPLAB 8 und ICD, soweit korrekt.

Die Datenblätter sind eigentlich gut.
Die haben nur die Microchip Krankheit das die alles entscheidende 
Information die alle Deine Probleme löst irgendwo auf 730 Seiten Family 
Referenz oder 300 S. Datasheet stehen. Wenn Du alles drei mal komplett 
gelesen hats wirst Du es schon finden ...

Ja, das ist krank aber tatsächlich immer noch besser als das was andere 
Hersteller einem zumuten.
Die ganzen LIBs und Beispielcodes funktionieren in den überwiegenden 
Fällen, manchmal aber auch nicht.
Manchmal sind Header Dateien falsch oder es funktioniert nicht für 
MPLABX.

Es bleibt Dir nichts anderes als Dich ganz tief in die Register 
einzulesen und Stück für Stück das zu setzen was Du verstehst.
Erstmal alles andere weglassen.
Wenn auch das nicht geht, in die Register schauen ob das wirklich 
gesetzt wurde.
Manches wird nur über Beschreiben eines Registers mit Sicherheitscode + 
enger Zeitablauf für das eigentliche Setzen geregelt.
Wird dazwischen ein IRQ ausgelöst oder der Compiler optimiert das 
kaputt, dann wird das entprechende Register einfch kommentarlos nicht 
beschrieben.

Nach solchen kleinen Gemeinheiten mußt Du bei den PICs immer schauen.

Die PICs faszinieren mich immer wieder mit ihrem Funktionsumfang, aber 
das dann wirklich zum Laufen zu bekommen ist dann oft eine unsägliche 
Quälerei aus Abhängigkeiten und 'eigentlich schon, aber...'

von Rudolph R. (rudolph)


Angehängte Dateien:

Lesenswert?

Da die bisherigen Konstruktiven Hinweise auch nur geraten waren habe ich 
das vorhin mal anders ausprobiert, siehe Anhang.

Ich habe ein neues Projekt aufgemacht, eine leere Datei reingeworfen und 
das bisschen was nach Basis-Konfiguration aussah aus dem alten Projekt 
rüber kopiert.

Damit ist quasi keine Peripherie konfiguriert.

In der while() habe ich jetzt die drei Makros Nop(), Idle() und Sleep() 
drin.

Und siehe da, wenn ich jeweils eines aktiviere erhalte ich:

Nop(): 102 mA
Idle(): 74 mA
Sleep(): 44 mA

Natürlich ist das für die ganze Platine, das macht aber nichts, man 
sieht einen deutlichen Unterschied, das reicht schon.

Also ja, scheinbar war das doch der richtige Weg, das bewirkt aber als 
Zusatz in der Anwendung die ich damit manipulieren wollte trotzdem 
nichts.
Das Problem liegt in der Anwendung und nicht in der Methode den 
Controller schlafen zu schicken.

Little Basdart schrieb:
> Du solltest mal aufhören, über dein Werkzeug zu meckern und lernen, es
> richtig zu benutzen!

Warum? Es war wieder nicht möglich, das Programm über MPLAB-X und 
PICkit3 in den Controller zu flashen: Connection Fail

Sowas ist als Tool einfach wertlos.

Little Basdart schrieb:
> Wenn du dann auch noch die Stromaufnahme mit deinem Netzteil misst,
> welches eine Messungenauigkeit von +-100mA haben kann, dann solltest du
> dir GANZ GENAU überlegen, wo das Problem liegt.

Warum erdreistest Du Dich, meine akzeptierte Mess-Ungenauigkeit in Frage 
zu stellen welche ich nicht einmal angegeben habe?
Und es tut mir Leid wenn Dein Netzteil so schlecht ist, mein TOE 8952 
ist da schon etwas präziser.

WehOhWeh schrieb:
>> Aus dem Grund bin ich ja auch auf Sleep gegangen, da sollte der
>> Controller nicht rauskommen können.
>
> Nicht ganz richtig. Viele Interrupts laufen auch im sleep, sonst wäre
> das ja ziemlich sinnbefreit und müsste "headshot" oder so heißen. Laufen
> tun z.B. Pinchange, diverse Timer und die RTCC.

Die Schaltung hat aber keine externen Wakeup Quellen, das habe ich nicht 
dazu geschrieben.
Timer dürften auch nur welche mit asynchronem, also externen Takt, 
laufen.

Michael Knoelke schrieb:
> So genervt das ich vor Wut hätte platzen können.

Ich habe da jetzt Null Druck hinter, ich schaue nur so unverbindlich auf 
ein älteres Projekt drauf das vielleicht oder auch nicht aufpoliert 
werden könnte.
Das war mal eine Diplom-Arbeit.
Das erste was mir aufgefallen ist war die leere Schleife in der main().
Und dann der Satz, dass die Software "Interrupt gesteuert" ist.

Naja, Studenten, unter "Interrupt gesteuert" verstehe ich schon was 
anders als "kommt aus dem Interrupt nie raus". :-)

Da ist auch nicht so viel dran an dem µC.
Ein CAN, zwei ADC Kanäle belegt, ein DAC am SPI, ein paar digitale 
Inputs und Outputs.

Das da ein PIC drin ist sehe ich als Gelegenheit was neues zu machen.
Aber ich muss das eben nicht machen und stecke daher auch nicht soviel 
Zeit da rein.

von Rudolph R. (rudolph)


Lesenswert?

Rudolph R. schrieb:
> Es war wieder nicht möglich, das Programm über MPLAB-X und
> PICkit3 in den Controller zu flashen: Connection Fail

Hab gerade noch mal versucht was zu finden.
Solche Probleme sind seit mindestens 2011 bekannt und eine echte Lösung 
habe ich noch nicht gefunden.

Einfach nur schlecht.

von Michael K. (Gast)


Lesenswert?

Rudolph R. schrieb:
> Einfach nur schlecht.

Atmel, Microchip, STM, TI, Silabs ....
Bei jedem einzelnen ist irgendwas an den Tools, Datasheets, Chips so 
kaputt das es mir die Zornesröte ins Gesicht treibt und trotzdem benutze 
ich die.

Mach kein Drama daraus.

von Heiner (Gast)


Lesenswert?

Rudolph R. schrieb:
> Warum? Es war wieder nicht möglich, das Programm über MPLAB-X und
> PICkit3 in den Controller zu flashen: Connection Fail
>
> Sowas ist als Tool einfach wertlos.


vielleicht solltest du mal die Beschaltung der Programmierschnittstelle 
ueberpruefen (design guide) bevor du hier Unsinn verzapfst.

Ich habe diverse Tools und Software beinahe teaglich im Einsatz und bin
von der Zuverlaessigkeit begeistert.

PS: Die neue Version MPLABX 3.0 hat gerade beim debuggen/programmieren
nochmal deutlich an Performance zugelegt.

lg Heiner

von Rudolph R. (rudolph)


Lesenswert?

Heiner schrieb:
> vielleicht solltest du mal die Beschaltung der Programmierschnittstelle
> ueberpruefen (design guide) bevor du hier Unsinn verzapfst.

Lesen  und so, weiter oben steht doch, dass ich zuerst den Fehler in der 
Verdrahtung gesucht habe bis ich nochmal das veraltete Standalone 
Programmier-Tool ausprobiert habe, und damit kann ich den Controller 
flashen.
Wie hätte ich auch sonst den Strom messen können?

Windows 7, 64 Bit, PICkit3 an einem USB-Hub mit Netzteil, USB2, 
Admin-Rechte.
Und alles was von MPLAB-X kommt ist: Connection failed
Es gibt nicht mal einen Hinweis welche Verbindung gemeint ist, zum 
Progger oder vom Progger zum Target.

Welcher Part davon ist jezt Unsinn?

von Michael K. (Gast)


Lesenswert?

Rudolph R. schrieb:
> Welcher Part davon ist jezt Unsinn?

Das Du ungeduldig und extrem vorgespannt bist.
Ich mußte bei meinem PICkit bei der ersten Inbetriebnahme über MPLAB 8.x 
die Firmware auf eine Version flashen ab der MPLABX erst damit umgehen 
konnte.
Ja, das ist nicht schön, aber seit dem ist alles gut.

Microchip befindet sich gerade im Wechsel zwischen zwei Toolchains und 
schleppt das alte nur soweit mit wie es sein muß obwohl das neue noch 
nicht ganz läuft.
Das sorgt manchmal für Reibungsverluste, aber damit kann man leben.

Microchip schenkt Dir viel mit kostenloser Software und preiswerten 
Tools ohne im Gegenzug Mondpreise für die Chips zu nehmen.
Dafür darf man auch mal den Ärger runterschlucken.

Erzähl uns doch mal bitte was Du sonst immer benutzt was so ausgereift 
ist das Dich diese kleinen Ärgernisse so aus der Bahn werfen.

von Rudolph R. (rudolph)


Lesenswert?

Michael Knoelke schrieb:
> Das Du ungeduldig und extrem vorgespannt bist.

Das ist nur Deine falsche Interpretation von dem was ich schreibe.

> Ich mußte bei meinem PICkit bei der ersten Inbetriebnahme über MPLAB 8.x
> die Firmware auf eine Version flashen ab der MPLABX erst damit umgehen
> konnte.
> Ja, das ist nicht schön, aber seit dem ist alles gut.

Das ist ein interessanter Hinweis dem ich nachgehen werde, aber dieser 
Hinweis sollte aus MPLAB-X oder dem IPE kommen.

> Microchip befindet sich gerade im Wechsel zwischen zwei Toolchains und
> schleppt das alte nur soweit mit wie es sein muß obwohl das neue noch
> nicht ganz läuft.

Ähem, MPLAB-X ist inzwischen in der dritten Version angekommen und wie 
man nachlesen kann haben seit mindestens 2011 verschiedene Anwender 
Probleme mit dem PICkit3.

Zugriff auf ein ICD2 hätte ich auch gehabt, das wurde aber mit MPLAB-X 
begraben, das ICD3 war mir zum Rumspielen zu teuer.

von Michael K. (Gast)


Lesenswert?

Rudolph R. schrieb:
> Ähem, MPLAB-X ist inzwischen in der dritten Version angekommen

Ja, wird langsam benutzbar aber der Wechsel wird sich wohl auch noch 
über ein paar weitere Jahre hinziehen.
Ich war auch nicht glücklich darüber das ich meinen ICD 2 wegwerfen 
kann, aber ich sehe ein das die alten Tools an einem Punkt angekommen 
waren an dem Micrchip ein paar alte Zöpfe abschneiden mußte.

Ich würde gerne behauten das die anderen das besser machen, aber von STM 
gibt es gleich mal garnichts was derart komplett wäre und Atmel hat sich 
mit seinem tollen neuen und vollkommen komatösen AVR Studio auch keine 
Freunde gemacht.
Mein 350$ AVR ONE der mein universeller Problemlöser sein sollte bekommt 
teilweise Breakpoints nicht mit obwohl nachgewiesener Maßen (PIN debug) 
der Code durchlaufen wurde. Auch sonst hat der magische Aussetzer die 
den eigentlich wertlos machen.

STM ist nur nutzbar weil ich eine kommerzielle IDE (IAR) verwende und 
die Finger von allem lasse was ausser Chip und Doku von STM kommt.

Renesas etc. hat da gleich mal nicht nötig sich überhaupt um kleine 
Entwickler zu bemühen.

Die MC51 Silabs haben 'von hinten durch die Brust ins Auge' Hardware on 
Board, der dabeiliegende Keil fängt an echt komische Moves zu machen 
wenn es an die Kapazitätsgrenzen geht und die IDE ist echt kranker 
absturzanfälliger Kram.

Ich habe auch schon oft Galle gespuckt bei den PICs, aber es nützt ja 
nix.

Nochmal: Was kennst Du perfektes in diesem Bereich ?

von Frank K. (fchk)


Lesenswert?

Rudolph R. schrieb:

> Ähem, MPLAB-X ist inzwischen in der dritten Version angekommen und wie
> man nachlesen kann haben seit mindestens 2011 verschiedene Anwender
> Probleme mit dem PICkit3.

Wie man hier in diesem Forum täglich lesen kann, haben verschiedene User 
immer mal wieder Probleme mit ihrem AVR ISP Programmer. Meistens 
Anfänger in ihrem Bereich. Über die vielen 10000 Anwender, die keine 
Probleme haben, liest man nichts.

Im wirklichen Leben ist es genauso. Unfälle stehen in den Nachrichten, 
aber die vielen problemlosen Auto-/Bahn-/Etceterafahrten bleiben 
allesamt unerwähnt.

fchk

von Rudolph R. (rudolph)


Lesenswert?

Michael Knoelke schrieb:
> Nochmal: Was kennst Du perfektes in diesem Bereich ?

Wofür überhaupt vergleichen?
Die kochen alle nur mit Wasser, manche mit Wasser aus dem Fluss, andere 
mit Wasser aus dem Teich.

Die Aussage, bei XXX funktioniert das viel besser hift überhaupt nicht 
bei der Lösung des Problems.

Das andere es hinbekommen aus der eigenen IDE heraus mit den eigenen 
Tools die eigenen Mikro-Controller zu flashen schürt allerdings eine 
gewisse Erwartungs-Haltung. :-)

von WehOhWeh (Gast)


Lesenswert?

Rudolph R. schrieb:
> WehOhWeh schrieb:
>>> Aus dem Grund bin ich ja auch auf Sleep gegangen, da sollte der
>>> Controller nicht rauskommen können.
>>
>> Nicht ganz richtig. Viele Interrupts laufen auch im sleep, sonst wäre
>> das ja ziemlich sinnbefreit und müsste "headshot" oder so heißen. Laufen
>> tun z.B. Pinchange, diverse Timer und die RTCC.
>
> Die Schaltung hat aber keine externen Wakeup Quellen, das habe ich nicht
> dazu geschrieben.
> Timer dürften auch nur welche mit asynchronem, also externen Takt,
> laufen.

Lt. Datenblatt deines PIC kann jeder Interrupt den sleep-Modus beenden.
Sollte ein Flag nicht zurückgesetzt werden, würde er somit nie schlafen. 
Das Projekt kann - dank Nested Interrupts - trotzdem funktionieren.

Ich würd mal folgendes probieren:
- Mal einen Breakpoint auf sleep() setzen und die Flags anschauen (IFSx 
Register).

Natürlich kann auch der Watchdog noch Probleme machen.

Man könnte auch einfach alle Interrupts vor dem sleep() ausschalten, 
aber das macht keinen Sinn, höchsten für einen Test.

Das alles gilt selbstverständlich auch für idle().

von Rudolph R. (rudolph)


Lesenswert?

WehOhWeh schrieb:
> Ich würd mal folgendes probieren:

Erstmal habe ich ja, was ich wissen wollte, ein in die bisher leere 
while(1) eingefügtes Idle() oder Sleep() wirkt sich nicht aus.

Grundsätzlich funktioniert es aber den Controller mit Idle() oder 
Sleep() schlafen zu schicken, die Vorgehensweise war richtig.

Der nächste Schritt wird dann sein einen Überblick zu bekommen was die 
Software überhaupt macht, dann wird sich schon klären, warum die 
scheinbar nie aus dem Interrupts raus kommt.

Na okay, vorher vielleicht noch, den PICkit3 zum Laufen bekommen. :-)

von Michael K. (Gast)


Lesenswert?

Rudolph R. schrieb:
> Die Aussage, bei XXX funktioniert das viel besser
Hat keiner gesagt.
Die Aussage war eher: Bei allen anderen ist das auch nicht besser.

Rudolph R. schrieb:
> Das andere es hinbekommen aus der eigenen IDE heraus mit den eigenen
> Tools die eigenen Mikro-Controller zu flashen schürt allerdings eine
> gewisse Erwartungs-Haltung. :-)
Und wer schafft das ?
Ich meine, mit allen Mikrocontroller und allen Tools auf einer rein 
kostenlosen Basis, denn damit vergleichst Du gerade.

Rudolph R. schrieb:
> Wofür überhaupt vergleichen?
Weil das bescheidener macht sich der Realität der vergleichbaren 
Toolchains zu stellen.

Man hat immer die Wahl zur Keil, IAR, Cosmic, Raisonance etc. zu gehen, 
einen hohen Betrag über den Tresen zu schieben und dann auch einen guten 
Support zu erwarten.
Auch da wird man des öfteren hören das der tolle neue Chip von 
Hersteller XY noch nicht voll unterstützt wird und man gerne auf das 
nächste kostenpflichtige Update warten kann oder für eine Phantastillion 
in kleinen gebrauchten Scheinen auch bevorzugt behandelt wird.

Nochmal: Ich finde das auch nicht schön, aber das ist kein Microchip 
Problem, sondern eher ein allgemeines. Die kostenlosen Tools sind ein 
Marketing Werkzeug. Man kann dabei bleiben und sich dem unvermeidlichen 
fügen, selber ein open source Werkzeug unterstützen oder jemanden dafür 
bezahlen das er sich bereits die Mühe gemacht hat.

Offensichtlich gibt es für die von Dir beobachteten Probleme einen 
Workarround mit denen alle leben konnten die den dsPIC / PICkit 3 
verwenden, denn sonst wären die Verkaufszahlen bei null und die 
Produktlinien eingestellt.

Ich werde jetzt also den Pfad der Diplomatie verlassen und es mit dem 
Worten des allseits geschätzen Little Basdart ausdrücken:
> Du solltest mal aufhören, über dein Werkzeug zu meckern und lernen, es
> richtig zu benutzen!

von Rudolph (Gast)


Lesenswert?

Sieh an, heute morgen konte MPLAB IDE v3.00 doch mit dem PICkit3 
kommunizieren, alles gleich, bis runter zum USB-Kabel und dem Anschluss.
Dann habe ich den Controller eingestellt, auf "Manual Download Firmware" 
gestellt und es wurde "Firmware type....dsPIC33F/24F/24H" gebrannt.

Connecting to MPLAB PICkit 3...

Currently loaded firmware on PICkit 3
Firmware Suite Version.....01.37.15
Firmware type..............dsPIC33F/24F/24H

Target voltage detected
Target device dsPIC33FJ64GP706A found.
Device ID Revision = 300a

Und jetzt klappt es auch aus MPLAB-X v3 heraus zu flashen.

War das mein Fehler, habe ich das Werkzeug falsch benutzt?
Nein, die Software hat versagt, sowohl beim Zugriff auf das Tool als 
auch bei der erzeugten Fehler-Meldung.
Ich bin nicht mal sicher, ob ich erfolgreich einen Workaround benutzt 
habe oder ob das heute morgen nicht zufällig einfach so funktioniert 
hat.

von Pic User (Gast)


Lesenswert?

Also ich kann deinen Ärger mit den Microchip Tools überhaupt nicht 
verstehen. Ich verwende das ICD3 sowie das Pickit3 täglich mit MPLAB8 
und MPLABX zusammen mit allen erdenklichen Pictypen (PIC16 bis PIC32). 
Das funktioniert alles wunderbar, sofern die Referenzgrundbeschaltung 
des Pics von Microchip (siehe Datenblatt) verwendet wird. Das 
Programmierkabel sollte jedoch kurz gehalten werden und kein USB-Hub 
verwenden! Auch der schnelle Wechsel zwischen IDEs und unterschiedlichen 
Pics funktioniert tadellos. Ich habe sogar oft das MPLABX doppelt 
geöffnet und kann das gleiche Programmiergerät aus beiden IDEs 
verwenden. Ganz selten muss man mal die USB-Verbindung trennen, aber das 
habe ich schon bei allen Herstellern erlebt.

von Rudolph R. (rudolph)


Lesenswert?

Pic User schrieb:
> Also ich kann deinen Ärger mit den Microchip Tools überhaupt nicht
> verstehen.

Tja, ist aber so passiert, was soll ich sagen, MPLABX ist einfach mal 
dran gescheitert dem PICkit3 die richtige Firmware zu verpassen.

Und dann hat es jetzt wieder einwandfrei funktioniert eine Platine mit 
einem PIC16F88 anzuschliessen, die Firmware wurde umgeflasht, läuft.

Ich hoffe nur, das bleibt jetzt so. :-)

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
Noch kein Account? Hier anmelden.