mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR450 Lader


Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich versuche mich gerade an der App.-Note 450 von Atmel.
Ich nutze den ATmega32(16MHz). PWM habe ich auf 15.625kHz eingestellt,
also 10Bit Fast-PWM.

Nur bei der Rouutine Stop_PWM, wie in der App.-Note, bleibt das
Programm stehen.

void Stop_PWM(void)
  {
  if((TCCR1A & (1<<CS10)) && OCR1A!=0)
    {
    if(OCR1A==1)
      {
      while(TCNT1>2);
      while(TCNT1<2);
      }
    else
      {
      while(TCNT1 > OCR1A);
      while(OCR1A > TCNT1); <-- hier hängt er im Simulator
      }
      TCCR1A=0x00;
    }
  }

Festgestellt habe ich im Simulator, das der Wert von TCNT1 niemals 3FF
erreicht, aber warum?

Mfg Sascha

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde vor allem mal auf korrekte Klammerung achten

if((TCCR1A & (1 << CS10)) && (OCR1A != 0))
...

Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gut, mit der Klammerung kann passieren, naja.
Aber daran liegts wohl nicht, ergibt keine änderung.

Mfg Sascha

Autor: Ich Bin (ichbin)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Sascha,

kennst Du Projekte, die auf dieser Appnote basieren?
Ich brauche ein Ladegerät, möchte aber die Entwicklungszeit so kurz wie
möglich halten, und auf was 'Vorgedachtes' zurückgreifen.

Danke schonmal!

Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau mal da......

http://www.people.freenet.de/thhe01/modellbau/index.htm

Hmm, zurück zu meinem Problem. Das register OCR1A darf nicht den Wert
0x3FF erreichen. Sonst schaltet die Stop_PWM Routine nicht ab und
bleibt dort hängen.

Mfg Sascha

Autor: Stefan S. (sh81)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

auf

http://www.seattlerobotics.org/encoder/200210/lithiumion.htm

ist auch ne Beispielschaltung aus der AVR450 Appnote.
Allerdings nur speziell für LiIon Akkus. Das Problem ist aber die
alte Version des Quellcodes, der sich mir dem aktuellen WinAVR nicht
compilieren lässt (andere includedateien, Portzuweisungen,
Interrupts...).
@ Sascha: vllt. findest Du ja dort ein paar Infos zu deiner PWM
Routine.

@all: Hat denn niemand ne lauffähige (aktuelle) Version des
Projektes??
Hardwaremäßig binn ich nämlich schon fertig, nur mit der
Implementierung der Software hapert es noch ein wenig.
Wäre nett wenn hier jemand sein Projekt veröffentlichen könnte!

Gruß,

Stefan

Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

@Stefan S. (SH81)

das Problem liegt bei dem Source, das er wohl unter Codevision progr.
ist und nicht unter WinAVR. Den Link von dir kenne ich leider schon,
die Stop_PWM Routine ist im Prinzip identisch. Nur halt ein anderer
Controller, statt Atmega8, Atmega32.  Er gibt dem Kind nur nen anderen
Namen: #define OC_REG_1             OCR1A  :)
Bringt mir also leider auch nichts. Sobald der OCR-Wert gleich 0x3FF
ist, bleibt die Routine hängen. Ist bestimmt toll, wenn der µC den
Strom mit dem Wert 0x3FF regelt und er dann nicht mehr abschalten kann.
Akku macht dann puff.........

Mfg Sascha

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das sieht mir mittlerweile fast wie ein Simulator-Problem aus. Habe mit
dem AVR-Simulator auch schon mal Probleme gerade bei
Hardware-Ereignissen gehabt. Und das, obwohl das Programm auf dem Chip
einwandfrei läuft (z.B.
http://www.mikrocontroller.net/forum/read-2-312911.html). Wenn Du es
bisher nur simuliert hast, solltest Du es mal in Hardware ausprobieren.


Gruß

Johnny

Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

leider kein Simulator-Problem. Habe es im Lader selbst getestet und da
funktioniert es auch nicht.......

Mfg sascha

Autor: Ich Bin (ichbin)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
N'Abend,

ich habe nochmal ein paar Fragen an Euch, nachdem ich die Appnote
überflogen habe:

Pi mal Daumen - wieviel Platz im Flash würden die Routinen aus der
Appnote kombiniert benötigen? In der Appnote steht zwar was von <1,5K,
aber demnach ja nur für ein bestimmtes Ladeszenario..und das kann ja
nicht Sinn eines Universalladers sein.

Gibt es eigentlich noch andere AVRs, die wie der tiny15 und 26 so ein
100kHz PWM und interne Verstärkung für ADC haben? Schön wäre auch die
passende Menge Flash und ein Hardware Uart :-)
Aber vermutlich verwendet Ihr nicht ohne Grund Fast PWM

Was benutzt Ihr für Widerstände zur Strommessung?

Danke schonmal!

Autor: Sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Sascha:

Vielleicht könntest Du den kompletten Code posten,
dann könnte man auch nach einem fehler suchen.....
So ist es ja nur die Stop routine die man einsehen kann.
Das ist wie ein suchen im Heuhaufen...

Gruß Sven

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.