Foren-Übersicht

Sie müssen eingeloggt sein, um zu antworten.

Thema: Pico C-Super

Autor Beitrag

toomuchcoffee23

38 Beiträge

Seltener Benutzer
Seltener Benutzer

Read post 21-01-2012 22:24

Hallo zusammen,

beim Upgrade meines Pico C auf Pico C-Super bin ich auf Probleme beim programmieren des Controllers gestoßen. Da ich die Einstellungen der Fuses nicht gefunden habe, habe ich es zunächst mit den Default-Einstellungen versucht. Ergebnis: Alles extrem langsam zu bedienen, gefühlte Zeitlupe Faktor 10. Mit etwas raten kam ich zu den Einstellungen im Screenshot unten. Kann mir jemand sagen ob die richtig sind?
Bis auf die Signalgeneratorfunktion funktioniert die Schaltung, d.h. Kapazitätsmessung, Kalibrierung, Periodendauer und Frequenzmessung gehen. Der Signalgenerator hingegen zeigt mir "komische" Frequenzwerte (123370, 13378E, 123368...) an, die nicht sonderlich viel mit dem Ausgangssignal zu tun haben. Letzteres ist aber vorhanden, Hardware ist also OK.
Ich vermute, ich mache bei der Programmierung des EEPROMS einen Fehler, vermutlich weil ich in dem Punkt die Bedienung des verwendeten GALEP 4 noch nicht ganz verstanden habe. Hat jemand Erfahrung damit?
Mein bisheriges Vorgehen: Controller löschen. .eep Datei ab Adresse 800 laden und programmieren (ohne Flash und Fuses). .hex Datei laden und zusammen mit Fuses programmieren (ohne EEPROM - Programmierung). Nun suche ich den Denkfehler...

Viele Grüße,
Klaus

wkrug

340 Beiträge

Erfahrener Benutzer
Erfahrener Benutzer

Read post 22-01-2012 09:33

Die default Einstellung für die Fuses ist " Interner Oszillator 1MHz ".
Das wird nicht passen, weil die Schaltung mit einem externen 20MHz Quarz läuft.
Guck mal hier nach den Parametern:
http://www.engbedded.com/fusecalc/

Wie das beim GALEP mit dem EEPROM geht kann ich nicht sagen, ich verwende ISP mit AVR-Studio 4.

Dort ist es so, das zuerst der Flash programmiert werden muß, weil dabei vor der Programmierung automatisch der komplette Controller gelöscht wird ( Ich weiß, das kann man auch abschalten! ).
Anschließend kommt der EEPROM dran, hier werden dann die Daten in den EEPROM Bereich geschrieben wird.

toomuchcoffee23

38 Beiträge

Seltener Benutzer
Seltener Benutzer

Read post 24-01-2012 20:28

Auf der Suche nach den richtigen Einstellungen der Fuses habe ich genau diesen Kalkulator gefunden und dann geraten. Quartz >8 MHz war klar und aus der langsamen Reaktionszeit habe ich geschlossen, dass der Teiler durch 8 falsch ist. Zumindest scheint meine Einstellung zu funktionieren. Wenn mir keiner der Experten eine bessere Einstellung nennt, lasse ich das vorerst so.
Das eigentliche Problem scheint hier die Programmierung des EEPROMS zu sein. Im Moment sehe ich 3 Möglichkeiten:

a) Ich finde hier jemanden, der auch den GALEP 4 verwendet und mir das richtige Vorgehen erklärt.

b) Ich bestelle mir den fertig programmierten Controller. Falls Elektor keine Lock-Bits setzt, könnte ich durch Rücklesen und vergleichen vielleicht auf die richtige Bedienung des GALEP schliessen. Das würde dann beim nächsten Mal helfen...

c) Ich habe mal einen USBPROG aufgebaut. Der läßt sich auf AVRISPMK2 programmieren. Dann installiere ich AVRStudio, mache einen Testaufbau auf einem Steckbrett und versuche mein Glück damit. Soweit ich weiß, braucht der Controller 5V Versorgung, einen 100nF Kondensator +5V gegen Masse und einen 10K Widerstand Reset an +5V. Dazu die 6 Anschlüsse des USBPROG an die entsprechenden Pins des Controllers führen und das sollte es sein.

Was meint Ihr?

Viele Grüße,
Klaus

wkrug

340 Beiträge

Erfahrener Benutzer
Erfahrener Benutzer

Read post 24-01-2012 22:29

Ich würde dann die Variante c vorschlagen.
Wenn der Controller einen AVCC Anschluß hat muss auch der mit +5V versorgt werden. AGND gehört dann nach GND sonst kanns Probleme geben.
Nen Quarz braucht man auch noch um den Controller per ISP zu programmieren.

Die Quarz Frequenz ist dabei ziemlich egal. Die ISP Frequenz darf aber maximal nur 25% der Taktfrequenz betragen.

Ich hab mir dazu an einen 8MHz Quarz 2x 22pF Kondensatoren gelötet und die beiden losen Enden zusammen an ein Stückchen Draht.
Somit ist der Quarz dann auch für Steckbretter geeignet.

toomuchcoffee23

38 Beiträge

Seltener Benutzer
Seltener Benutzer

Read post 25-01-2012 18:29

Den Weg bin ich gestern Abend auch gegangen, zumindest ungefähr. AVRStudio 4 hatte ich zum Glück schon auf dem Rechner, also habe ich noch ein passendes Kabel angefertigt und einen Aufbau auf dem Steckbrett gemacht. Anfangs fehlte der Quarz, aber darauf kam ich noch. Verwendet habe ich ein 12MHz Exemplar und 2x 22pF. Allerdings konnte ich den Controller nicht programmieren. Der Programmieradapter wurde offenbar erkannt, nur der Firmwarestand wurde als alt angemeckert. Beim Versuch auf den Controller zuzugreifen blinkte die LED des Adapters kurz auf, dann kam eine Fehlermeldung aus der hervorging, dass irgendwelche Konfigurationsbits falsch sein könnten. Zur Sicherheit habe ich es nochmal mit einem Lochrasteraufbau probiert, aber ohne Erfolg.

Als mir nichts mehr besseres einfiel, versuchte ich es mit PonyProg. Ich war zwar vorher der Meinung, das funktioniert nicht so richtig auf meinem Rechner, aber ich hatte Erfolg. Nun funktioniert auch der Frequenzgenerator! Es hat übrigens gereicht, das EEPROM zu schreiben.

Was nun bleibt ist herauszufinden wo meine Fehler lagen und ob mein USBPROG ein Problem hat. Eine Möglichkeit sehe darin, den funktionierenden Controller mit dem GALEP auszulesen und zu vergleichen.

wkrug

340 Beiträge

Erfahrener Benutzer
Erfahrener Benutzer

Read post 25-01-2012 22:45

Versuch mit dem AVR Studio 4 die Controller ID auszulesen.
Wenn das nicht klappt, wird auch die Programmierung nicht funktionieren.
Meistens liegt das an einer zu hohen oder zu niedrigen ISP Frequenz, die ja maximal 1/4 der Taktfrequenz betragen darf.

Da der Chip anfangs mit 1MHz Interntakt läuft darf die Programmierfrequenz maximal 250kHz betragen 125kHz wäre noch sicherer.

Nachdem die Fuses auf externer Quarz umgeswiched sind, kan die Programmierfrequenz bei 12MHz Takt dann auch auf 1MHz hochgestellt werden. Obwohl das bei einem so kleinen Controller wenig Zeitgewinn bringt.

Manchmal sind auch nur die Programmierpins falsch verdrahtet, oder die falschen genommen worden ( Beispiel ATMEGA 64 od. 128 ).

Manchmal macht die ISP Programmierung in der Zielschaltung Probleme, wenn die Peripherie weniger als 4,7kOhm an den Programmierpins produziert, oder der Pull Up an RESET zu klein ist ( 10KOhm gehören da hin ) oder der Kondensator an Reset zu groß ist. - Was für ein Satz.

Wenn man diese Fehler ausgeschlossen hat funktionierts zu 99%.

toomuchcoffee23

38 Beiträge

Seltener Benutzer
Seltener Benutzer

Read post 26-01-2012 22:05

In einem Punkt bin ich jetzt weiter. Als ich den Controller mit GALEP ausgelesen habe und mit der .eep Datei vergleichen wollte, musste ich feststellen, dass GALEP diese Datei als .bin Datei betrachtet, solange ich nichts anderes vorgebe. Hier lag wohl mein Fehler. Also künftig .eep Datei als Intel Hexformat auswählen und ab Adresse 800h in den Puffer laden, dann sollte es gehen.

Mit USBPROG und AVRStudio bin ich noch nicht wesentlich weiter. Die Programmierfrequenz schließe ich insofern aus, als dass ich nicht mal die Controller ID des funktionierenden Controllers auslesen kann. Der läuft ja mit externem Quarz. Dass er das auch wirklich macht, zeigt die Frequenz- und Periodendauermessung der Schaltung. Falscher Takt würde falsche Anzeige verursachen.
Auch die Verdrahtung halte ich für weniger wahrscheinlich. Sowohl Steckbrett als auch Lochrasteraufbau zeigen das gleiche Verhalten, also ist es ein Flüchtigkeitsfehler nicht ganz so wahrscheinlich. Dass ich prinzipiell die richtigen Pins angeschlossen habe, zeigt mir das funktionierende Ponyprog.
Der Pull Up an RESET hat 10KOhm, sollte also auch passen. Im Programmieraufbau habe ich keinen Kondensator an Reset, muss ja nichts loslaufen nach einschalten. Oder liege ich da falsch?
Viel wahrscheinlicher funktioniert mein USBPROG nicht richtig. Oder/und ich habe bei der Installation von AVRStudio einen Fehler gemacht, in dem ich den Treiber nicht oder falsch installiert habe. Allerdings "redet" offensichtlich AVRStudio mit meinem USBPROG. Zur weiteren Suche werde ich mir am besten ein anderes Interface besorgen und damit probieren. So sollte ich der Sache näher kommen. Oder habe ich eine einfachere Möglichkeit übersehen?

wkrug

340 Beiträge

Erfahrener Benutzer
Erfahrener Benutzer

Read post 26-01-2012 23:16

Die Programmierfrequenz schließe ich insofern aus, als dass ich nicht mal die Controller ID des funktionierenden Controllers auslesen kann.

Auch das geht nicht, wenn die Programmierfrequenz nicht stimmt.

Ich weiss jetzt nicht wie dein USBPROG im Studio aussieht.
Du solltest mal im Programmierfenster auf den Reiter "MAIN" gehen und dort auf den Button "Settings" drücken.
Dann wählst Du als ISP Frequenz 125kHz und sicherst die Einstellungen mit "WRITE".
Jetzt sollte sich die Signatur lesen lassen und der Controller Proggen!

toomuchcoffee23

38 Beiträge

Seltener Benutzer
Seltener Benutzer

Read post 29-01-2012 13:37

Umstellen auf 125KHz habe ich ausprobiert, war zumindest ein Teilerfolg. Es funktionierte damit sporadisch aber nicht zuverlässig. Zwischendrin umstellen auf 1MHz funktionierte sogar auch mal zwischendrin.

Damit war klar, dass ich die richtigen Pins angeschlossen hatte. Der nächste Schritt war die Firmware meines USBPROG auf den aktuellen Stand zu bringen. Auch das bereitete erst Schwierigkeiten weil er nicht "freiwillig" in den Uploadmodus gehen wollte. Nachlesen ergab zum Glück, dass man mit einem Jumper das auch manuell auslösen kann. Mit der neuen Firmware ging auf einmal alles, sogar mit 1MHz. Natürlich ist mir klar, dass ich bei einem neuen Controller zunächst mit 125KHz programmieren muß.

Was bleibt wären die eigentlich vorgesehenen Einstellungen der Fuses. Vielleicht gibt es ja noch eine Nachlese, in der die korrekten Werte stehen. Aber das sehe ich eher als Schönheitsfehler.

on1bes2

8 Beiträge

Neuer Benutzer
Neuer Benutzer

Read post 19-02-2012 23:59

I have the same problem solved. See (on1bes2) on the NL forum: http://www.elektor.nl/forum/forum/algemene-forums/microcontrollers/pico-c-meter.2056095.lynkx?pageStart=1#2071471
Sorry I can read perfectly Deutz, but can not good write it.
grts on1bes Herman.

Sie müssen eingeloggt sein, um zu antworten.

Feedback zu Elektor

Folgen Sie Elektor auf...