Hi zusammen, mich hat letztens ein Kumpel ziemlich kirre gemacht. Er wollte den IDE Controller bei einer PCI Karte für andere Zwecke entfremden. Ok, es gibt aber auch Festplatten die entweder per CHS oder LBA Verfahren angesprochen werden. CHS-> Cylinder, Head, Sektor LBA-> Ein 48 Bit langer Digitalcode zum auswählen des Sektors. IDE hat doch nur das CHS Verfahren oder? Tjo...er wollte die Festplatte mit einem Atmega simulieren. Unter simulieren versteht er, das er dem Controller der PCI Karte mit einem Atmega eine Festplatte vorgaukelt..... Wenn man nun auf die simulierte Festplatte "Atmega" zugreift sollte folgendes sein "......der Atmega kennt nur 1 Sektor, da dies für seine Zwecke ausreicht". 1 Sektor = 512 Byte. Beim Lesen werden 512 Byte von Schieberegistern eingelesen, da dort Gott weis was gemessen werden soll. Beim Schreiben schiebt er die entsprechenden Werte in die anderen Schieberegister um got weis was zu steuern. Des dürfte doch so funktionieren oder? Kennt von Euch jemand eine gute Seite, wo das Ansteuern von IDE Festplatten beschrieben wird?
>Des dürfte doch so funktionieren oder? Versuch den ATMega dann mit 1GHz laufen zu lassen. Dann klappts vielleicht. >Kennt von Euch jemand eine gute Seite, wo das Ansteuern von IDE >Festplatten beschrieben wird? Ansteuern != Simulieren Und da ist der Hund begraben. Beim Ansteuern kannst du dir Zeit lassen. Beim Simulieren/Emulieren mußt du die maximale Geschwindigkeit die der IDE-Controller kann unterstützen. Oder ne Möglichkeit finden den Controller deine Platte so langsam auszulesen das der AVR keine dicken Backen macht. -> Praktisch unmöglich. Also abgesehen von der Sinnhaftigkeit ist es meiner Meinung nach nicht machbar, da der AVR zu langsam ist.
Deswegen frage ich ja, wo es eine Website gibt, die die Ansteuerung einer IDE Festplatte beschreibt. Wenn es nämlich ein Übernahmebit gibt, der dann die Werte erst übernimmt, dann spielt die Geschwindigkeit doch keine Rolle. Ob das Bit nach 1 ms gesetzt, oder erst nach 100 ms gesetzt wird, ist doch dann Wurst
basst scho schrieb: > IDE hat doch nur das CHS Verfahren oder? Nein. > Des dürfte doch so funktionieren oder? Ich fürchte, dass noch der allerlangsamste Transfermodus den armen AVR etwas überfordern könnte. > Kennt von Euch jemand eine gute Seite, wo das Ansteuern von IDE > Festplatten beschrieben wird? Sucht mal nach dem entsprechende Standard. Wobei ihr mit dem Begriff "ATA" eher fündig werden, denn so heisst das offiziell.
Die Schnitstelle an sich ist AT-BUS. IDE ATA ATAPI ist in der Festplatte. Da kann man dranbasteln was man will und über PIO so langsam übertragen wie nötig.
basst scho schrieb: > Unter simulieren versteht er, das er dem Controller der PCI Karte mit > einem Atmega eine Festplatte vorgaukelt..... Geht nicht. Zwar kann man mit einem AVR eine Festplatte ansteuern, aber eine nachahmen geht nicht, weil die Geschwindigkeit der I/O-Zugriffe darauf nicht vom AVR, sondern vom PC vorgegeben werden. Und der führt die I/O-Zugriffe ganz erheblich schneller durch als ein AVR darauf reagieren kann, ganz abgesehen davon, daß das eine 16-Bit-Schnittstelle ist. Eine deutlich lohnendere Spielwiese (die auch schon ausreichend kompliziert ist) dürfte die Nachbildung eines Diskettenlaufwerks sein. Vom Speicher abgesehen (der extern an den AVR angebunden werden muss, praktischerweise als SD-Karte o.ä.) könnten die Resourcen eines gut programmierten AVR ausreichen, das Verhalten eines Diskettenlaufwerks nachzuahmen. Ein 360k-/720k-Laufwerk ist leichter nachgebildet als ein 1.2MB- oder ein 1.44MB-Laufwerk, da die Datenrate geringer ist. Aber auch hier gilt, daß der ansteuernde PC das Tempo vorgibt.
Rufus Τ. Firefly schrieb: > basst scho schrieb: >> Unter simulieren versteht er, das er dem Controller der PCI Karte mit >> einem Atmega eine Festplatte vorgaukelt..... OK. Dann wird es schwierig.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.