Hallo, bin neu hier und habe schon fragen. Ich habe das Atmel Eval Board Ver 2.0 von Pollin zusammen gebaut und das Testprogramm von deren Seite auf einen Atmega16 geschrieben. Zum einen hat das fast 1 Stunde gedauert. Dann kam eine Fehlermeldung dass das Schreiben nicht geklappt hätte. Beim Testen hat jedoch LED1 geleuchtet, LED2 hat geleucht und das Piepsen über den Summer kamm auch raus, nur die Laufschrift welche man über Hypertermial empfangen sollte wurde nicht angezeigt. Als ich dann jetzt kurz mal den Strom weggenommen habe und ihn dann wieder angeschlossen habe war die Programmierung des Atmega weg. Nun zu meinen Fragen. Hat der Atmega16 einen flüchtigen Speicher? Ich dachte immer so ein IC würde auch nach einen Energieausfall wieder so funktionieren als wäre er immer an gewesen. Kann man den nicht rausnehmen und anschliessend wo anderes einbauen? Dauert das Programmieren immer solange? Ich habe irgendwo gelesen das es in 20 Sekunden geschehen sein sollte. Danke für eure Antworten.
Ja, das Programmmieren ist schnell, ein paar sek je nach Typ. Und natuerlich nicht fluechtig. Da ist irgendwas ganz falsch. Die pro Bit Programmierzeit ist ist je laenger, je kleiner die Versorgungsspannung. Ich kenn diesen Aufbau nicht, kann daher nichts dazu sagen.
Womit programmierst Du das Ding? Hast Du einen vernünftigen externen Programmer oder nutzt Du die auf dem Board vorhandene ISP-Schaltung? Hast Du eventuell ein USB-Seriell-Adapter dazwischen? ...
Damit ein Programm abstürzt, muss nicht das ganze Programm verloren sein, die Vernichtung eines einzigen Bit reicht schon aus. Normalerweise ist die Programmierung eine Sache von wenigen Sekunden, meist dauert das Verifizieren länger, da dann der gesamte Speicherbereich durchgelesen wird. Bei der Fehlerbeschreibung muss irgendwas mit dem Programmieren schief laufen. Versuchs doch mal mit der einfachen Schleife: start: ser r16 out ddrd,r16 ;portD zum Ausgang machen schleife: inc r16 out portd,r16 ;binäre, wachsende Zahl ausgeben rjmp schleife die liefert an allen pins von portd eine symmetrische Rechteckspannung, also mit UB/2 als Mittelwert, mit von pin zu pin doppelter Frequenz. man kann damit die Hardware gut überprüfen.
Hey, cool. Danke für die schnellen Antworten. Leider verstehe ich noch nicht soviel vom Programmieren. Also das mit der Schleife ist noch ein böhmisches Dorf für mich. Das Board ist wie schon erwähnt das Atmel Evaluationsboard Version 2.0 von Pollin. Ich habe einen USB to Serial Adapter (CN-116) von Sitecom. Programmiert habe ich es über den ISP der auf dem Board drauf ist. Also Software zum nehme ich PonyProg2000 Version 2.07A Beta Das Testprogamm hatte ich mir von der Pollin Homepage runtergeladen und auf den IC draufgespielt. Ich verstehe auch nicht warum der Lauftext im Hyperterminal nicht zu sehen war. Was mich jedoch gefreut hat dass das Programm teilweise funktioniert hatte. Ich schon irgendwie ein tolles Gefühl wenn die Geräte arbeiten, auch wenns nur soetwas banales wie eine LED zum leuchten zu bringen ist. Ich habe hier noch einen alten Rechner mit einem echten Com-Port. Meint ihr das es damit besser geht?
peter-neu-ulm wrote: > Damit ein Programm abstürzt, muss nicht das ganze Programm verloren > sein, die Vernichtung eines einzigen Bit reicht schon aus. Normalerweise > ist die Programmierung eine Sache von wenigen Sekunden, meist dauert das > Verifizieren länger, da dann der gesamte Speicherbereich durchgelesen > wird. Ich vermute, dass da Bitbanging über USB gemacht wurde. > Bei der Fehlerbeschreibung muss irgendwas mit dem Programmieren schief > laufen. Versuchs doch mal mit der einfachen Schleife: > > start: > ser r16 > out ddrd,r16 ;portD zum Ausgang machen > schleife: > inc r16 > out portd,r16 ;binäre, wachsende Zahl ausgeben > rjmp schleife > > die liefert an allen pins von portd eine symmetrische Rechteckspannung, > also mit UB/2 als Mittelwert, mit von pin zu pin doppelter Frequenz. man > kann damit die Hardware gut überprüfen. Soweit ist Erne noch nicht, er kämpft noch nir dem "Testprogramm", das er sich bei Pollin runtergeladen hat: >> Ich habe das Atmel Eval Board Ver 2.0 von Pollin zusammen gebaut und das >> Testprogramm von deren Seite auf einen Atmega16 geschrieben. ...
Erne E. wrote: > Dauert das Programmieren immer solange? Ich habe irgendwo gelesen das es > in 20 Sekunden geschehen sein sollte. Denn hast Du bestimmt auch gelesen, das dass Pollinboard nicht grad für die USB Schnittstellenwandler geeignet ist? Das ist hier jede Woche Thema ;-) Versuch es mal mit einer "echten" Seriellen Schnittstelle. Da dauert das programmieren nur einige Sekunden. >Ich verstehe auch nicht warum der Lauftext im Hyperterminal nicht zu >sehen war. Offensichtlich hast Du die Fusebits nicht angepasst. Schau mal in die pdf von Pollin. Dein Mega16 wird wahrscheinlich noch mit 1MHz laufen, statt mit den geforderten 8 MHz. Aber lese die Fusebits mit "Read" vorher ein, bevor du was dran veränderst. Gruß Holger
Was mir aufgefallen ist, das ich in Pony nicht in "SI Prog I/O" auswählen kann, es geht nur "SI Prog API" oder "JDM API" Hatte gerade nochmal das Programm aufgespielt (5min) und dann das Verifizieren abgebrochen (hätte 30min gedauert), jetzt tut sich jedoch nichts. Muss man Verifzieren? oder habe ich den Atmega16 schon zerstört? Meint Ihr das es mit dem Atmage32 besser klappen könnte?
Erne E. wrote: > Meint Ihr das es mit dem Atmage32 besser klappen könnte? Nein! > Muss man Verifzieren? Auch nein. Wäre aber besser. > oder habe ich den Atmega16 schon zerstört? zerstört werden die nicht wirklich. Allerdings kann es vorkommen, das man die Controller durch falsche programmierung der Fusebits "abschießt". Aber das ist aber "reperabel"
Sorry, ich habe diesen Beitrag gestern Abend übersehen... Erne E. wrote: > Hey, cool. Danke für die schnellen Antworten. > > Leider verstehe ich noch nicht soviel vom Programmieren. Also das mit > der Schleife ist noch ein böhmisches Dorf für mich. > > Das Board ist wie schon erwähnt das Atmel Evaluationsboard Version 2.0 > von Pollin. Nunja, das ist nicht das Schlechteste, wenn auch nicht das Optimale... > Ich habe einen USB to Serial Adapter (CN-116) von Sitecom. Da liegt der Hase im Pfeffer. Der (sogenannte) "Programmer" auf dem Pollin-Board arbeitet mit Bitbanging. Das heißt, dass der PC das Timing machen muss. Dies kann der PC nur mit "echten" Schnittstellen (am ISA- bzw. PCI-Bus), über USB wird das Timing stark gestört weil jedes Bit erst in ein USB-Paket verpackt und nach "USB-Fahrplan" irgendwann mal versendet wird. Die meisten USB-Seriell-Adapter können das gar nicht, andere sind extrem langsam. Das liegt aber an der Natur des USB. USB ist nunmal für den (schnellen) Transport großer (Multimedia-)Datenmengen konzipiert, nicht für Bitwackeln in Echtzeit. > > Programmiert habe ich es über den ISP der auf dem Board drauf ist. Der hat keine eigene Intelligenz und macht Bitbanging... > > Also Software zum nehme ich PonyProg2000 Version 2.07A Beta > > Das Testprogamm hatte ich mir von der Pollin Homepage runtergeladen und > auf den IC draufgespielt. > > Ich verstehe auch nicht warum der Lauftext im Hyperterminal nicht zu > sehen war. Na weil Deine Baudrate nicht stimmt. Die serielle Schnittstelle braucht einen sehr genauen und vor allem sehr stabilen Takt. Dazu muss man den AVR mit einem Quarz takten. Sehr gut geeignet sind sogenannte Baudratenfrequenzen (siehe die Tabellen in den Datenblättern der AVRs im Kapitel U(S)ART). Nun werden aber die AVRs mit aktiviertem internen RC-Oszillator ausgeliefert. Du kanns also soviele Quarze anschließen wie Du willst, das interessiert den AVR nicht, solange Du den Quarz nicht beim AVR anmeldest. Dies geschieht über die Fusebits. Doch Vorsicht, daran sollte man sich erst vergreifen, wenn man das dazu erforderliche Wissen hat, ansonsten sperrt man sich schnell mal aus. Die Fusebits sind also keine "Spielwiese" zum Experimentieren. Einzelheiten findes Du im Datenblatt des betreffenden AVRs. > > Was mich jedoch gefreut hat dass das Programm teilweise funktioniert > hatte. Es funktioniert ja, aber es läuft mit einem Takt, der für die serielle Schnittstelle ungeeignet ist. > Ich schon irgendwie ein tolles Gefühl wenn die Geräte arbeiten, auch > wenns nur soetwas banales wie eine LED zum leuchten zu bringen ist. Ja, schon, aber nicht übermütig werden. Das ist erst der Anfang. > > Ich habe hier noch einen alten Rechner mit einem echten Com-Port. Und warum benutzt Du den nicht?? > Meint > ihr das es damit besser geht? Aber selbstverständlich geht der besser!!! Wenn Du dann noch dafür sorgst, dass keine unnötige Software im Hintergrund läuft, dann funktioniert das richtig gut und auch schnell. Allerdings wird dadurch alleine die serielle Schnittstelle auch nicht die richtige Baudrate bekommen... ;-) ...
So, hab jetzt einen echten Com-Port und muss sagen. UNGLAUBLICH wie schnell das geht :-) Leider schreibt er mir immer noch das ein Schreibfehler aufgetreten ist. Kamm nur einmal das alles okey gewesen sein soll. Hyperterminal empfängt leider immer noch nicht den Text. Hab einen Atmega8 aufs Board gesetzt und beschrieben, da kommt dann immer das alles Okay gewesen ist. Meine Frage wäre jetzt. Auf dem Atmega16 kommt wird der Ton für 0,5 Sekunden ausgegeben. Mit dem Atmega8 ertönt er aber für 3-4 Sekunden. Ist das normal? Kann es sein das der 8er langsamer arbeitet als der 16? Ich dachte immer das wäre vom Quarz abhängig wie schnell die seien. Zumindest vergisst der IC jetzt nicht mehr das er beschrieben wurde. Habe den Strom mal ausgestellt und wieder angemacht und die Programmierung war immer noch vorhanden.
Erne E. wrote: > So, hab jetzt einen echten Com-Port und muss sagen. UNGLAUBLICH wie > schnell das geht :-) Naja, schnell und zuverlässig ist Zweierlei... ;-) Pony arbeitet gerne am Limit, also an der Grenze der Zuverlässigkeit. > > Leider schreibt er mir immer noch das ein Schreibfehler aufgetreten ist. > Kamm nur einmal das alles okey gewesen sein soll. Dann wird Pony am Limit arbeiten. > Hyperterminal empfängt > leider immer noch nicht den Text. Der Text wird erst korrekt gesendet (Timing), wenn Quarz und UART-Einstellung (im AVR-Programmm) zusammenpassen und der AVR den Quarz auch nutzt (Fusebiteinstellung). > > Hab einen Atmega8 aufs Board gesetzt und beschrieben, da kommt dann > immer das alles Okay gewesen ist. > > Meine Frage wäre jetzt. Auf dem Atmega16 kommt wird der Ton für 0,5 > Sekunden ausgegeben. Mit dem Atmega8 ertönt er aber für 3-4 Sekunden. > Ist das normal? Jain, aber das erklärt Einiges... Schau mal in die Datenblätter der Controller in das Kapitel Clock-Sources. Da wirst Du sehen, dass die AVRs mit intern erzeugtem Takt von 1MHz, 2MHz, 4MHZ und 8MHz laufen können, aber auch mit externem Quarz, externem Keramik-Resonator, externem RC-Oszillator oder auch mit einem extern vorhandenem Takt. > Kann es sein das der 8er langsamer arbeitet als der 16? Wenn dasselbe Programm auf den Controllern unterschiedlich schnell ist, dann sind sie halt unterschiedlich eingestellt. Die Einstellung erfolgt mit den Fusebits, das bedarf aber Fachkenntnis, Du wärst nicht der Erste, der sich den AVR versaut, ehe das erste Programm darin korrekt gelaufen ist... > Ich dachte immer das wäre vom Quarz abhängig wie schnell die seien. Richtig, dazu muss der AVR aber erstmal auf Quarzbetrieb umgestellt werden. Und da es noch viele andere Taktquellen außer Quarz in Deinem Frequenzbereich gibt, kann man dabei viel falsch machen. Besonders wichtig soll bei Pony wohl sein, dass man vor jeder Fusebit-Manipulation die Fuses manuell einliest und dann mit dem Datenblatt vergleicht. Wichtig ist das deshalb, weil nicht jeder Pony-Anfänger die invertierte Funktion der Fuses gleich versteht. Missverständnisse sind da vorprogrammiert, und dann ist das Geschrei meist groß (haben wir hier fast jede Woche ein paar Fälle). > > Zumindest vergisst der IC jetzt nicht mehr das er beschrieben wurde. > Habe den Strom mal ausgestellt und wieder angemacht und die > Programmierung war immer noch vorhanden. Naja, das kann ich nicht nachvollziehen, das halte ich für einen Irrtum Deinerseits. Bei mir hat noch kein AVR seinen Flash-Inhalt vergessen. Wobei ich aber auch nie versucht habe, Bitbanging-ISP über USB zu machen... ...
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.