Hallo Leute, ist bei mir schon ne weile her das ich etwas mit dem Atmega gemacht habe. Vielleicht ist die Frage für den einen oder anderen ja etwas bescheuert, aber ich frage trotzdem mal :) Folgendes. Ich im Internet einen Bauplan für ein Metallsuchgerät gesucht und dieses nachgebaut. Der Atmega8 wird auf diesem Board mit 8Mhz getaktet. Mit dabei war ein Hex -File für den Atmega8. Ich habe mir auf der Basis des Atmega8 vor langer Zeit einmal ein Thermometer gebaut. Da ich vergessen habe auf dem Board des Metallsuchgerätes eine Programmierschnittstelle anzubringen wollte ich nun den Chip mit dieser alten "Thermometer-Platine beschreiben. Dieses jedoch hat keinen Quarz. Kann ich den Atmega8 auch Programmieren/Beschreiben wenn das Board/Platine keinen Quarz besitzt, obwohl auf der späteren Platine dann ein Quarz bestückt ist und der Atmega8 damit getaktet wird? Ich hoffe Ihr versteht mein Problem. Gruß Thomas
Thomas V. schrieb: > Da ich vergessen habe auf dem Board des Metallsuchgerätes eine > Programmierschnittstelle anzubringen Die könnte man zur Not auch mit provisorischer fliegender Verdrahtung kurzfristig noch nachrüsten. Ein paar Drähte, eine Steckerleiste und die Scahe hat sich. Ist alles fertig, kommen die Drähte wieder weg. > Kann ich den Atmega8 auch Programmieren/Beschreiben wenn das > Board/Platine keinen Quarz besitzt, obwohl auf der späteren Platine dann > ein Quarz bestückt ist und der Atmega8 damit getaktet wird? Ja kannst du. Du musst dir nur über die Reihenfolge im klaren sein. Denn der Mega8 läuft erst mal auf dem internen Oszillator mit 1Mhz. In diesem Zustand kannst du ihn brennen. Wenn du danach auf Quarzverwendung umfust, dann wird der Programmer den Mega8 nicht mehr ansprechen können. Da aber das Programm dann schon im Mega ist, macht das nichts mehr. Auf der Zielplatine gibt es ja den zum Betrieb notwendigen Quarz. Einzig: Änderungen kannst du dann am Programm keine mehr machen. Daher wäre es zumindest am Anfang ganz gut, wenn du NICHT auf Quarz fused, sondern den Mega erst mal so in Betrieb nimmst. Einfach nur um zu sehen, ob auf der Zielplatine auch alles erst mal grundsätzlich funktioniert. Man kann auch auf 8Mhz internen Oszillator fusen. Die Frequenz ist zwar nicht so genau, wie mit einem Quarz, aber um einen grundsätzlichen Funktionstest zu machen, wirds schon reichen. WEnn du dir dann sicher bist, dass alles genau so bleiben kann, dann fused du als allerletzter Schritt um auf Quarzverwendung (und damit ist dann dein Thermometer-Programmer weg vom Fenster). Oder aber natürlich einfach ein paar Drähte provisorisch als ISP Schnittstelle an die Pins löten.
Ich gehe davon aus, dass der AVR auf der "alten" Platine mit internem Takt läuft. Dein neuer AVR macht das per Werkseinstellung auch. Also kannst Du so vorgehen: -neuen AVR in alte Platine stecken -Programmer anschließen -Programm flashen und nötigenfalls auch EEPROM programmieren -über Dein Programmiergerät die Fuses so setzen wie für das neue Projekt nötig. Problem: geht nur 1x so, denn danach will der ATmega einen Quarz sehen... P.S. Wie meist war Karl Heinz flotter....
Hallo Leute, vielen Dank für die Antwort. Das ging ja Fix. :) Das es nur einmal geht wusste ich, ich war mir nur nicht sicher wenn ich die Fuses auf Quarz Oszi 8Mhz stelle ob er diese Einstellung beim Flashen dann auch verwendet und da der Atmega ja nicht "gequarzt" ist das Flashen dann in die Hose geht. Ich hoffe das die SW in Ordnung ist sonst muss ich halt einen "Programmer" bauen. Angenommen es findet sich einen Fehler in der SW und ich bin gezwungen ein Platine zu bauen. Ich würde dann einen 16 Mhz Oszi verwenden den ich über Jumper abschalten kann. Könnte ich mit diesem 16Mhz "Programmer" einen Chip Flashen dessen SW für 8 Mhz ausgelegt ist, oder muss der dann mit 8 Mhz getaktet sein? Ich denke nicht das das geht oder ? Gruß Thomas
linuxer07 schrieb: > Ich hoffe das die SW in Ordnung ist sonst muss ich halt einen > "Programmer" bauen. "Hoffen" ist ganz schlecht. daher hab ich ja auch die Alternative ausgeführt, erst mal auf 8Mhz internen Oszillator zu fusen (weil dein Quarz auch 8Mhz hat). Damit sollte es eigentlich möglich sein, deine SOftware in Betrieb zu nehmen UND du verbaust dir nicht die Möglichkeit, mit deinen Mitteln noch mal am µC nachzubessern, falls es notwendig sein sollte. Denn: Wenn an den Pins ein Quarz physikalisch vorhanden ist, den der µC aber wegen der Fuses nicht benutzt, dann stört das keinen. Umgekehrt ist blöder. > Angenommen es findet sich einen Fehler in der SW und ich bin gezwungen > ein Platine zu bauen. Ich würde dann einen 16 Mhz Oszi verwenden den ich > über Jumper abschalten kann. Könnte ich mit diesem 16Mhz "Programmer" > einen Chip Flashen dessen SW für 8 Mhz ausgelegt ist, oder muss der dann > mit 8 Mhz getaktet sein? Nein, die Programmierung über ISP ist 'unabhängig' davon, welche Taktquelle du konkret hast. Einzige Einschränkung: Auch beim ISP stellt man eine 'Programmierfreuquenz' ein. Da darf nicht GRÖSSER als 1/4 der Taktfrequenz sein. D.h. Ob dein µC mit 16Mhz taktet, oder mit 8Mhz ist für die Programmierung uninteressant, solange du ihn nicht zu schnell programmierst. > Ich denke nicht das das geht oder ? Natürlcih geht das. Das wäre sonst ein wenig unpraktisch, wenn man für jede µC-Frequenz einen eigenen Programmer brauchen würde. Im Zweifel tut mein einfach so, als ob der µC mit 1Mhz getaktet wird und nimmt das als Grundlage für die Programmierfrequenz. WEnn der µC dann tatsächlich schneller ist - kein Problem.
Hallo Leute. Ok dann ist die Sache ja kein Problem. Vielen Dank. Gruss Thomas
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.