Hallo µC-Profis, vielleicht kann mir jemand von Euch einen Rat zu folgendem Problem geben: Ich bin Mikrocontroller-Anfänger mit einigen Elektronik-Grundkenntnissen und möchte mich in die AVR-Programmierung einarbeiten. Habe mir hierzu das Lehrbuch von Roland Walter besorgt (Spitze gemacht) und das darin vorgestellte Experimentierboard auf Lochstreifenrasterplatine aufgebaut. Da mein alter Rechner (mit Windows 98), den ich zu diesem Zeitpunkt hatte, eine furchtbar schlechte parallele Schnittstelle hatte (High-Pegel bei 1,6 V!), habe ich auf einem Experimentierboard einen SP12-Bustreiber mit Transistoren und Leuchtdioden zur Anzeige der Aktivität der einzelnen Kanäle aufgebaut. Damit konnte ich einen ATMEGA 8 direkt aus BASCOM heraus brennen (Einstellung "Universal MKS Interface" und "WinAVR and SP12"). Habe damit die ersten Übungsbeispiele von Roland Walter durchgearbeitet und war glücklich. Brennen und Auslesen des ATMEGA 8 funktionierten ohne Probleme. Ich hielt es dann für eine gute Idee, wegen häufiger Win98-Abstürze meinen Rechner aufzurüsten und auf Windows XP umzusteigen. Also neues Mainboard besorgt, neue CPU, Speicher, Festplatte und Grafikkarte eingebaut und XP installiert. Prima, läuft endlich wieder stabil, bin sehr zufrieden. Aber: Nun kann ich meinen vorher schon programmierten ATMEGA 8 zwar auslesen (BASCOM erkennt auch selbständig den richtigen Typ ATMEGA 8), aber nicht mehr überschreiben. Ich habe auch gemäß Roland Walters Hinweis auf S. 31 den Treiber userport.sys installiert und gestartet. Es geht aber trotzdem nicht. Elektrische Probleme am AVR kann ich, denke ich, ausschließen. Ich habe zigmal die Spannung an den AVR-Pins (und zwar wirklich direkt an den Pins) Reset, Gnd, Vcc, SCK und MOSI bei sowohl High-Pegel, als auch Low-Pegel an den LPT-Pins 2, 3 und 9 gemessen. Ergebnis: 4,99 V bei High-Pegel und 0,12 V bei Low-Pegel, Gnd natürlich 0,00 V. Bei AVR-MISO High- und Low habe ich 4,99 V und 0,28 V an LPT-Pin 11. Das müsste doch passen, oder? Beim Brennversuch flackern alle vier Leuchtdioden für MISO, MOSI, SCK und Reset, also kommt offensichtlich ein Signal aus dem LPT-Port raus. Die Pegel am AVR passen auch. Warum klappt das mit dem Brennen dann nicht (Grübel und Kopfkratz....)? Vielleicht habe ich ja aus irgendeinem Versehen beim letzten erfolgreichen Brennen unter Win98 unwissentlich irgendein Fusebit verstellt. Also programmierten ATMEGA 8 raus aus der Fassung und jungfräulichen, fabrikneuen ATMEGA 8 rein in die Fassung. Brennversuch, Leuchtdiodenflacker, nix is programmiert. Warum klappt das nicht (Grübel und großes Kopfkratz....)? Vielleicht liegt es ja doch am userport.sys. Im Gerätemanager stehen bei den Ressourcen für den LPT-Port folgende Einträge: "E/A Bereich 0378-037F", "E/A Bereich 0778-077B" und "DMA 03". Ich konnte aber nur den ersten E/A Bereich in den userport.sys übernehmen, den zweiten E/A Bereich von 0778-077B nicht, denn dort lassen sich nur Werte zwischen 000 und 3FF eingeben. Kann es also daran liegen, dass dieser zweite E/A Bereich des LPT-Ports nicht vom userport.sys freigeschaltet ist? Ich wäre sehr dankbar, wenn mir hierzu jemand einen Rat geben könnte, denn ich weiß nun wirklich nicht mehr, wo der Fehler noch liegen könnte. Besten Dank schon im voraus! Viele Grüße franko22
mal im abgesicherten Modus versuchen. Da werden keine Treiber geladen und dann gibt es da auch weniger Timing Probleme. Zumindest einen Versuch wäre es ja wert. Auch wenns dann nicht hilft. mfg
ui wenn du frisch dabei bist dann schau dir doch lieber das C Tutorial hier im Wiki an. Glaub da hast du mehr Spass und Freiheit als mit Bascom.
Ein richtiger Programmer mit eigenem Prozessor wird das Timing problem nicht haben.
@Benedikt Sauter, C ist als Programmiersprache mächtiger, keine Frage, zumindest je nachdem was man damit anstellen möchte. Aber Bascom ist für Einsteiger einfacher und führt schneller zum ersten Erfolg, so zumindest meine Erfahrung als ein Kollege in die uC-Sachen eingestiegen ist. :)
Hallo Leute, vielen Dank schon mal für Eure Hinweise. Ich verstehe noch nicht ganz, was ein "Timingproblem" ist. Tritt das dann auf, wenn mehrere Programme gleichzeitig versuchen, auf den LPT-Port zuzugreifen? Oder muss ich für den LPT-Port irgendwo in der Systemsteuerung eine bestimmte Frequenz oder Geschwindigkeit einstellen, wie bei den seriellen Ports? Oder muss ich in BASCOM irgendwo den Prozessortakt oder den FSB-Takt angeben? Ich habe auf jeden Fall mal den Tip von quehl aufgegriffen und XP im abgesicherten Modus gestartet. Konnte damit aber BASCOM leider nicht starten. Es kam die Fehlermeldung "Access violation at address 004E7617 in module "bascavr.exe". Read of address 0000005C." Dementsprechend konnte ich natürlich auch nichts Brennen. @ sechsnullfuenf: Meinst Du mit einem "richtigen Programmer mit eigenem Prozessor" so etwas wie das STK 500 von Atmel? Ich denke in der Zwischenzeit ernsthaft daran, mir so etwas zuzulegen. Denkt Ihr, dass das Brennen mit dem STK 500 klappen würde? Und kann man damit sonst noch etwas machen, was mit dem Rowalt-Board nicht geht? Vielen Dank und viele Grüße franko22
Hallo, wenn du deine AVRs "in System" Proggen willst reicht zum einstieg auch nen einfaches AVRISP (die sind mittlerweile sehr günstig) oder nen AVR910 Progger. Ich würde dir wenn du aber selbst nen Programmer bauen willst lieber gleich raten einen mit USB-Anschluß zu bauen, da die Paralell/seriell-Schnittstelle langsam aber sicher am Aussterben ist. Je nach Anwendung bringt die USB-Variante auch gleich die Stromquelle für kleinere Schaltungen mit. :) Was ich dir an USB-Proggern empfehlen kann, der Progger von Benedikt Sauter ist sehr gut den hab ich für mich selbst und auch schon für einige Kollegen die keine möglichkeit zum Ätzen haben gebaut. Astrein das Ding. Stand letztens auch in der Elektor.
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.