Procedura obslugi ATA - problem



Masz problem? Zapytaj na forum elektroda.pl

Poprzedni Następny
Wiadomość
Spis treści
From: "Killer01" <killer_at_nospam_zsk.lub.pl>
Subject: Procedura obslugi ATA - problem
Date: Sat, 22 Mar 2003 12:36:06 +0100


Chce zczytac informacje z dysku twardego za pomoca polecienia IDENTIFY
DEVICE. Robie to w ten oto sposob:
1. restet urzadzenia
2. odczytuje rejestr stausu z hdd
3. sprawdzam czy bsy=0
4. jezeli tak to zapisuje do rejestru DEVICE/HEAD REGISTER wartosc 10100001B
tzn wybor urzadzenia master
5. ponownie odczytuje rejsetr statusu oraz sprawdzam czy bsy=0 oraz drdy=1
6. jezeli tak to zapisuje do rejestru komend wartosc ECh tzn. kod polecenia
IDENTIFY DEVICE
7. Ponownie sprawdzam bit bsy
8. jezei bsy=1 to odczytuje z rejestru danych 256 bajtow.

No i pierwszy problem:
Bit drdy ciagle ma wartosc "1" nie wiem dlaczego, wiec pominalem
sprawdzanie jego.

Przy odczycie z rejestru danych dostaje jakies glupoty, a mianowicie jak
odczytuje nazwe modelu (slowa 27-46) hdd to mam warosci 0h,0h,0h, itd. co
jakis czas wskoczy znak '+'.
MOze cos robie nie tak?

Prosze o pomoc.

Moze napisalem zle procedury do zapisu i odczytu z rejestrow hdd?
Oto one:

GET_STATUS_REGISTER:
SETB DIOR
SETB DA0
SETB DA1
SETB DA2 ;ODCZYT REJESTRU STATUSU
CLR DIOR ;POWODUJE ODCZYTANIE REJESTRU STATUSU
MOV A,P0
SETB DIOR
RET

;---------------------------------------------------------------
SET_MASTER:
MOV P2,#0
SETB DIOW
CLR DA0
SETB DA0
SETB DA0
CLR DIOW
MOV A,#10100001B
MOV P0,A
SETB DIOW
RET

;--------------------------------------------------------------
WRITE_COMMAND:
MOV P2,#0
SETB DIOW
SETB DA0
SETB DA1
SETB DA2
CLR DIOW
MOV P0,A
SETB DIOW
RET
;--------------------------------------------------------------
READ_REGISTER_DATA:
SETB DIOR
CLR DA0
CLR DA1
CLR DA2
CLR DIOR
MOV A,P0
MOV B,P2
SETB DIOR
RET



--
---------------------------------
Pozdrawiam
Killer
killer_at_nospam_zsk.lub.pl
GG: 4165465
|
|
|
|
\/



========
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!newsfeed.gazeta.pl!fu-berlin.de!newsfeed01.sul.t-online.de!t-online.de!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: "Michał Wysocki" <mwsoft_at_nospam_satkabel.com.pl>
Subject: Re: Procedura obslugi ATA - problem
Date: Sat, 22 Mar 2003 13:43:30 +0100


cze..

troszkę namieszaleś...

1. reset
2. Sprawdzenie czy Bsy = 0 i Drdy = 1
3. ustawienie mastera
4. sprawdzanie czy bsy = 0 i drdy = 1
5. Zapis komendy ECh
6. Czekanie aż BSY = 0, DRQ = 1 i DRDY = 1
7. Odczyt 256 słów 16 bit

Ty w ogóle nie sprawdzaleś czy napęd jest gotowy do wysłania danych (flaga
DRQ, bit 3 w rej. statusu)... poza tym zawsze gdy chcesz coś odebrać od
napędu, lub zapisać flaga BSY musi być równa 0..

pozdro



========
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!newsfeed.gazeta.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: "Killer01" <killer_at_nospam_zsk.lub.pl>
Subject: Re: Procedura obslugi ATA - problem
Date: Sat, 22 Mar 2003 14:29:51 +0100


BSY musi być równa 0..
no i tak jest

a drq.... to przeoczylem.

sprawdze, moze cos to pomoze.

--
---------------------------------
Pozdrawiam
Killer
killer_at_nospam_zsk.lub.pl
GG: 4165465



========
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!newsfeed.gazeta.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: "Michał Wysocki" <mwsoft_at_nospam_satkabel.com.pl>
Subject: Re: Procedura obslugi ATA - problem
Date: Sat, 22 Mar 2003 14:38:15 +0100


a drq.... to przeoczylem.

sprawdze, moze cos to pomoze.

ale Ty sceptyk jesteś ;)
na 100% pomoże :) bo zanim napęd nazbiera sobie do bufora dane które chcesz
odebrac minie nawet kilka ms.. a Ty odczytujesz od razu i dlatego dostajesz
same zera.. ta flaga jest bardzo ważna :)

pozdro



========
Path: news-archive.icm.edu.pl!news.rmf.pl!news.ipartners.pl!newsfeed.gazeta.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: "Killer01" <killer_at_nospam_zsk.lub.pl>
Subject: Re: Procedura obslugi ATA - problem
Date: Sat, 22 Mar 2003 15:44:33 +0100


1. reset
2. Sprawdzenie czy Bsy = 0 i Drdy = 1
3. ustawienie mastera
4. sprawdzanie czy bsy = 0 i drdy = 1
5. Zapis komendy ECh
6. Czekanie aż BSY = 0, DRQ = 1 i DRDY = 1
7. Odczyt 256 słów 16 bit

w pkt. 6 flaga DRQ caly czas ma wartosc 0. Dzieje sie tak na kazdym dysku.
Procedura zapisu raczej jest dobra:
WRITE_COMMAND: ;zapis komendy z acc
SETB DIOW
SETB DA0
SETB DA1
SETB DA2
CLR DIOW
MOV P0,A
SETB DIOW
RET


--
---------------------------------
Pozdrawiam
Killer
killer_at_nospam_zsk.lub.pl
GG: 4165465



========
Path: news-archive.icm.edu.pl!news.icm.edu.pl!mimuw.edu.pl!news.mimuw.edu.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: "Michał Wysocki" <mwsoft_at_nospam_satkabel.com.pl>
Subject: Re: Procedura obslugi ATA - problem
Date: Sat, 22 Mar 2003 16:01:43 +0100


Ja proponuje:

WRITE_COMMAND: ;zapis komendy z acc
SETB DIOW
SETB DA0
SETB DA1
SETB DA2
MOV P0,A
CLR DIOW
NOP
NOP
NOP
SETB DIOW
RET

i dla pewnosci daj pullupy na calym P0

taki sposób odczytu indentyfikatora dziala u mnie wiec cos masz uwalone w
programie albo sprzęcie..

pozdro



========
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!newsfeed.gazeta.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: "Killer01" <killer_at_nospam_zsk.lub.pl>
Subject: Re: Procedura obslugi ATA - problem
Date: Sat, 22 Mar 2003 17:57:44 +0100


i dla pewnosci daj pullupy na calym P0

pullupy na P0 sa, a co do reszty to jeszcze po kombinuje (sprawdze sciezki,
pomysle nad programem jeszcze, slowem cos sprobuje jeszcze wymyslec).
jezeli Pan by mial procedurki do obslugi ATA w asm to bym prosil

--
---------------------------------
Pozdrawiam
Killer
killer_at_nospam_zsk.lub.pl
GG: 4165465



========
Path: news-archive.icm.edu.pl!news.icm.edu.pl!mimuw.edu.pl!news.mimuw.edu.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: "Michał Wysocki" <mwsoft_at_nospam_satkabel.com.pl>
Subject: Re: Procedura obslugi ATA - problem
Date: Sat, 22 Mar 2003 18:29:59 +0100


pullupy na P0 sa, a co do reszty to jeszcze po kombinuje (sprawdze
sciezki,
pomysle nad programem jeszcze, slowem cos sprobuje jeszcze wymyslec).
jezeli Pan by mial procedurki do obslugi ATA w asm to bym prosil

jaki Pan ;) wiecej luzu :)

w ASMie nie mam.. pisalem tylko w bascomie - dziala dokładnie wedlug
powyższego przepisu wiec nie bardzo wiem co moze być nie tak :( sprawdz też
czy nie pomyliłeś się przy wyborze bazy rejestrow - ja tak zrobilem i
dziwowałem sie dlaczego rejestry mają nie takie wartości jak powinny ;]

pozdro

PS
moje GG 73657



========
Path: news-archive.icm.edu.pl!news.rmf.pl!news.ipartners.pl!newsfeed.gazeta.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: "Killer01" <killer_at_nospam_zsk.lub.pl>
Subject: Re: Procedura obslugi ATA - problem
Date: Sat, 22 Mar 2003 22:12:30 +0100


taki sposób odczytu indentyfikatora dziala u mnie wiec cos masz uwalone w
programie albo sprzęcie..

DZIALA!!!!!!

Mialem maly blad w programie, a mianowice sprawdznie flafi DRQ zapetlalo sie
jezeli drq=1 a nie 0 tzn bylo JC SPRAWDZ_FLAGI.a powinno byc JNC.
no i mialem bledy na schemacie i plytce:
!DASP bylo zwarte do GND ;nie wiem czy to tez moglo miec jakis wplyw
CSEL bylo w powietrzu ;j.w
DD4 bylo zwarte z DD12 ; to moglo juz miec wply

Dzieki za pomoc

--
---------------------------------
Pozdrawiam
Killer
killer_at_nospam_zsk.lub.pl
GG: 4165465



========
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!newsfeed.gazeta.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: "Killer01" <killer_at_nospam_zsk.lub.pl>
Subject: Re: Procedura obslugi ATA - problem
Date: Sat, 22 Mar 2003 14:25:46 +0100


Bit drdy ciagle ma wartosc "1" nie wiem dlaczego,

z tym bitem juz jest ok. Poprostu zanim odczytalem stan portu nie ustawilem
na nim wartosci 255.

ale z reszta jest lipa

--
---------------------------------
Pozdrawiam
Killer
killer_at_nospam_zsk.lub.pl
GG: 4165465



========
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!newsfeed.gazeta.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai