Hallo Besucher, der Thread wurde 1,9k mal aufgerufen und enthält 3 Antworten

letzter Beitrag von Fröhn am

RR-Net per Software auf MAC-Empfang Einstellen

  • Hallo Zusammen,


    ich stecke gerade etwas mit meiner RR-Net-Programmierung fest.
    Wie folgt will ich meine MAC-Adresse einstellen und dann das System (RR-Net im Chameleon) so einrichten, dass es nur Broadcasts und Nachrichten an meine MacAdresse empfängt:


    Leider funktioniert das nicht. Broadcast empfange ich zwar, aber Nachrichten direkt an meine Macadresse nicht.


    Wenn ich


    Code
    1. POKE(0xde04,0x05);//nur broadcast und ich
    2. POKE(0xde05,0x0d);//


    durch


    Code
    1. POKE(0xde04,0xFF);//nur broadcast und ich
    2. POKE(0xde05,0xFF);//


    ersetzte funktioniert es zwar, aber mir ist schon klar, dass ich jetzt einfach alles empfange und mir so den Puffer unnötig voll haue.


    Hat jemand einen Tip für mich? :?:

  • CodeNet verwendet cfg_RxCTL = #$0F05, also auch "Multicast" noch angeschaltet.


    EDIT: Bei CRCerror, Runt, Extradata sind die Ethernet-Frames eh kaputt, daher kann man diese Bits getrost immer aus lassen. Und "Promiscuous" empfängt halt alle Frames unabhängig von der Adresse. Das wollen wir ja auch nicht, also bleibt das auch aus.

  • Hi Fröhn,


    wenn ich Dich richtig verstanden habe meinst Du ich soll


    Code
    1. POKE(0xde04,0x05);//nur broadcast und ich
    2. POKE(0xde05,0x0d);


    durch


    Code
    1. POKE(0xde04,0x05);//nur broadcast und ich
    2. POKE(0xde05,0x0f);


    ersetzen?
    Ich habs mal versucht. Und sicherheisthalber auch


    Code
    1. POKE(0xde04,0x0f);//nur broadcast und ich
    2. POKE(0xde05,0x05);


    In allen fällen bekomme ich zwar die Braodcasts rein, aber nicht die Nachrichten die direkt am meine MAC-Adresse gehen. ?(

    CodeNet verwendet cfg_RxCTL = #$0F05, also auch "Multicast" noch angeschaltet.


    EDIT: Bei CRCerror, Runt, Extradata sind die Ethernet-Frames eh kaputt, daher kann man diese Bits getrost immer aus lassen. Und "Promiscuous" empfängt halt alle Frames unabhängig von der Adresse. Das wollen wir ja auch nicht, also bleibt das auch aus.


  • Nein, $DC04 = #$05 und $DC05 = #$0F ist schon richtig. Der CS8900 will Little Endian, also Low-Byte zuerst.