Hallo, Ich habe mir ein STK500 zugelegt und verwende zum programmieren von Atmega8 und atmega16 das Atmel Studio 6. Ich habe den Controller immer am Steckplatz lt. Beschreibung. Atmega8 auf sckt3200a2 bzw. Atmega16 auf sckt3100a3. Der ISP6Pin ist lt Beschreibung für den Atmega16 mit sprog3 und für den Atmega8 mit sprog2 verbunden. Die Jumper Einstellungen sind auf Standard bzw. Lieferzustand. Ich würde gerne ein einfaches Programm schreiben und ein Erfolgserlebnis haben und habe mir dafür folgendes ausgesucht: #include <avr/io.h> int main(void) { DDRB |= (1 << PB0); PORTB |= (1 << PB0); } Ich habe das 10 polige Kabel für eine Verbindung von PORTB zu den LEDs genommen. Mein Problem ist, dass immer LED 5 leuchtet. Ich kann PB1 oder 2 oder 4 nehmen dass ändert nichts. AtmelStudio erkennt die Controller. Kann auch die Memory löschen. LED 5 leuchtet dann nicht mehr. Habe zwei mega8 und Mega16 ausprobiert. Immer das gleiche. Kann mir jemand sagen wo ich den Fehler mache?
Bei dem stk500 sind LEDs und Schalter Low-aktiv. Hast du das kabel verdreht gesteckt (das zu den LEDs geht)?
Hallo, danke für die Nachricht. Leider klappt das auch nicht. Habe auch probiert andere Ports zum leuchten zu bringen. Es leuchtet immer LED5. Wenn ich den Memory erase leuchtet nichts. Immerhin ändert sich wenigstens das. Habe gelesen das AtmelStudio 6 Probleme machen kann. Ich probiere es morgen vielleicht mit der Version 4. Habt ihr noch Ideen was ich sonst falsch machen könnte?
Renato K. schrieb: > Habt ihr noch Ideen was ich sonst falsch machen könnte? Hi, probier 'mal über die Verbindung Switches an LED die LEDs manuell über die Taster zum Leuchten zu bringen. Habe bei meinem Board gerade festgestellt, dass es schon mal Kontaktfehler geben kann. Also Tasten ein paarmal drücken. ciao gustav
Probier mal hinter deiner letzten Port-anweisung ein while(1); Also vor der schließenden geschweiften Klammer der main-funktion. Als letzte Anweisung also.
Hi, Oder ein ASM-Proggi. Die include-Datei evtl.noch targetspezifisch setzen. viel Spaß ciao gustav
:
Bearbeitet durch User
Hi, habe 'mal versucht zu kompilieren. Denn das Codebeispiel des TO stammt nämlich etwas abgewandelt sinngemäß aus der Hilfedatei des Studio4: Bei mir wird nur die Meldung "build started" angezeigt und dann nichts mehr. Es war mir von vorne herein klar, dass irgendetwas "Komisches" passiert, wenn WinAVR nicht installiert ist. Also der Compiler beim TO könnte offensichtlich nicht richtig "initialisiert" sein. Aber trotzdem erst einmal die anderen Störmöglichkeiten ausschließen. a) Hardware - Kontaktfehler b) MCU fuses? c) MCU über SPI flashbar mit Hexfile? d) die Einstellungen des Studio sind verstellt, also in HW settings "Clock", 3680000,ISP im Zehner-kHz-Bereich und auf jeden Fall kleiner als Clock. Hab gerade reigeguckt: unter Clock stand 14400 und ISP 28 kHz das kann nicht gutgehen. Also Schieberegler nach rechts auf 3680000 und write. dazu ein ASM File durch den "Assembler" jagen. etc. So könnte man das Problem einkreisen. Dann sehen wir weiter. ciao gustav
:
Bearbeitet durch User
PORTB &= ~(1 << PB0); Den Port auf Masse ziehen ;) Aber aufpassen irgend wo ist der ISP drauf, wenn du da Hardware steckst könnte der ISP blockiert werden.
1 | DDRB |= (1 << PB0); // damit ist dann PB0 ein Ausgang |
2 | int count =65000; |
3 | |
4 | while(1){ |
5 | |
6 | PORTB |= (1 << PB0); //PB0 im PORTB setzen |
7 | |
8 | while(count--); |
9 | PORTB &= ~(1 << PB0); //PB0 im PORTB löschen |
10 | count=65000; |
11 | while(count--); |
12 | |
13 | }
|
und es blinkt ;). Das STK500 funktioniert auch noch mit AtmelStudio7..
:
Bearbeitet durch User
@Marco H: habe dein programm ausprobiert. atmelstudio zeigt keine fehler an. programm funktioniert leider auch nicht. ich habs diesmal wieder mit einem Atmega16 probiert. Es "leuchten" nur PB5 und PB6, "miso" bzw "mosi". ich habe dein programm für den PortC umgeschrieben. leider ohne erfolg. hier leuchtet auch garnichts. komplett nichts. @gustav: habe die switches mit den LEDs verbunden. Funktioniert super! kontakte funktionieren! habe es mit asm noch nicht probiert. habe mir überlegt ob ich das board ugrade. würdet ihr das machen? ich habe mein board kontrolliert, es sind die neuen chips drauf. ich gehe davon aus dass man es upgraden kann. Vergleich bitte siehe bilder!
Hallo nochmal, AVR Studio 4 erkennt das STK500 garnicht und kann nicht connecten. Habe ein Upgrade in AtmelStudio 6 probiert. Board wird hier nicht erkannt. Habe den Upgrade Vorgang so gestartet wie beschrieben lt Anleitung. Ich werde noch AtmelStudio 7 probieren und schauen ob es funktioniert. Im Prinzip sollte es mit AtmelStudio 6 gehen. Wie ihr auf den Bildern vom vorigen post erkennt habe ich hoffentlich alle Einstellungen richtig. Der Atmega wird erkannt. Seine fuses und lock bits gelesen. Jetzt kann ich davon ausgehen das alles gemacht ist um einen Programmiervorgang zu starten, richtig? Denke ich schicke das Board zurück. Was sagt ihr?
mach mal ein Foto vom Board so das man die Jumper erkennen kann ! Außerdem läuft dein Atmega auf dem internen Clock. Macht für die Port Geschichten erstmal mal nichts. Aber das blinken ist ca. 4 mal langsamer als bei mir ;).
Hi, das "klassische" STK500-Board hat zwei serielle RS232 SUB D Min 9 pol. Buchsen. Von oben draufgesehen ist die zum Programmieren die rechte oder die, die zur Powerbuchse (ext. Netzteil bei mir 9V stabilisiert) am nächsten montiert ist. (Die andere Buchse wird erst durch Jumperung PD0/PD1 mit RX0/TX0- RS232Spare-Pinne als Terminal-Connection nutzbar.) Die Target-Spannung wird durch PWM erzeugt (war bei mir 'mal ein Fehler.) Also, die erst einmal nachprüfen, ob sie 5V +- Toleranz beträgt und konstant bleibt. Renato K. schrieb: > Der Atmega wird erkannt. Seine fuses und lock bits gelesen. Ja, aber ist seine Spannung an den entsprechenden Beinchen wirklich 5V ? Nehme an, dass keine "echte" serielle Schnittstelle am PC vorhanden ist, sondern, dass - wie meistens heute - mit einem USB-RS232-Adapter gearbeitet wird. Hier nochmal nachhaken. ciao gustav P.S.: Renato K. schrieb: > Denke ich schicke das Board zurück. Was sagt ihr? Erst einmal nicht, vielleicht ist es wie gesagt ein einfaches Kontaktproblem. Und eben die C-Programmierung. Bitte erst einmal ein ASM-Prog. versuchen. (Bei mir ging auf Socket3600A3 der RS232-Pin nicht => Leiterbahn nachgelötet.)
:
Bearbeitet durch User
Es "leuchten" nur PB5 und PB6, "miso" bzw "mosi". Das darf nicht sein sie dürfen nur beim Programmieren kurz leuchten bzw. flackern. Da ist wohl der ISP mit drauf, die werden auf vTarget gezogen womit die LEDs nicht leuchten. Bitte jetzt wirklich ein Foto vom Board :).
:
Bearbeitet durch User
Hallo, danke für eure Beiträge! @gustav: habe den RS232 gewählt der am nächsten zur Power-Buchse ist! passt. ich benutze einen USB-RS232 Wandler von FTDI (USB-COM232-PLUS1) mit den richtigen Treibern. ich könnte eventuell den Wandler nochmal deinstallieren und erneut überprüfen ob ich den richtigen Treiber dafür habe. Möchte ich aber im moment nicht machen, weil das board und der ATMEGA von AtmelStudio richtig erkannt (ausser im upgrade-modus, da wird es nicht gefunden!) werden und infos vom board bzw vom atmega richtig abgerufen werden können. ich habe auch die pins überprüft. beim sockel des atmega8 liegt auf pin: 7: 5,05V VCC 21:5,05V AREF 20:5,05V AVCC 19:5,05V PB5 (SCK) 18:4,83V PB4 (miso) 17:5,05V PB3 (mosi) 16:4,46V PB2 (SS/OC1B) 15:4,46V PB1 (OC1A) das board wird mit 12v stabilisiert versorgt. @marco: sorry. es "leuchten" bzw flackern nur pb5, pb4 und pb3 beim programmieren. danach bleibt nur noch pb5 bzw pin19 bzw "sck" auf 5V. fotos folgen gleich!!!
Hier die Fotos!! Auf den Fotos wo die LEDs zu erkennen sind, kann man erkennen, dass ich das Kabel verkehrt angesteckt habe. sorry! Das ist mir gerade aufgefallen. Ich habe aber auch das andere Ende am PORT anschluss falsch angesteckt. so kommt das gleiche ergebnis raus.
:
Bearbeitet durch User
Renato K. schrieb: > Möchte ich aber im moment nicht machen, weil das board und der > ATMEGA von AtmelStudio richtig erkannt (ausser im upgrade-modus, da wird > es nicht gefunden!) Dann Funktion die Serielle Schnittstelle, und du musst da auch nichts mehr ändern.
Hi, bei herausgezogener MCU stellen sich bei meinem Board folgende Spannungen ein: Pin1 = 4,91V Pin28= 0,01V Pin2 = 4,91V Pin27= 0,01V Pin3 = 0,01V Pin26= 0,01V Pin4 = 4,91V Pin25= 0,01V Pin5 = 4,91V Pin24= 0,01V Pin6 = 4,91V Pin23= 0,01V Pin7 = 4,91V Pin22= 0,01V Pin8 = 0,01V Pin21= 4,91V Pin9 = 2,22V Pin20= 4,91V Pin10= 0,01V Pin19= 4,91V Pin11= 0,01V Pin18= 4,91V Pin12= 4,91V Pin17= 0,89V Pin13= 0,01V Pin16= 4,91V Pin14= 0,01V Pin15= 0,01V ciao gustav
Renato K. schrieb: > Hier die Fotos!! Hi, kann keine Abweichung zu meiner Beschaltung sehen, außer, dass ich den ATtiny4313 auf SCKT3300D3, entsprechend den SPI auf SPROG3 mit ISP6PIN verbunden habe. Und natürlich direkt RS232 mit PC-RS232. ohne USB-Adapter. Versuche es einmal mit einer anderen MCU. Vielleicht geht es dann. ciao gustav
Hallo, @marco: sorry für die Verkabelung. ich meinte, dass mir die falsche Verkabelung nur für das Foto passiert ist. hatte es für die Fotos schnell zusammengesteckt und dann auch noch falsch herum. es ist sonst immer "siehe Foto" verkabelt. Foto folgt. @Gustav: vielen dank für die Messung der einzelnen Pins. Ich habe am Steckplatz sckt3200a2 (grün, atmega8) meine Pins auch alle durchgemessen und habe abweichende Ergebnisse. Pin1 = 5,05V Pin28= 4,46V Pin2 = 0,00V Pin27= 4,46V Pin3 = 0,00V Pin26= 5,06V Pin4 = 0,00V Pin25= 4,83V Pin5 = 0,00V Pin24= 5,06V Pin6 = 0,00V Pin23= 5,06V Pin7 = 5,05V Pin22= 4,96V Pin8 = 0,00V Pin21= 0,00V Pin9 = 2,51V Pin20= 0,00V Pin10= 0,00V Pin19= 0,00V Pin11= 0,00V Pin18= 0,00V Pin12= 0,00V Pin17= 0,00V Pin13= 0,00V Pin16= 0,00V Pin14= 4,46V Pin15= 0,00V nochmal vielen Dank für die Messung Gustav! das hilft viel! Ich habe ein Upgrade mit AtmelStudio6 probiert. Er findet das Board für das Upgrade nicht. Da ich gelesen habe, dass AtmelStudio6 mit Bugs zu kämpfen hat werde ich mir Version 7 runterladen und damit probieren ein Upgrade zu machen. Ich hoffe dass sich dann die richtigen Werte an den Pins einstellen.
Hallo nochmal, Habe nochmal alles durchgemessen und habe herausgefunden dass ich meine Messungen falsch zugeordnet habe. Ich habe die Pins 15 bis 28 Spiegelverkehrt zugeordnet. Korrekt: Pin1 = 5,05V Pin28= 0,00V Pin2 = 0,00V Pin27= 0,00V Pin3 = 0,00V Pin26= 0,00V Pin4 = 0,00V Pin25= 0,00V Pin5 = 0,00V Pin24= 0,00V Pin6 = 0,00V Pin23= 0,00V Pin7 = 5,05V Pin22= 0,00V Pin8 = 0,00V Pin21= 4.96V Pin9 = 2,51V Pin20= 5,06V Pin10= 0,00V Pin19= 5,06V Pin11= 0,00V Pin18= 4,83V Pin12= 0,00V Pin17= 5,06V Pin13= 0,00V Pin16= 4,46V Pin14= 4,46V Pin15= 4,46V @Gustav: Trotzdem sind unterschiede zwischen unseren Messungen festzustellen. Ich habe aber ein Erfolgserlebnis gehabt!! Ich habe Atmel Studio 7 installiert und marcos Programm ausprobiert. Und es funktioniert!! Ich kann sogar auswählen welcher Port leuchten soll. SUPER!! Ich bin trotzdem verwirrt weil die Messungen unterschiedlich sind. Zu früh freuen möchte ich mich auch nicht. Ich habe bisher nur die PORTs an B ausprobiert und noch nichts anspruchsvolleres programmiert! Vielen Vielen Dank bis jetzt!!!
so super ist mein Programm nicht lol denn die Zählvariable reicht bei 8MHZ mit 16bit nicht mehr aus um es sinngemäß blinken zu lassen. Ich hatte aus dem ASF die Delay Routinen geladen, aber ich wurde mit Warnungen und Fehlern bombardiert. Ich hätte die Ursache auch gefunden, es wäre aber kein einfacher nachvollziehbarer code geworden ;). Da fehlten offenbar ein paar Macros .. ich vermute mal folgendes.. Dein Board hat eine Firmware die abwärts AtmelStudio nicht läuft. Von meinen Board war sie 2.0a, ich habe das Board irrend wann mal für ein Schülerprojekt wieder aus gekramt.
:
Bearbeitet durch User
Mach's doch einfach so:
1 | while(1){ |
2 | PORTB |= (1 << PB0); //PB0 im PORTB setzen |
3 | _delay_ms(200); |
4 | PORTB &= ~(1 << PB0); //PB0 im PORTB löschen |
5 | _delay_ms(200); |
6 | }
|
Du musst aber vor dem main() noch definieren:
1 | #include <util/delay.h> |
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.