Forum: Mikrocontroller und Digitale Elektronik Problem AVR USB Lab mit Pollin Board


von Martin K. (martin_100)


Lesenswert?

Hi!

Folgendes Problem:
Ich benutze den AVR Usb lab als STK500 und das Pollin Board über ISP.
Wenn ich aus AVR Studio heraus den ATmega8 flashen möchte passiert das 
ohne Fehlermeldung oder sonstigem ungewöhnlichen Aktionen. Auch kann ich 
die Signaturen usw. auslesen. Sobald er mit dem Flashen abgeschlossen 
hat tut sich allerdings auf dem Board nichts!

Mache ich nun das gleiche aus dem myAVR Programm heraus funktioniert 
alles ohne Probleme.

Komisch ist nur, dass ich ganz am Anfang alles auf einem Steckbrett 
hatte und ich dort ohne weiteres von AVR Studio heraus flashen konnte.

Programm aus AVR Studio heraus:
#include "avrlab.h"
#include "gpio.h"
int main(void)
{
  AvrLabInit();

DDRD = 0xFF;
PORTD = 0xFF;
  while (1)
    {
    //or here

      AvrLabPoll(); //must be called at least every 40 ms
                     //muss mindestens alle 40 ms aufgerufen werden
  }
}

Programm aus myAVR heraus:
#define   F_CPU 3686400  // Taktfrequenz des myAVR-Boards
#include  <avr\io.h>    // AVR Register und
main ()
{
  DDRD=0xFF;       //PortD auf Ausgang konfigurieren
  do
  {
    PORTD=0xFF;   // PortD High, LEDs on
  }
  while (true);    // Mainloop
}

Vielen Dank euch schon mal für eure Hilfe!

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Hast du nach dem Flashen schon den ISP-Stecker abgezogen? Wenn das was 
ändert, dann nachschauen wie man einstellt, dass das Usb lab nach dem 
Programmieren die RESET-Leitung loslässt.

von gast (Gast)


Lesenswert?

Programm aus AVR Studio heraus:
#include "avrlab.h"
#include "gpio.h"
int main(void)
{
  AvrLabInit();

DDRD = 0xFF;
PORTD = 0xFF;
  while (1)
    {
     AvrLabPoll(); //must be called at least every 40 ms
                   //muss mindestens alle 40 ms aufgerufen werden
    }
}

das ist aber die firmware für das lab den den dort verbauten µC zu 
nutzen
also kein target
sondern nur AVR lab und steckbrett


zudem es glaube en problem mit dem pollinboard gab da der dort verlötete 
STK200 programmer immer mit dranhängt
kann sein das der was vermurkst

von Stefan B. (stefan) Benutzerseite


Lesenswert?

gast schrieb:

> zudem es glaube en problem mit dem pollinboard gab da der dort verlötete
> STK200 programmer immer mit dranhängt

[Just for the records]
Auf dem Pollinboard ist kein STK200-kompatibler Programmer verlötet. Es 
ist ein einfacher serieller Bitbang-Programmer Typ ponyser iN 
AVRDUDE drauf.

von Martin K. (martin_100)


Lesenswert?

Stefan B. schrieb:
> Hast du nach dem Flashen schon den ISP-Stecker abgezogen? Wenn das was
> ändert, dann nachschauen wie man einstellt, dass das Usb lab nach dem
> Programmieren die RESET-Leitung loslässt.

Nein, hat nichts gebracht.
Wie gesagt, gleiches Programm mit myAVR überspielt und es funktioniert 
optimal.

@gast
ich weiß, dass die AVRlabinit() z.B. für ne Steckbrettlösung ist - aber 
es funktioniert ohne diesen inits auch nicht.

was tun... :-/

ISP Geschwindgkeit ist auf 115,2kHz und Oszillator ist auf 1MHz intern

danke schon mal für eure Antworten

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Martin S. schrieb:

> Nein, hat nichts gebracht.
> Wie gesagt, gleiches Programm mit myAVR überspielt und es funktioniert
> optimal.

Welches Programm?

Das?
1
#include "avrlab.h"
2
#include "gpio.h"
3
int main(void)
4
{
5
  AvrLabInit();
6
  DDRD = 0xFF;
7
  PORTD = 0xFF;
8
  while (1)
9
  {
10
    // or here
11
    AvrLabPoll(); //must be called at least every 40 ms
12
                  //muss mindestens alle 40 ms aufgerufen werden
13
  }
14
}

oder das?
1
#define   F_CPU 3686400  // Taktfrequenz des myAVR-Boards
2
#include  <avr\io.h>     // AVR Register und
3
main ()
4
{
5
  DDRD=0xFF;       // PortD auf Ausgang konfigurieren
6
  do
7
  {
8
    PORTD=0xFF;    // PortD High, LEDs on
9
  }
10
  while (true);    // Mainloop
11
}

Für mich sehen beide Programme unterschiedlich aus. Die Unterschiede 
sind in den Zeilen

>  AvrLabInit();
>  AvrLabPoll(); //must be called at least every 40 ms

Diese Zeilen dienen beim Programm #1 dazu den Atmega8 auf dem USB AVR 
Lab (!!!) anzusprechen, wenn man das USB AVR Lab als 
Entwicklungsplattform benutzt.

Wenn man das USB AVR Lab als Programmieradapter benutzt, so wie du 
indem du die STK500v2 aufgespielt hast und damit einen AVR auf einem 
angeschlossenen Pollin-Board programmierst, dann machen diese Funktionen 
keinen Sinn.

Ich vermute der Hänger des Pollin-Boards ist darauf zurückzuführen, 
dass die AvrLabInit(); hängt. Die Sourcen finde ich im Moment nicht und 
in die EXE-Installation mag ich nicht reinschauen.

Ist aber auch nicht nötig - wenn du einen AVR auf dem Pollin-Board 
programmieren willst, gehe auch im AVR Studio so vor wie im 2. Beispiel. 
Lasse die USB AVR Lab spezifischen Teile einfach weg.

von Stefan B. (stefan) Benutzerseite


Lesenswert?


von gast (Gast)


Lesenswert?

die averinit und avrpoll sind für das lab .. da dieser µC direkt am usb 
hängt  brauch das lab dise routinen ...

von Martin K. (martin_100)


Lesenswert?

Danke für eure Antworten. Habe jetzt alles nochmal durchprobiert.
Mit den inits für das lab und ohne die inits. Hab auch die Libary von 
dem  avrlab neu eingespielt. Hilft alles nichts.

Was ich nicht verstehe - laut Schaltplan vom Pollinboard hab ich über 
ISP eine 1:1 Verbindung wie wenn ich ein Steckbrett verwenden würde. 
Wäre es anders oder beschaltet dürfte es ja auch dem myAVR heraus nicht 
funktionieren.

In myAVR benötige ich ja diese lab inits auch nicht. Wo ist da also der 
Unterschied?

mfg

von Martin K. (martin_100)


Lesenswert?

... hat keiner mehr eine Idee, was ich noch ausprobieren könnte, damit 
ich wieder aus dem AVR Studio heraus flashen kann?

mfg

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Martin S. schrieb:

> Ich benutze den AVR Usb lab als STK500 und das Pollin Board über ISP.

Hast du beachtet, dass die Firmware des USB AVR Lab ein STK500v2 
kompatiblen Programmer darstellt und kein STK500-kompatibler Programmer?

Hast du schon Kreuzversuche gemacht? Also eine mit myAVR erstellte 
HEX-Datei mit AVR Studio flashen oder eine mit AVR Studio erstellte 
HEX-Datei mit myAVR flashen? Vielleicht stimmt die Erstellung der 
Hex-Datei unter AVR Studio nicht und der Atmega8 kann mit der Datei nix 
anfangen...

von gast (Gast)


Lesenswert?

mir ist noch immer nicht klar warum du , wenn das USB LAB  flashen soll 
die avrlab.h einbindest  in das projekt ????

dein zel hat nichts mehr mit dem AVR lab gemein ..

die avrlab-h und die dazugehörige avrlabinit sind fiunktionen FÜR das 
lab selbst
um eine eigene firmware für das lab zu erstellen und/oder miniprojekte 
mit dem steckbrett ohne anderen µC zu realisieren



da du ja das pollinboard dranhast  ist DORT dein ziel .. und der µC der 
was machen soll


du nimmst das AVRlab tool und spielt die AVR ISP MKII oder die STK500V2 
firmware auf
im AVR studio auf connect und entsprechend auswählen

in deinem folgendem programm hat das NICHTS mit dem lab zu tun


nur das :

#define   F_CPU 3686400
#include  <avr\io.h>

int main (void)
{
  DDRD=0xFF;       // PortD auf Ausgang konfigurieren
  PORTD=0xFF;    // PortD High, LEDs on
  while (1);    // Mainloop
  {

  }
return 0;
}

von gast (Gast)


Lesenswert?

mit diesem :

#include "avrlab.h"
#include "gpio.h"
int main(void)
{
  AvrLabInit();
  while (1)
  {
    AvrLabPoll(); //must be called at least every 40 ms
                  //muss mindestens alle 40 ms aufgerufen werden
  }
}


erstellt man für das lab eigene firmware und kann so die software USB 
schnitstelle nutzen sowie die freien I/Os
es ist dann kein wieterer µC erforderlich

von Martin K. (martin_100)


Lesenswert?

also:

habe jetzt das:

#define   F_CPU 3686400
#include  <avr\io.h>

int main (void)
{
  DDRD=0xFF;       // PortD auf Ausgang konfigurieren
  PORTD=0xFF;    // PortD High, LEDs on
  while (1);    // Mainloop
  {

  }
return 0;
}

einmal bei AVR Studio und einmal bei myAVR 1:1 reinkopiert.
Aber nur aus dem myAVR heraus funktioniert es.

von Martin K. (martin_100)


Lesenswert?

So,jetzt...

Mich hats jetzt doch soweit genervt, dass ich alles was mit AVR, 
Treiber, usw... zu tun hatte deinstalliert habe. Alle Versionen neu 
heruntergeladen und installiert... jetzt gehts!
Ich weiß absolut nicht was sich da überschlagen hat...

Danke euch auf jeden Fall für euren Support!!!

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Puh, da bin ich aber wirklich happy ;-)

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.