Mit AVR 4.17 und RISP MKII ein STK500 / m8515 Programmieren

novski

Neues Mitglied
15. Juni 2009
9
0
0
Region Zentralschweiz
Sprachen
Hallo
Ich hab mir im Sommer ein STK500 zugelegt und versuche seither (zugegeben nicht sehr effizient. :cool: ) erste schritte im Programmieren vom m8515L der dazu geliefert wurde. Ich hab mir jetzt einige Tage freigehalten um mich mal etwas tiefer damit zu beschaftigen.
Ich bin soweit gekommen das der RISP MKII sich mit dem Board verständigt, Resp. das LED Grün wird beim anstecken... (@Markus: Danke für den Tip mit dem Reset Jumper)
Leider stehe ich hier an. Mir ist nicht klar was nötig ist um den Code auf dem Baustein laufen zu lassen. Der Code den ich im AVR Studio 4.17 eingefügt habe ist von diesem Forum kopiert, ein Code den auch ich verstehe und ganz einfach bei tasten druck ein LED zum leuchten bringen soll. :)
Nun erstens habe ich da 3 Pfade mit denen ich jeweils ein Flash, EEPROM, und ein ELF Productin File Format auswählen kann. Ich hab aber nur ein File .hex das mir im Ordner des Projekts gespeichert wurde.
Ich hab dann im GGC Toutorial von microcontroller.net nachgelesen aber auch da ist nur der Nutzen beschrieben nicht aber die Handhabung.
kann mir jemand beschreiben welche schritte notwendig sind um die geschriebene software auf einem Baustein laufen zu lassen?
zweitens gibt mir das Programmierfenster diesen Fehler an wenn ich bei irgend einem der drei zeilen auf Programm drücke:

Getting isp parameter.. SD=x03 .. OK
Validating ELF input file.. OK!
Reading FLASH input.. OK!
No EEPROM contents in ELF file.
No FUSE contents in ELF file.
NO SIGNATURE contents in ELF file.
Setting mode and device parameters.. OK!
Entering programming mode.. OK!
Erasing device.. OK!
Programming FLASH .. Failed!
Leaving programming mode.. OK!

Besten Dank!

Code:
// wenn taste gedrückt wird wird LED 1 angeschaltet.

	
#include <avr/io.h>				// Datei für Ein und Ausgänge
//===============================================================
int k = 0x00;
//===============================================================
int main(void)
{
	DDRA = 0x00;				//PortA als Eingang
	DDRB = 0xFF;				//PortB als Ausgang
	DDRD = 0x00;				//PortD als Eingang

	while (1) 							// Endlosschleife / while (1) ist immer True darum wird endlos geschleift
	{
		k=PORTA;
		if (k<=1)
		{
			PORTB=k;
		}
		else
		{
			PORTB=0xFF;
		}	
	}
return 0;
}
 
Lösung gefunden

Sorry hab schon nach wehnigen stunden die lösung für mein problem selbst gefunden. Die SPI Taktrate darf max 1/4 der Taktrate des uP sein... tja.
 
Hi novski,

glückwunsch, dann hast Du ja Den Problem selsbt gelöst. Ja ja, so ist das, es gibt viele Stolpersteine über die man beim Einstieg fallen kann. Aber ein gelöstes Problem ist ein gutes Problem. :p

Grüße und eine schöne Woche.
Markus
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)