Hallo, hat jemand erfahrung mit der Experimentierplatine AVR Ctrl. ? Ich muß eine in Betrieb nehmen und scheitere an simplen Dingen. 1. Das Display 16x2 zeigt nur in der ersten Zeile dunkle Blöcke. Die zweite Zeile ist blank. (Spannung liegt an und an den Pin2,4,5 und 12 des Displays liegen 4,9V an. Alle anderen 0V. 2.) Mit dem Programmierkabel (parallel) kann ich Daten einlesen. Sehe leider ohne Display nicht, was er macht und wie man das Programm startet. Gibt es ein Terminalprogramm, wo ich die Abläufe verfolgen kann? 3.) Habe AVR-Studio4 , Bascom und Ponyprog runtergeladen. Leider bekomme ich darüber keinen Kontakt zum AT90S8535. Welches Programm kann den Parallelport unter W2000 ansprechen? Oder sollte ich es lieber mit der seriellen Schnittstelle versuchen. Hoffentlich nimmt sich jemand dieser Anfängerprobleme an. Volker
Hast du einen Link zur Platine? Meistens werden die AVRs über den LPT Port programmiert, der RS232 Port dient oft zu Datenaustausch mit dem bereits laufendem Programm. Schwarze Balken auf LCDs bedeutet meist falsch initialisiert oder einfach das Timing nicht eingehalten (zu schnell initialisiert).
Also ich hab da einiges zum laufen drauf gebracht. Du kannst Ponyprog benutzen, das funktioniert bei mir ganz gut. Wenn du dein Programm kompiliert hast, dann musst du es mit Ponnyprog in den AVR schreiben. Dann läuft es. Starten brauchst du da nix. Und vergiss erstmal das Display. Schwarzer balken ist schon mal nicht schlecht, nur musst du ihm auch Daten schicken u.s.w. Das kannste ja alle später noch üben. Als erstes ist es schonmal gut wenn du die LED´s da oben rechts zum leuchten, blinken oder laufen bekommst. Da gibt es VIELE Demoprogramme für. Ach ja, du solltest dir vieleicht überlegen das ganze in C zu programmieren. Da kannst du dann wohl am besten wählen zwischen Win-AVR oder CodevisionAVR. Ich benutze Win-AVR. Da kann ich machen was ich will, und bin nicht auf diese Gui von Codevision eingeschrängt. Aber das muss jeder für sich selber ausprobieren. Was hast du denn da für einen ISP-Adapter? Das Kabel zum Programmieren meine ich, was bei dir an der Paralellen Schnittstelle steckt. Wenn du das dann alles hast. Platine funktioniert, und die LED´s leuchten wie du dir das gedacht hast, dann kannst hier im Forum mal mit der Auche nach Display ansteuern loslegen. Da findet sich viel, und schon viel fertiges für den Win-AVR. Z.B von Peter Fleury, der hat da eine echt klasse Library für. Die läuft auch auf der AVR-CTRL. Zumindest bei mir. Also solltest du das auch hinbekommen. Liebe Grüsse und hoffe etwas geholfen zu haben. Division Ach ja, wenn du nicht so recht weiter kommst, dann immer fragen. ABER mit GENAUER Beschreibung!!!!!!!! Was geht nicht? Was hast du gemacht? Welche Sprache? Welcher Controller... usw. Mit Beiträgen wie:" Meine Display geht nicht, weiss einer warum" ist immer keinem geholfen. Gute nacht!
Danke Malte und Jan, hier der Link für die Platine http://mikrocontroller.cco-ev.de/de/avr-ctrl.htm Das ist die Platine von mikrocontroller.com. War leicht aufzubauen. Da das Display nicht richtig funktionierte, habe ich aus dem Downloadbereich dieser Seite das Programm LED-Lauflicht geladen. Damit sollten die 8 auf dem Board befindlichen LED`s eine Art Lauflicht erzeugen. Mit dem Programm isp_avr, was auch von dieser Seite stammt, konnte ich es Problemlos über LPT1 einspielen. Die LED`s blinkten aber nur während der Datenübertragung. Lauflicht ging nicht. Auf dr Seite ist für den einfachen Einstieg beschrieben, das Bascom, AVR-Studio oder Ponnyprog nutzbar sind. Alle Programme habe ich getestet. Mein Problem ist die Einstellung der Programme auf den ISP Adapter für das Board. Auch für die RS232 Schnittstelle kam noch keine Kommunikation mit Hilfe dieser Programme zustande. Bin mir sicher, dass es nur eine simple Einstellung sein kann, die mir noch fehlt. Wollte Bascom nur nehmen, um erst mal schnell einen Erfolg zu haben. Später will ich es mit C versuchen. Euer Anfänger Volker
Da das Programm sich ja offensichtlich einspielen lässt, müste es loslaufen sobald der LPT Port nicht mehr den Controller resettet (Low Pegel: Controller wird zurückgesetzt/programmiert, High: Das Programm müsste laufen). Über RS232 kommuniziert der AVR nur, wenn du ihn so Programmiert hast. Bei einem Lauflicht Beispiel dürfte der AVR die Serielle Schnittstelle schlicht ignorieren.
Hi Malte, habe die PINs beobachtet. Reset ist nur während der Programmierung low. Danach high. Also sollte das Programm loslaufen, was es aber nicht tut. Ich habe bei der Programmierung aber eine Warnmeldung erhalten. Warning: more than 8192 Bytes Adress: 04cd Write: 95 Read: 95 Volume: 240% of Eprom 100% of File(1230 Byte) Wenn ich das Demoprogramm für die Tastenabfrage (290 Byte) einspiele, kommt die Warnmeldung (8192 Byte) nicht mehr. Die Meldung 240% of Eprom verstehe ich nicht ganz, wenn das File nur 1230 Byte hat. Gibt es auch ein Programm, mit dem ich den LPT1 Port unter W2000 ansprechen kann? (Porttalk hat nicht funktioniert.) z.Z. spiele ich die .BIN Dateien unter Dos mit isp_avr von der mikrocontroller.com Seite ein.
hört sich ganz so an als wenn du einen Falschen chip ausgefwählt hast in deinem schreibprogramm. Aber ich lasse mich nacher nochmal zu deiner email aus, muss aber jetzt gerade erstmal weg!
Hallo Ihr zwei Helfer, jetzt mal eine Erfogsnachricht. Aus Verzweiflung habe ich mich nochmal mit dem Script für Ponnyprog beschäftigt. (Steht auf mikrocontroller.com) #SELECTDEVICE "AVR Auto" SELECTDEVICE at90s8535 LOAD-Prog main.hex # write withaot Verify WRITE-ALL # Write with verify # WRITE&VERIFY-ALL Damit habe ich wierder einen Kommunikationsversuch gemacht. Sccript geladen und wollte dann Programm auslesen. Dabei kam eine Fehlermeldung, dass es ein unbekanntes Device ist, obwohl ich den At90s8535 eingestellt habe. Nachdem ich das Programmierkabel abgezogen hatte, lief auf einmal das Programm los und auch das Display funktioniert jetzt. Verwunderlich ist nur, warum es vorher nicht lief, obwohl alle Pins außer Reset auch low waren. z.Z. nehme ich isp_avr zum Einlesen der Daten in den Atmel. Danach aktiviere ich das Programm auf unerklärliche Weise mit Ponnyprog. Das wäre mal ein Hinweis an mikrocontroller.com, die ja für Anfänger Platinen bauen. Da kann es an den simpelsten Dingen scheitern.
Das Problem hab ich nich. Bei meiner funktioniert das allses so wie es soll, auch mit dem Stecker dran lassen. Haste vieleicht nen Widerstand vergessen auf der Platine?
Hi Jan, habe jetzt alle Programme mit isp_avr zum laufen gebracht. Das kuriose ist aber, dass ich das Programm erst lade mit isp_avr /lpt1 /data out.bin und es funktioniert nicht. Danach mache ich isp_avr /lpt1 /erase out.bin und das Programm startet sofort. Muß ich den Speicher auch mal löschen? habe nämlich nach jedem mal erase ein vorher geladenes Programm zum laufen gebracht. Bei Ponnyprog habe ich es mit der Einstellung für das Interface DT006 I/O versucht. Obwohl die LED´s beim laden blinken (aber nur2) kommt die Fehlermeldung unknown device. Was sind Fuse und Lock bits? muß ich da auch noch was verändern?
Mit den Lock Bits kannst du verhindern, dass der AVR neu Programmiert werden kann oder das bereits programmierte Programm wieder ausgelesen werden kann. (Beides dürfte für Privatnutzer uninterressant sein, also besser nichts ändern). Mit den Fusebits kann mann weitere Parameter einstelle, z.B. Reset deaktivieren (ACHTUNG, dann lässt sich der Chip nur noch mit einem teuerm Programmer wieder programmieren, ist bei deinem Chip speziell aber nicht möglich) oder Bootloader Aktivieren, zwischen internem/externem Quarz wählen. Genaues steht mit Datenblatt des Controllers.
Danke! Da werde ich nichts verändern. Ich bin aber immer noch auf der Suche nach einer komfortablen Lösung. Da Bascom und Ponnyprog nicht mit dem Board arbeiten, habe ich mir Win AVR geladen. Jetzt kann mir hoffentlich jemand sagen, wie ich Win AVR einstellen muß, um über LPT1 zu programmieren. Oder wenigstens über RS232 Daten zu lesen. Freue mich über jeden kleinen Schritt, der mir es endlich ermöglicht ein Programm zu schreiben und einfach in den Controller zu laden. Mössen alle Dateien , die ich in den Controller lade .bin sein?
Um das Programm in den Controller zu laden kannst du (bei deinem Controller/Board) prinziepiell nur den LPT Port verwenden. Wenn du den RS232 Port benutzen möchtest, der ermöglicht dir den Datentransport zwischen PC und AVR oder zwischen AVR und einem zweiten AVR. Dazu solltest du aber don Controller schon ein wenig kennen. Prinziepiell musst du für RS232 drei Register setzen. UDR, um ein einzelnes Datenbyte zu senden/empfangen. UCR, um RS232 übehaupt zu aktivieren UBRR, um die Geschwindigkeit zu wählen. Wie du genau die Register setzten musst, steht in dem Datenblatt des AT90S8535, das solltest du dir auf jedenfall (wenn nicht schon getan) mal downloaden und ansehen (gibts kostenlos auf der Atmel Webseite, nicht die summary, sonder die komplette Version laden). Die Pinbelegung des LPT Ports kenn ich nicht, leider gibt es da mehrere, so dass ich nicht weiß welcher Programmer mit der Belegung funktioniert (ist die dritte Belegungsmöglichkeit die ich sehe).
Hallo Ihr Helfer, habe es jetzt endlich mit Ponnyprog geschafft. Mein Kabel war für isp_avr geeignet und bei Ponnyprog ist die Pinbelegung anders. Da muß ich dem Entwickler der Platine einen Vorwurf machen. Ein Hinweis für Anfänger zu Betriebssystem und funktionsfähigen Programmen hätte mir mindestens 8 Stunden probieren erspart. Jetzt muß ich nur noch die Hürde überwinden, wie ich mit Win AVR oder AVR Studio 4.0 ein C-Programm als .hex File compilieren kann. Dann kann ich hoffentlich langsam mitreden und endlich ein eigenes Programm testen. Also Danke für die 1. Hilfe!
Hallo Volker, Du hast das Program in den EEPROM-Speicher geladen, weil Du isp_hb mit dem Parameter /data gestartest hast. Wenn Du das weg lässt, landet das Programm im Flash /erase benötigst Du immer. Auf dem Schaltplan zur AVR_ctrl ist das Interface zu ISP_AVR beschrieben, das läuft ja bei Dir auch. Auf der Mikrocontroller.com-HP findest Du aber auch, wie man Ponyprog damit zum laufen bekommt. CVAVR schon mal getestet? Gruss, Holger
Hallo Holger, zuerst mal einen Hinweis: Die Platine funktioniert super, wenn erstmal die Kommunikationshürde zum PC überwunden ist. Das mit isp_avr hat ja funktioniert. War eben "nur" in Dos möglich. Wo ich da was hingeladen habe, stand nicht in der Beschreibung oder wurde übersehen. Mit erase habe ich die Programme wieder gelöscht. Kurios war nur, das dann das vorhergehende Programm wieder zum laufen kam. (Flash/Eprom startet das Programm aus dem Flash und auch aus dem Eprom?) Mit Ponnyprog ist jetzt alles o.k. (Kabel ist anders als bei ISP_avr.) Da wird es mal Zeit, dass sich alle an die Belegung vom Atmel-Kabel halten und somit der Kabelsalat nicht mehr notwendig ist. Ein einfacher aber evtl. sinnvoller Standard. Ein Hinweis für alle Anfänger muß bei jeder Platine vorhanden sein, die nicht "Standardware" ist. z.B Mit welchem Betriebsystem die Programme funktionieren und die typischen Startprobleme (die ein Profi sich schon gar nicht mehr vorstellen kann). Einfaches Demo mit Compiler für Bascom und C. Und auch für Assembler ein Demo. (Mit Einstellungsbeispiel für Editor und Compiler)Damit kann ein Anfänger schnell starten und sich in die Materie vertiefen. Ich war fast so weit, wieder vollkommen auf Dos umzusteigen. Denkst Du, dass ich mit dem At90S535 und dem Board eine Schaltung mit Funkuhr, Analogeingang, TTL Ausgang, und dazu eine Tastenabfrage zur Veränderung von 8 Variablen, die im Programm vordefiniert sind realisieren kann? Die 5 Tasten sollen als hoch, runter, rechts,links und enter/Menü definiert werden. Oder ist das Board zumindest erst mal die Grundlage für mein Vorhaben und der MC muß nur getauscht werden. Viele Grüße Volker
Deine geplante Uhr dürfte mit den genannten Funktionen sicherlich in einen AT90S8535 passen. Nur werden dir wahrscheinlich danach noch eine ganze Reihe nützlicher Zusatzfeatures einfallen und dann könnte es langsam knapp werden. Heißer Tip mach nicht den Fehler (wie ich) und packe die Texte fürs LCD in den RAM - der füllt sich sonst in Null Komma Nichts - sondern lass sie im Flash. Stichwort: PROGMEM
Hallo Volker, zufällig habe ich gerade ein Funkuhr-Programm für die AVR-Ctrl fertig. Vielleicht füge ich eine Tastaturoutine und eine Analogeingabe mit ein. Die findest Du dann auf unserer Homepage. Wenn ich Deine eMail-Adr hätte, könnte ich das DCF77-Progamm schon schicken Die Funkuhr soll noch in meine Heizungssteuerung rein Gruss, Holger
Hallo Holger, würdest du mir eventuell den Code für die Funkuhr überlassen? Ist der in C? Würde mich freuen, wenn du mir den mal mailen würdest. Liebe Grüsse Division
Hallo, @ Malte Danke für den Tip mit dem Flash. Werde bald die ersten Versuche starten. Mit Progmem komme ich nicht ganz weiter. War wahrscheinlich mein erster Fehler mit ISP_avr und /data Zusatz. Holger hatte mich darauf hingewiesen. @ Holger Meine Mail steht auch weiter oben und ist ut@studentenhausleipzig.de Die Funkuhr nutzt Du für Deine Heizungssteuerung bestimmt zur Steuerung der Heizzeiten. Hast du auch an eine Routine gedacht, in der die verschiedenen Zeiten über Tastatur frei verändert werden können? Mit so einem Board wird es 100%-ig funktionieren, sage ich mal als Wiederanfänger. Übrigens von Jan habe ich auch super Unterstützung erhalten. WinAVR oder Codevision? WinAVR soll besser und "billiger" sein.
Progmem bezieht sich auf den Quelltext, nicht auf den Programmer. Als Beispiel folgender Ausschnitt aus einem Programm von mir: u08 rs232rausstring[36]; const char linielang[] PROGMEM = "---------------------------------"; const char zeitmaske[] PROGMEM = "Zeit: xx xx:xx Datum: xx.xx.xxxx"; void newscreen(void) { const char wochentage[] = "MoDiMiDoFrSaSo"; calcweekday(); //Damit der Wochentag sofort richtig angezeigt wird rs232sendstring(); strcpy_P(rs232rausstring,linielang); [...] } Der c-Compiler (ich verwende gcc aus winavr) hat hier nichts besseres zu tun als wochentage[] sofort aus dem Flash in den RAM zu kopieren, egal ob jemals drauf zugegriffen wird oder nicht. linielang[] und zeitmaske[] bleiben dank PROGMEM im Flash (und verbrauchen somit erstmal keinen RAM). Dann kopiert bei mir der Befehlt strcpy_P linielang[] in den RAM. rs232rausstring[] liegt im RAM und enthält dann eine Kopie von linielang[]. Mit der Kopie kann dann normal gearbeitet werden.
Bin zufällig auf eine Seite gestoßen, die eine Tabelle mit den verschiedenen LPT Pin Belegungen der Programmer enthält. http://www.klaus-leidinger.de/mp/Mikrocontroller/meinetools.html#Atmel%2090Sxxxx
Hallo Malte, hätte ich sagen müssen. Nur durch den Hinweis auf der Seite bin ich auf meinen Fehler gestoßen. Ist eben von Vorteil, wenn sich Leute entweder auf einen Standard einigen oder wie dort geschehen, eine Übersichtliche Tabelle erstellen. Irgendwo habe ich sogar ein guten Einfall gesehen. Da hat einer ein Multifunktions-ISP Adapter gebaut. Mit PIN-Umschalter für alle gängigen Programme. Aber vermutlich brauch man das nur am Anfang seiner Programmierübungen. Danach steht ja sowieso fest, mit welchem Programm man weiter arbeiten will. Ich schwanke noch zwischen Assembler, was länger dauert und C über WinAVR oder Codevision.
Hallo, mein DCF77-Programm habe ich mal gerade angehängt. Der Empfänger wird an den ExtInt1 angeschlossen. Polarität sollte egal sein. Die Uhr läuft normal weiter, wenn der Empfang abbricht. Wichtig war mir dabei die Sicherheit, weil das in meine Heizung soll. Der Sekundentakt wird langsam auf den DCF77-Takt synchronisiert. Das Hex-File für die AVR-crtl kann ich auch mal schicken. Wenn ich mal Zeit habe, landet das bei: http://www.mikrocontroller.com Gruss, Holger
hatte die selben probleme sample electronics programmer aufbauen mit tesprogramm testen an lpt 1 Bascom avr starten programmer einstellen auf "sample electronics programmer compiler einstellen auf deinen chip 90s8535 Lcd einstellen nach deinem lcd "bsp. 16*2" und die leitungen einstellen ein Bsp. starten config lcd ______ Bascom ist genau richtig für den anfang versuchs mal henry
Hallo Ihr Helfer, habe alles mit Bascom gestartet. War einfacher. Wenn ich mal Zeit habe, dann wird es auf jedenfall C. z.Z. Läuft das Temperaturprogramm, Analogwerterfassung und Tastenfunktion gleichzeitig in einer Schleife. Wenigstens ein kleiner Erfolg! Meine fehlerhafte Temperaturmessung auf der AVR-Ctrl Platine beruht hat 2 Gründe: 1. zuviel Wärmeentwicklung des 5V Reglers, der in der Nähe des 1820 ist. 2. Es werden neuerdings immer ca. 70°C angezeigt. Ich ziehe dann den Wert 140 ab und schon habe ich die richtige Temperatur. Ob es ein Sensorfehler ist, weiß ich aber nicht. Wie weit ist denn die Funkuhr und wie kann ich das C file mit Winavr nutzen? Viele Grüße Volker
Hallo, ich will es kurz machen: Ich bin Anfänger und gerade dabei meine Platine(ATMEGA32 Contollerboard) mit aufgespielten Boardlader zu verstehen. Das Testprogramm läuf einwandfrei, nun will ich aber dieses Programm wieder löschen....?..daher meine Frage: Wie löscht man ein gespeichertes Programm im Mega32 aber ohne diesen Boardlader gleich mit zu löschen?
So alte Diskussionen gräbt man nicht mehr aus, wenn man ein brennendes aktuelles Problem hat. Der Bootloader muss sich sich darum kümmern, das alte Programm zu löschen, bevor das neue Programm ins Flash geschrieben wird. Und das machen anständige Bootloader auch. Das übliche Chip Erase in der AVR-ISP-Programmiersoftware, das du vielleicht vom normalen Flash-Programmieren kennst, solltest du nicht machen, denn das würde den Flash komplett inkl. Bootloadercode löschen.
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.