Probleme beim AVR programmieren

Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 18 10 2024  14:22:14      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Osziloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Microcontroller        Microcontroller : Hardware - Software - Ideen - Projekte

Gehe zu Seite ( 1 | 2 | 3 Nächste Seite )      


Autor
Probleme beim AVR programmieren

    







BID = 421249

bastler16

Schreibmaschine

Beiträge: 2140
Wohnort: Frankreich
 

  


Ich hab ein blödes Problem:
Ich will anfangen mich mit AVR zu beschäftigen. Um einen Atmega8 zu programmieren hab ich jetzt den Adapter von roboternetz.de nachgebaut: http://www.roboternetz.de/wissen/images/6/6b/Ispschaltplan.gif
Leider sind die Pins an der Sub-D Buchse nicht die selben wie am "Wannenstecker" . Ergebnis: Falsch gelötet
Ich hab jetzt den Adapter korrigiert, aber schaffe es immer noch nicht den Atmega8 zu programmieren (div. Beispielprogramme von roboternetz.de probiert), dazu kommt vielleicht noch ein Topic wenn ich den Fehler nicht finde.

Ich bin mir nicht sicher ob der Atmega8 den falsch angeschlossenen Adapter überlebt hat. Stromverbrauch ist 0mA, mein Multimeter ist da nicht sehr genau. Wie kann ich testen ob der µC noch funktioniert ohne ihn programmieren zu müssen?
Ich hab leider kein Ersatz da um ihn auszutauschen

Bitte keine Kommentare à la "hättest besser aufpassen müssen", ich will nur den Fehler eingrenzen und es schaffen meinen AVR zu programmieren

[/Edit] Titel auf Wunsch von bastler16 geändert

[ Diese Nachricht wurde geändert von: Jornbyte am 19 Mai 2007 22:51 ]

BID = 421252

Jornbyte

Moderator



Beiträge: 7155

 

  


Zitat :
Bitte keine Kommentare à la "hättest besser aufpassen müssen"

Nö Nö
Ist der mega8 richtg rum in der Fassung? Bekommt er Spannung? Ist die Schaltung genau geprüft (Durchgang / Kurzschluss)? Ist ein Takt am mega8? Ist ein 100n an den Versorgunspins? Wie ist der reset beschaltet?

_________________
mfg Jornbyte

Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.

BID = 421255

bastler16

Schreibmaschine

Beiträge: 2140
Wohnort: Frankreich


Zitat :
Nö Nö



>Ist der mega8 richtg rum in der Fassung?
Ja, ich hab das ganze auf Steckbrett getestet.

>Bekommt er Spannung?
5V über 7805

>Ist die Schaltung genau geprüft (Durchgang / Kurzschluss)?
Auf dem Steckbrett ist alles OK, den Programmieradapter hab ich nochmal gemessen, alles OK.

>Ist ein Takt am mega8?
Nein, laut Datenblatt hat der einen internen Takt

>Ist ein 100n an den Versorgunspins?
Ja

>Wie ist der reset beschaltet?
10k gegen Plus

BID = 421261

DonComi

Inventar



Beiträge: 8605
Wohnort: Amerika

Welche Programmiersoftware nutzt du?

Welche Fehlermeldungen werden ausgespuckt?

Was exakt war am Adapter falsch angeschlossen?

_________________

BID = 421271

bastler16

Schreibmaschine

Beiträge: 2140
Wohnort: Frankreich

Eigentlich wollte ich nur wissen wie ich meinen Atmega8 testen kann
Aber das eigentliche Problem muss ja auch noch gelöst werden.

Also (Ich machs mal stichpunktartig, das wird nicht so lang):
-Ich nutze die Bascom-Demo Version 1.11.8.3
-Ich hab die Pinnummern am Sub-D Stecker (s. Schaltplan) für den "Wannenstecker" übernommen.
-Fehlermeldungen:
"Could not identify chip with ID:FFFFFF" (bevor ich die falschen Verbindungen bemerkt und korrigiert hab war die ID 000000)
und danach
"Selected Chip and target chip do not match AT90S2313 <> ATmega8".

-Für den LPT1 ist im Bios ECP eingestellt, Adresse ist Standart 378.

Ich vermute entweder:
-der Atmega8 ist
-der Treiber 74hc244 ist (dafür hab ich Ersatz wenn die Reicheltbestellung ankommt, hab leider vergessen einen weiteren mega8 zu bestellen )
-der LPT-Port ist ungeeignet.

Ich hab halt noch keine Ahnung von dem ganzen Kram.

Messmittel: DMM, Oszilloskop


---
@Jornbyte: Du bekommst gleich Post

BID = 421277

DonComi

Inventar



Beiträge: 8605
Wohnort: Amerika

Den Schaltplan kann man nicht ansehen.

Überleg dir nochmal, ob du dir wirklich Basic antun willst.

Ich würde dir wärmstens C empfehlen.


---

Ist der Programmer denn überhaupt kompatibel mit dem BASCOM-Programmiertool?

_________________

BID = 421282

Max Power

Gesprächig



Beiträge: 157
Wohnort: Aadorf (CH)
Zur Homepage von Max Power

Ich kenne zwar Bascom nicht, aber wenn ich diese Fehlermeldung richtig interpretiere: "Selected Chip and target chip do not match AT90S2313 <> ATmega8", dann hat er doch einen ATmega8 erkannt, aber ausgewählt wurde ein AT90S2312. Oder sehe ich das falsch?

BID = 421284

bastler16

Schreibmaschine

Beiträge: 2140
Wohnort: Frankreich

Warum kann man sich den Schaltplan nicht ansehen?


Zitat :
Überleg dir nochmal, ob du dir wirklich Basic antun willst.

Ich würde dir wärmstens C empfehlen.

Was hast du gegen Basic? (du programmierst in Assembler wenn ich mich richtig erinnere oder?)
Sicherlich nicht die effizienteste Sprache, aber für den Anfang probier ich es damit. Wenn ich etwas mehr Ahnung von der Materie hab kann ich mir C ja mal anschauen.


Zitat :

Ist der Programmer denn überhaupt kompatibel mit dem BASCOM-Programmiertool?

Also laut Roboternetz.de ist er das. Ich hab mich an das Tutorial gehalten, nur eben mit dem Mega8 (hab die entsprechenden Pins im Netz nachgeschaut), der ist preiswerter.
http://www.roboternetz.de/wissen/in.....macht
http://www.roboternetz.de/wissen/in.....ragen

@Max Power
Also von "AT90S2312" hab ich noch nie was gehört oder angeklickt... Ich werd mal sehen ob ich eine deutsche Hilfedatei für Bascom finde (aber erst morgen, is schon spät *gähn*).

EDIT:
Ich hab noch einen Attiny12 gefunden (woher auch immer), werd damit mal basteln.

EDIT2:
Mir ist noch was eingefallen. Die Fuses hab ich nicht angefasst, wenn ich auf den Reiter im Programmer klicke kommt "READLB entry not found".

[ Diese Nachricht wurde geändert von: bastler16 am 10 Apr 2007 22:55 ]

BID = 421334

Dombrowski

Stammposter



Beiträge: 450

Moin.

Link/Bild: Es funktioniert nur Rechts-Klick und "Link speichern unter..." (oder je nach Browser). Direkt/Links-Klick geht nicht. Und das herunter geladene Bild ist dann auch wirklich scharf im Gegensatz zum Wiki-Bild bei roboternetz.de.

Der LPT Mode soll SPP (Standard Printer Port) sein. Wenn ECP unbedingt bleiben soll, dann im Extended Control Register (ECR) auf Standardmode zurückschalten. Das ECR liegt auf I/O-Addr. 77Ah, wenn die Basisadresse 378h ist. Das ECR existiert nur im ECP Mode. Gute Beschreibung z.B. auf www.beyondlogic.org

Vor den ersten Schreibversuchen erstmal mit Auslesen von Signatur und Fuses anfangen.

D.




BID = 421349

bastelheini

Schriftsteller



Beiträge: 618
Wohnort: Sachsen

@Max Power

das liegt aber nicht daran das Bascom den Chip erkennt sonder welche Definitionsdatei du im Kopf deines Programmes hingeschrieben hast....ich dachte auch erst er hat ihn erkannt......war aber net so

_________________
-----------------------------
---MfG Bastelheini---
-----------------------------

BID = 421365

bastler16

Schreibmaschine

Beiträge: 2140
Wohnort: Frankreich

Das Bild kann ich direkt per Mausklick öffnen. (FF2.0.0.3, Win XP)


Zitat :
Der LPT Mode soll SPP (Standard Printer Port) sein. Wenn ECP unbedingt bleiben soll, dann im Extended Control Register (ECR) auf Standardmode zurückschalten. Das ECR liegt auf I/O-Addr. 77Ah, wenn die Basisadresse 378h ist. Das ECR existiert nur im ECP Mode.


Ich hab jetzt den LPT auf SSP umgestellt, keine Besserung.


Zitat :

Vor den ersten Schreibversuchen erstmal mit Auslesen von Signatur und Fuses anfangen.

Danke für den Tipp.

Mein Programm sieht so aus:


Code :

$regfile = "m8def.dat"

$crystal = 1000000
Do
Loop



Im Anhang mal die genaue Beschaltung des mega8, eventuell ist da was falsch.

Meine Reicheltbestellung sollte heute ankommen, dann tausch ich testweise den 74hc244 aus, vielleicht ist der kaputt.

Vielen Dank für die Hilfe





BID = 421407

DonComi

Inventar



Beiträge: 8605
Wohnort: Amerika

An Pin 22 muss GND, an 22 die positive Versorgung.
Das ist im letzen Teil nicht zu sehen, wenn du es vergessen hast, dann wäre es eine mögliche Ursache.

Edit:

Ergänze mal dein Programm so, dass sich das messen lääst, z.b. so:
LED an PORTB0 o.ä. ran und dann folgendes:


DDRB = DDRB or 1
(in C viel schöner machbar:
DDRB |= 1<<DDRB0;
)

Do
waitms 100
PORTB = PORTB xor 1

Loop

Damit wird der Zustand des Bits0 von PortB ungefähr alle 100ms gewechselt.

Da gleiche in C:

while(1)
PORTB ^= 1<<PORTB0;

Edit2: ok, wohl etwas zu schnell

Eher so:

while(1)
{
delay(); //irgendeine Routine zum sinnlosen Verzögern
PORTB ^= 1<<PORTB0;
};


Sieht doch schöner aus, oder?





_________________


[ Diese Nachricht wurde ge&auml;ndert von: DonComi am 11 Apr 2007 15:37 ]

[ Diese Nachricht wurde geändert von: DonComi am 11 Apr 2007 15:40 ]

BID = 421422

bastler16

Schreibmaschine

Beiträge: 2140
Wohnort: Frankreich


Zitat :
An Pin 22 muss GND, an 22 die positive Versorgung.

Beides gleichzeitig?

An 22 muss GND, aber wohin muss dann die Versorgung? Pin 20?



Code :


$regfile = "m8def.dat"
$crystal = 1000000
DDRB = DDRB or 1
Do
waitms 100
PORTB = PORTB xor 1
Loop


Ist das so richtig? Stimmt eigentlich die Frequenz $crystal? (keine Ahnung wie wichtig das ist)


Zitat :

Sieht doch schöner aus, oder?

Ich find das ziemlich gleich. Die Klammern {} kenn ich aus JavaScript, die machen große Programme übersichtlicher.
Jedem seine Programmiersprache, für den Anfang nehme ich Basic

BID = 421440

DonComi

Inventar



Beiträge: 8605
Wohnort: Amerika


Zitat :

An Pin 22 muss GND, an 22 die positive Versorgung.

Mein Fehler.
Pin 22: GND;
Pin 20: VCC.


Zitat :

Ist das so richtig?

Ja, das Progrmm sollte so lauffähig sein; das äußert sich im Blinken der LED.

Zitat :

Stimmt eigentlich die Frequenz $crystal? (keine Ahnung wie wichtig das ist)

Die Frequenz (also der Takt der CPU) wurde ja nicht geändert, daher sind 1000000Hz richtig.
Wichtig ist das für zeitbasierte Routinen, beispilesweise Berechnung der Baudrate, Timer, Verzögerungsschleifen wie wait (Sekunden), waitms (Millisekunden) und waitus (Mikrosekunden).

Zitat :

[...] die machen große Programme übersichtlicher.

Nicht nur übersichtlicher; sie sind essentiell.


Zitat :

Jedem seine Programmiersprache, für den Anfang nehme ich Basic

*zustimm*


_________________

BID = 421505

bastler16

Schreibmaschine

Beiträge: 2140
Wohnort: Frankreich





Es liegt entweder am Programmieradapter oder am LPT.
Ich hab alle Ratschläge beachtet, Programm erweitert, Pin 20 u. 22 angeschlossen, alles kontrolliert und nachgemessen.
Ergebnis: Die selben Fehler

Danach hab ich den mega8 gegen einen tiny12 getauscht, "leeres Programm" (ohne den LED-Kram) geschrieben, tiny12 richtig verdrahtet (Datenblatt).
Ergebnis: Immernoch die selben Fehler

Den IC im Adapter hab ich vorher ausgetauscht, der funktioniert garantiert (direkt aus der Verpackung in die Fassung).

Ich werd das ganze mal an einem anderen PC testen wenn ich Zeit finde. Wenn es dann immernoch nicht geht wandert der Adapter in den und ich bestell den Bausatz bei Roboternetz.de oder irgendwo anders.

Trotzdem Danke für die Hilfe


      Nächste Seite
Gehe zu Seite ( 1 | 2 | 3 Nächste Seite )
Zurück zur Seite 0 im Unterforum          Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 22 Beiträge im Durchschnitt pro Tag       heute wurden bisher 8 Beiträge verfasst
© x sparkkelsputz        Besucher : 182195835   Heute : 2242    Gestern : 4612    Online : 516        18.10.2024    14:22
2 Besucher in den letzten 60 Sekunden        alle 30.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.123198986053