www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik DM9000BI + ATmega128: DM9000 antwortet nicht


Autor: pkerling (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

für ein Projekt mit Ethernetanbindung verwende ich einen Davicom 
DM9000BI (ohne angeschlossenen EEPROM) und einen ATmega128 
(16MHz-Quarz). Nun hat sich allerdings das Problem ergeben, dass der 
DM9000BI einfach nicht antworten will. Ich bin mir relativ sicher, alles 
genau nach Datenblatt zu machen. Ein Defekt des DM9000BI ist 
unwarscheinlich, da der angeschlossene 25MHz-Quarz schwingt. Ich habe 
auch schon alle relevanten Pins des DM9000 durchgemessen: Die richtigen 
Werte kommen dort an, wenn ich allerdings etwas lesen will, scheint es 
so, als ob die Datenpins des DM9000 auf Input/High-Z wären: Wenn ich am 
ATmega die Input-Pull-Ups deaktiviere, kommt nur minimales Zittern raus, 
also auch kein GND, da ist viel mehr Störung drauf. Wenn ich die 
Input-Pull-Ups aktiviere, kriege ich logischerweise nur die +5V Vcc des 
ATmegas.
Zur Kontrolle hier der Quellcode (das schaut normal nicht so aus, nur um 
sicherzugehen, dass alles passt habe ich alle Werte/Ports explizit 
angegeben):
uint8_t ethernet_read_register(DM9000_REG reg)
{
  PORTA = 0x28; // VID1: Vendor ID low byte
  PORTC &= ~(1 << PC7); // CMD: INDEX port
  PORTC &= ~(1 << PC3); // CS#
  PORTC &= ~(1 << PC4); // IOW#
  _delay_us(100.0); // etwas übertrieben, nur testweise
  PORTC |= (1 << PC4); // IOW#
  PORTC |= (1 << PC3); // CS#

  // Port auf Input
  PORTA = 0xFF; // oder 0x00
  DDRA = 0;

  PORTC &= ~(1 << PC3); // CS#
  PORTC &= ~(1 << PC5); // IOR#
  _delay_us(100.0);
  uint8_t regval = PINA;
  PORTC |= (1 << PC5); // IOR#
  PORTC |= (1 << PC3); // CS#
  return regval;
}
Hat vielleicht jemand eine Idee, was hier schief laufen könnte?

Grüße,
Philipp

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.