Memory mapped Data bus



  • Also vorab, ich bin eigentlich nicht so der Hardware-Typ.
    Ich habe hier einen AMD x86 16-bitter, der scheinbar memory mapped auf externe Peripherie zugreifen kann. Ich versuche mir das so vorzustellen, dass das schreiben an solche speicheradressen einen Interrupt auslöst, der dafür sorgt, dass (übersetzte) Peripherie-Adresse und Datenbyte geschrieben werden, bzw. wenn man lesen will, dann wird die adresse geschrieben und irgendwann das byte gelesen. Dann gibt es einen externen Chip, der die adresse nimmt und auf Chip-Select-Leitungen, die zur Peripherie führen mapped, und den Datenaustausch vornimmt.
    Stimmt das so ungefähr?

    Jetzt mein Problem, weshalb ich überhaupt hier schreibe. Bei einem gewissen AD7606 16-AD-Wandler läuft der Datentrasfer krumm. Und zwar ist das MSB beider Datenbytes immer 0. Wenn ich entsprechend bei den Testspannungen diese Bits korrekt setze, ist das Resultat korrekt. Wie kann es dazu kommen, dass die MSBs falsch übertragen werden? Deutet das auf ein Timingproblem des Datenbusses hin, also dass er beispielsweise zu schnell für die Peripherie ist?

    Viele Grüße,
    Deci



  • Okay, hat sich erledigt,
    boost asio setzt die serielle schnittstelle per default auf 7 bit pro byte -.-


Anmelden zum Antworten