Forum: Mikrocontroller und Digitale Elektronik DM9000A-Problem


von dnb (Gast)


Lesenswert?

Hallo,

ich habe ein kleines Problem mit meinem DM9000A PHY/MAC-Baustein. Beim
Empfangen bekomme ich nur ein Interrupt vom DM9000A wenn das Paket an
die Broadcast-MAC gerichtet ist. Pakete die an meine MAC gerichtet
sind, bekomme ich nicht. MAC-Adresse habe ich in den Registern 0x10 bis
0x15 abgespeichert, und diese stimmt wenn ich sie wieder auslese. Das
RX-Control-Register ist ebenfalls richtig gesetzt. Selbst im
"Promiscuous Mode" bekomme ich keine Interrupts.
Hat jemand eine Idee, wo dran es liegen könnte? Muss ich die
MAC-Adresse vielleicht auch in das SROM und EEPROM schreiben?

MfG  =>dnb<=

von bone (Gast)


Lesenswert?

wenn ich mich nicht irre (ziehe nochmal das datenblatt hinzu)

kann die dm9000-familie drei maskierte interrupts...
-bei broadcast
-bei multicast
-und MAC

schau dir mal die interruptregister des chip nochmal genauer an...

von dnb (Gast)


Lesenswert?

ich habe nachgeschaut,

Register 0x05 (RX Control Register):
    rx-enable (aktiviert),
    promiscuous mode (aktiviert),
    pass runt packet (aktiviert),
    pass all multicast (aktiviert),
    discard crc error packet (deaktiviert),
    discard long packet (aktiviert),
    watchog timer (aktiviert)

Register 0xFF (Interrupt Mask Register)
    enable packet received irq
    enable packet transmitted irq
    enable receive overflow irq
    enable receive counter overflow irq
    enable transmit underrun irq
    enable link status change irq
    enable sram pointer return to start
    (alle irqs bei mir aktiviert)

hat vielleicht jemand eine idee?

von Tobias (Gast)


Lesenswert?

Hallo,

meine Frage passt nicht ganz zur Hauptfrage, aber passt zum Produkt.
Ich habe den DM9000A bereits vor mir liegen. Ich will den DM9000A an
einen Atmel ATmega64L (3,3V) anschließen.
1. Frage
Kann ich den DM9000A auch an einen 5V Variante eines Atmel AVR
Controller anschließen, was wäre dann nötig.
2. Frage
Wo schließe ich den DM9000A an? An  normalen I/O Pins oder an das
Speicherinterface?
Hat vielleicht jemand eine Schematic dazu.

von dnb (Gast)


Lesenswert?

Hallo,

bei Davicom im Application Notes vom DM9000A sind die Grundschaltungen
drin. Die aktuelleste Version die ich finden konnte für den DM9000A ist
die Version 1.20, findet man bei Altera --> DE2 Board -->
ftp://ftp.altera.com/up/pub/de2/DE2_System_v1.1.zip . Wenn die
Beschaltung genauso gut ist, wie der Rest der dort beschrieben ist
(oder eher auch nicht), dann viel Spass.

MfG  =>dnb<=

von Jörn (Gast)


Lesenswert?

@Tobias:

Ich betreibe zur Zeit einen DM9000E mit einem ATMega32-16. Die beiden
sind über Serienwiderstände miteinander verbunden und der Davicom hat
sich noch nicht über die 5V Pegel beschwert. Bei Interesse kann ich dir
das Layout zukommen lassen.

Gruß Jörn

von Tobias (Gast)


Lesenswert?

@dnd
Vielen Dank für die Schematics. Die Application Notes für den DM9000A
ist ziemlich interresant, hatte ich bis dahin noch nicht. Muss mich
aber erst noch richtig darin einarbeiten. Das Altera DE2 ist höchst
interessant, hast du es dir gekauft? Die vielen Chips für VGA, Audio,
... sind echt klasse.

@Jörg
Auch vielen Dank für deine Beitrag. Meine sorge ist nicht die
Verbindung von µC zum DM9000A, da der DM9000A 5V tolerante Eingänge
hat. Was mir sorge bereiten würde, wenn ich einen 5V AVR nehme, dass
der AVR vermutlich keinen High Pegel erkennen kann, oder? Weil bei dem
DM9000A  fängt der High Pegel ab 2,4V an. Bei einem AVR fängt der High
Pegel (als Eingang) bei 0,6*VCC also bei 5V VCC fängt der High Pegel
erst bei 3,0V an. Hätte lieber die 5V Variante, da ich den AVR bis zu
16Mhz betreiben kann, doppelt so schnell als bei der L Variante.
Das E bei DM9000_ steht wohl für Embedded System Development Board,
oder liege ich da falsch. Denn ich kann jetzt keinen speziellen
DM9000E finden. Wenn ich richtig liege, ist es dann ein DM9000 oder
DM9000A oder keine Ahnung. Es wäre echt super von dir, wenn du mir dein
Layout zukommen lassen könntest. Entweder hier rein stellen oder mir
einfach schicken. Vielen Dank im Voraus.

Tobias

von Jörn (Gast)


Lesenswert?

@Tobias:

Mein Mega32 läuft mit 5V und 16 Mhz und ich kann die Register des
Davicom ohne Probleme auslesen.

Ich weis nicht genau für was das 'E' steht. Weitere Infos gibts
unter:
http://www.davicom.com.tw/eng/products/dm9000.htm

Layout schick ich dir später, da ich es grad nicht zur Hand habe.

Gruß Jörn

von dnb (Gast)


Lesenswert?

@ Tobias
Das Board finde ich richtig gut, erst recht für den Preis, werde ich
mir wohl auch noch privat als Student eins bestellen (für den
Studentenpreis ist das wohl unschlagbar). Sogar für Anfänger so wie es
aussieht recht gut, Altera hat da ja einen ganzen Einarbeitungsordner
mit reingepakt. Wir haben das Board noch direkt von Terasic gekauft
(war innerhalb von 2 Tagen in Deutschland, was für ein Service). Ich
würde es aber noch besser finden, wenn so ein Standard SMC
Netzwerkbaustein drauf währe, der DM9000A macht mir im Moment echt
sorgen, bin schon froh, den so weit zu haben, dass er mir konstant
Broadcast und Multicast empfängt.

=>dnb<=

PS: Die Aplikation Notes kann man wirklich vergessen, besser kann man
den DM9000 Treiber von Davicom für sich anpassen, an den Kommentaren
erkennt man ganz gut, dass Andere auch schon ihre Mühe mit den falschen
Werten und Abläufen aus den Aplication Notes hatten.

von Jörn (Gast)


Lesenswert?

@Tobias:

Stimmt die Emailadresse von oben? Meine Mail kam wieder zurück...

Gruß Jörn

von tobias (Gast)


Lesenswert?

ja diese email Adresse stimmt definitive. Komisch. Yahoo hat vor ein
paar Wochen Probleme mit den email Accounts gehabt, vielleicht sind das
Nachwirkungen. Ich hoffe es mal nicht, wenn doch, dann suche ich mir
einen anderen Account. Versuche es bitte noch mal. Schreib vielleicht
deine email Adresse auch rein. Dann versuch ich dich zu kontaktieren.
Danke Jörg.

Tobias

von dnb (Gast)


Lesenswert?

Hallo,

habe soeben das Problem gefunden. Auf meinem Rechner ist für die
Schnittstelle ein "Check Point Remote Control" installiert. Nachdem
ich diesen für die Schnittstelle ausgeschaltet habe, geht es ohne
Probleme.

MfG =>dnb<=

von Sebastian (Gast)


Lesenswert?

Weiss jemand wie ich das Multicast Address Register setzen muss wenn ich 
eine bestimmte Multicast IP zulassen will? Also wie ich aus der IP den 
Wert berechne den ich für das MAR brauche. Das ist anscheinend irgendein 
komischer Algorithmus, und in irgendwelchen Linux Kernel Sourcen gibt es 
auch eine Funktion dm9000_hash_table die das unter anderem macht, aber 
da steig ich nicht wirklich durch. In den Dokumentationen von Davicom 
scheint es nichts zu geben. Wäre super wenn da jemand weiter weiss.

Grüße

Sebastian

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
Noch kein Account? Hier anmelden.