Sektorende 18 Byte zu früh

T

Thomas Finke

Guest
Hallo,

ich hoffe, daß ich in dieser Group richtig bin.....bin mir nicht ganz
sicher, ob ich mich an eine Elektronik- oder an eine Festplatten-Group
wenden soll.

Mein Problem ist, daß ich mit einem AVR den Sektor 0 einer
CompactFlash-KArte ausgelesen habe und das Sektorende (55 AA) 18 Byte zu
früh kommt.

Ich habe über Google einen Auszug eines MBR gefunden.....daß mein Auslesen
wirklich am Anfang des Sektors beginnt, kann man daran sehen, daß meine
ersten gelesenen Bytes mit den ersten Bytes der Beispiels übereinstimmen.
Jedoch sieht man auch deutlich, daß bei mir z.B. die Daten (80 01...), also
der Anfang der aktiven Partition, 18 Bytes zu früh kommt. Genauso wie das
Ende des Sektors 55 AA.
Mein AVR liest 512 Bytes aus der CF-Card und sendet mir diese dann an nen
Rechner, der sie aufm Monitor anzeigt.

Hat irgendjemand eine Idee, wieso der Anfang des sektors stimmt, aber das
Ende auf einmal nimmer?

Das File mit den Hex-Daten des Sektors (was der AVR gelesen hat) habe ich
mal beigefügt.

Danke

Thomas

--------------------------------
Hex-Daten (512 Byte):

33
C0
8E
D0
BC
0
7C
8B
50
7
50
1F
FC
BF
0
6
B9
0
1
A5
EA
1D
6
0
0
BE
BE
7
B3
4
80
3C
80
74
E
80
3C
0
75
1C
83
C6
10
CB
75
CD
18
8B
14
8B
4C
2
8B
83
C6
10
CB
74
1A
80
3C
0
74
BE
8B
6
AC
3C
0
74
B
56
BB
7
0
B4
E
CD
10
5E
F0
FE
BF
5
0
BB
0
7C
B8
1
2
57
CD
13
5F
73
C
33
C0
CD
13
4F
75
BE
A3
6
D3
BE
C2
6
BF
7D
81
3D
55
AA
75
8B
EA
0
7C
0
0
49
6E
76
61
6C
69
64
20
70
61
72
74
69
74
69
6F
6E
20
74
61
62
6C
65
0
45
72
72
6F
72
20
6C
6F
61
64
69
6E
67
20
6F
70
65
72
61
74
69
6E
67
20
73
79
73
74
65
6D
0
4D
69
73
73
69
6E
67
20
6F
70
65
72
61
74
69
6E
67
20
73
79
73
74
65
6D
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
80
1
1
0
4
3
60
20
0
0
0
60
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
55
AA
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
 
Das File mit den Hex-Daten des Sektors (was der AVR gelesen hat) habe ich
mal beigefügt.
Hahaha.



Also das Problem ist wahrscheinlich, dass Du an manchen Stellen zwar nur
ein Byte anforderst und liest, das CompactFlash aber tatsaechlich zwei
schickt. Das kann einerseits ein Programmierfehler sein (zB Interrupts),
oder aber ein Hardware-Problem.

Letzteres kannst Du provisorisch pruefen, indem Du Serienwiderstaende
in die CS,RD,WR Leitung legst (100 ohm, moeglichst nah am AVR), sowie
in alle 8/16 Datenleitungen (500 Ohm, moeglichst nah am CompactFlash).
Das hat aber nur dann Wirkung, wenn Du keine weitere Peripherie an den
betroffenen Pins angeschlossen hast (RAM, LCD, sonstwas).

Marc
 
Hallo,

ich hoffe, daß ich in dieser Group richtig bin.....bin mir nicht ganz
sicher, ob ich mich an eine Elektronik- oder an eine Festplatten-Group
wenden soll.

Mein Problem ist, daß ich mit einem AVR den Sektor 0 einer
CompactFlash-KArte ausgelesen habe und das Sektorende (55 AA) 18 Byte zu
früh kommt.

Ich habe über Google einen Auszug eines MBR gefunden.....daß mein Auslesen
wirklich am Anfang des Sektors beginnt, kann man daran sehen, daß meine
ersten gelesenen Bytes mit den ersten Bytes der Beispiels übereinstimmen.
Jedoch sieht man auch deutlich, daß bei mir z.B. die Daten (80 01...), also
der Anfang der aktiven Partition, 18 Bytes zu früh kommt. Genauso wie das
Ende des Sektors 55 AA.
Mein AVR liest 512 Bytes aus der CF-Card und sendet mir diese dann an nen
Rechner, der sie aufm Monitor anzeigt.

Hat irgendjemand eine Idee, wieso der Anfang des sektors stimmt, aber das
Ende auf einmal nimmer?

Das File mit den Hex-Daten des Sektors (was der AVR gelesen hat) habe ich
mal beigefügt.

Danke

Thomas
Hallo Thomas

Das ist ziemlich eindeutig. Du hast zu lange Leitungen vom AVR zum CF
und es gehen Bytes verloren. Alternativ könntest Du auch mit dem
Timeing ( /CS / RD etc) ausserhalb der Specs liegen ist aber deutlich
weniger warscheindlich.

Markus

Markus
 
Dann könnte ich das ganze doch auch so prüfen, daß ich die Kommunikation
zwischen AVR und CF extrem verlangsame, oder?

Thomas
 
Danke ;-)

Kabel gekürzt und es geht.

Ich hatte eine Platine mit dem AVR und eine andere Platine mit dem
CD-Sockel. Beide waren durch ein, zu langes, Flachbandkabel verbunden.
Been there, done that :)

Markus
 
Rainer Zocholl wrote:
emm, was gibt aber auch rein passive CF-Adapther
die einfach nur die Anschlüsse umsortieren und auf ein
normales, 40cm langes IDE-Kabel gesteckt werden sollen
und vom normalen IDE-Chipd getrieben werden.
Funktionieren die auch nicht?
Da ist dann aber der Bus auch ordentlich terminiert (Auf der Host-Seite) was
er bei Thomas höchst wahrscheinlich nicht wahr. AFAIK wird IDE mit 33 Ohm
auf beiden Seiten des Kabels terminiert. In der CF dürfte diese Terminierung
drin sein. Am AVR aber nicht.



--
Matthias Weißer
matthias@matwei.de
http://www.matwei.de
 
Kabel gekürzt und es geht.

Ich hatte eine Platine mit dem AVR und eine andere Platine mit dem
CD-Sockel. Beide waren durch ein, zu langes, Flachbandkabel verbunden.

Rein interessehalber, wie lang war es vorher, wie lang ist es jetzt?
vorher: 60 cm

jetzt: 6 cm
 

Welcome to EDABoard.com

Sponsor

Back
Top