Hallo Leute, ich bin schon länger passiver Leser dieses Forums und finde das Forum echt toll. Leider habe ich trotz der Leser- & Sucherei in dem Forum mein Problem noch nicht lösen können. Ich möchte den ATmega32 16 Pu mit AtmelStudio programmieren. Zunächst habe ich mir eine einfache Schaltung aufgebaut. Eine LED an AVCC dazwischen ein Widerstand und dann an den Pin 29 also PC0. Diesen Pin will ich auf Masse schalten und somit die LED zum leuchten zu bringen. Das Programm spiele ich mit einem mySmartUSB light über IDE auf den Atmel. Zumindest habe ich das vor :-) Nur das Problem. Atmel Studio 7 findet den uC. Denn wenn ich unter DeviceProgramming schaue, dann finde ich dort die Device Information. Allerdings stellt er mir die ISP Clock auf 115.2 kHz. Ist das soweit richtig? Zur Vorgeschichte: Bisher habe ich eine an einen Board gearbeitet, das von der Uni ausgegeben wurde. Da gab es eine fertige Bibliothek und eine cproj Vorlage. Nun fehlt mir die Kenntnis darüber wie ich das Atmel Studio nun auf den neuen Atmega32 16PU einstelle. Mir würde schon reichen, wenn ich die LED zum leuchten bringe :-) VG Chris
:
Bearbeitet durch User
Wenn ich das richtig im Kopf habe, benötigst du avrdude der dir das Programm dann über den USB und ISP an den Controller sendet. Dafür musst du ein "Externes Tool" nebst Kommandozeilenparameter in Atmel Studio hinzufügen. Avrdude bekommst du z.B. über die Arduino IDE.
Hallo, im Datenblatt sind die Fuse-Bits beschrieben und das Datenblatt gibt sonst auch noch viele Informationen feil. Du musst Den Herstellern fragen, wie man einen "mySmartUSB light" ansprechen kann. Wir verwenden als Schnittstelle PC - IDE-Programmieradapter - IDE Interface das Kommandozeilenprogramm avrdude.
Vielen Dank für die Antworten. In der Uni verwenden wir auch einen Atmega32 allerdings keine Atmega32 16Pu. Mit dem Board von der Uni funktioniert alles wie es soll. Ich habe mir Atmel (zuhaus)installiert. Den USB Progger installiert. Die Vorlagendatei geöffnet, bischen Programmcode geschrieben und übertragen. Ohne Probleme. Und das Board hat auch nur den Chip und ein paar LEDs dran. Mit meinem "jungfreulichen" Chip geht das leider nicht. Bisher habe ich auch nur ISP angeschlossen und eben die eine LED wie oben beschrieben. Ich vermute, dass es mit der Einstellung im Programm zu tun hat. Das mit den Fuse-Bits habe ich schon gelesen. Ich werde das jetzt sofort nochmal überprüfen. Habe etwas panik das sich bei den Fusebits was verstelle. Sind das die gleichen Einstellungen wie beim Atmega32? MFG
mySmartUSB light ist STK500 kompatibel und man kann in Atmel Studio direkt unter "available Targets" den entsprechenden COM-Port einstellen. Da braucht ihr kein avrdude auf der Kommandozeile, auch nicht für die Fuses. Beim Wechsel des Ziel-MC muss man im Studio in den Projekteigenschaften das Ziel einstellen. Also wenn Dein Code vom AtMega8 auf einmal auf dem 328,644 oder sonstwo laufen soll. Dann gibt Dir der Compiler auch die passenden Fehlermeldungen über falsche Ports etc.
Ok das klingt verständlich. Da ich bisher mit cprj vorlagen gearbeitet habe, bin ich mir nicht sicher welches Projekt ich nun verwenden muss. Ist es GCC ASF BORAD oder GGC Executable Projekt? Ich habe es mit GCC Executable Projekt versucht. Wenn ich allerdings auf Start Debbuging gesehen kommt die Fehlermeldung: "Failed to open \\.\COM5.ERROR 0x2. Die IDE liegt eigentlich auf COM6, was ich ihm unter Tools - Add target schon gesagt habe. Hat da jemand eine Idee?
Es ist GCC-Executable. Debuggen auf dem Board gibt es mit Deinem USB-ISP-Programmer nicht. ISP bedeutet In-System-Programming und ist das Verfahren um direkt über serielle Schnittstelle den Flash und die Fuses vom AVR zu beschreiben. IDE bedeutet integrierte Entwicklungsumgebung und das ist hier Visual Studio. Wenn Du in den "Available Tools" schon den STK500-kompatiblen Programmierer hast, dann sollte das erst einmal reichen. Baue mal Deine Exectutable als Release und spiele dann die Datei die dabei herauskommt im Bereich Memories vom Programmer ein. Wenn das Programm nicht direkt läuft kann das auch daran liegen, dass der Programmer noch angeschlossen ist und die Speisung des MC beeinflusst.
Ich bekomme immer die Fehlermeldung "Failed to open \\.\COM5. ERROR 0x2
Christan G. schrieb: > Ich bekomme immer die Fehlermeldung "Failed to open \\.\COM5. ERROR 0x2 Wo steht das? In dem Dialogfenster vom Programmer? Mach doch mal bitte unter Available Tools den Programmer auf und stelle den auf das richtige Device, danach apply und dann "read", wenn dann die Device signature auftaucht oder popup-Fehlermeldungen kommen mach bitte einen screenshot und schick die komplette meldung.
Also available Tools finde ich im Atmel Studio 7 nicht. Falls du meinst Tools - Device Programming habe ich dir hier den Screenshort angehängt Bild1. Bild 2 zeigt die Fehlermeldung nach dem Drücken auf Release.
Selbst myAVR ProgToll verwendet COM5. Laut Geräte Manager ist es aber COM6 da COM5 bereits verwendet wurde. Auch ein ändern von COM6 auf einen beliebigen COM Port brachte die selbe Fehlermeldung.
Mit AVR Prog Tool konnte ich nach Umstellung auf Com6 es schaffen den ATmega auszulesen. Allerdings weigert sich AtmelStudio weiterhin.
Auf Bild-1 siehst Du den Reiter "memories". Genau da kannst Du unter "memories" flashen, mach das mal bitte. Das Atmel-Studio hat den STK500-Progger erkannt, das sieht man auf diesem bild. Die Liste mit den Tools ist unter "View"->"Available Atmel Tools" Da kommst Du aber auch nur zu dem Dialog bei Bild-1
Wenn ich das über "memories" flashe wird alles übertragen und es funktioniert. Ist also eine Notlösung, da es so viel umsändlicher ist. Schöner wäre es, wie gewohnt mit Tastendruck. Wenn ich das bisherige "Uni"-Board verwenden funktioniert die Übertragung ebenfalls nicht mehr. Also hängt es wohl an einer Einstellung die unabhängig des boards ist.
Da die Notlösung gut funktioniert und ich den Tag (dank euch) doch noch mit einer blinkenden LED beenden möchte würde es mich freuen, wenn ihr mir sagt, warum meine LED nicht blinken will. Leuchten tut sie. [c]/* * GccApplication8.c * * Created: 12.05.2016 18:29:15 * Author : */ #ifndef F_CPU #define F_CPU 16000000UL #endif #include <avr/io.h> #include <util\delay.h> int main(void) {DDRC |= (1<<6); do{ PORTC |= (1<<6); _delay_ms(1000); PORTC &= ~(1<<6); }while(1); } [c]
:
Bearbeitet durch User
Weil Du zwischen Aus- und Anschalten kein Delay hast. :P Guten Abend.
Hi Chris, ich habe meinen Fehler gerade gesehen:-) Jetzt schaltet er sie schön ein und aus. Ihr glaubt gar nicht wie schön so eine blinkende LED sein kann. Am Ende eines solchen Tages. Glaubt ihr das eine Deinstallation und erneute Installation das COM5 Problem lösen könnte? Oder eher den myAVRlight USB treiber deinstallieren? Euch auch ein schönen Abend
Da das ein STK-500 kompatibler Programmierer ist und der USB-Anschluss sich als serieller Port zeigt, brauchst Du die separate Software oder irgendeinen Treiber nicht, wenn Du das nur als ISP-Hochlader im Studio nimmst. Irgendwie verstehe ich auch die Fragestellung nicht. Du hast das bisher so eingestellt, dass es bei Druck auf den Run-Knopf im Studio kompiliert und auf den MC gespielt wurde? Oder meinst Du ganz etwas anderes? Habt ihr in der Schule vielleicht ganz andere Boards und die MCs via JTAG/.... angeschlossen?
Chris F. schrieb: > Du hast das bisher so eingestellt, dass es bei Druck auf den Run-Knopf > im Studio kompiliert und auf den MC gespielt wurde? Genau so habe ich das bisher gemacht. Das hat ja auch für ein/zwei Tagen funktioniert (damals AVR-USB light auf COM5). Jetzt geht es aber nicht mehr, mit genannter Fehlermeldung. Auch ein deinstallieren von AtmelStudio 7 und den Treiben vom AVR USB Light brachten keine Verbesserungen. Unter Tools - ADD Target kann ich ihn ja auswählen und auch den richtig COM-Port. Wenn ich jedoch dann auf Porject - Properties - Tool gehe habe ich neben Simulator 4 weitere STK500 Einträge OHNE jegliche PORT Angabe. Egal welchen ich davon nehme, es kommt immer die Fehler Meldung: Failed to open \\.\COM5. ERROR 0x2. Der AVR-USB Light liegt aber auf COM6. Wenn ich unter Geräte Manager den COM-Port des AVR-USB light ändern möchte, sind 1 - 5 vergeben. Weiß jemand wie ich AS 7 dazu bringen kann den COM 6 zu akzeptieren anstatt den Stick auf COM 5 zu suchen.
:
Bearbeitet durch User
Gelöst ! Das Problem ist nun gelöst und die Fehlermeldung Failed to open \\.\COM5. ERROR 0x2 erscheint nun nicht mehr. Kompilieren und übertragen funktioniert nun wieder Problemlos. Die Lösung ist ziemlich trivial. Obwohl im Geräte-Manager COM5 als "bereits belegt" markiert ist konnte ich ihn erstaunlicherweise trotzdem auswählen. Es erscheint ein Hinweis, dass dieser COM-Port bereits besetzt ist und es zu Konflikten kommen kann, wenn ich fortfahre... Trotzdem wählte ich COM5 aus und siehe da, alles funktioniert problemlos. Da stellt sich die Fragen warum ich das nicht vorher schon gemacht haben?! Weil ich davon ausgegangen bin, dass ein "als bereits besetzter" COM-Port sich nicht auswählen lässt. Nochmals ein herzlichen Dank an alle die geholfen haben. Schönen Feiertage Christan
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.