
November 28th, 2005, 12:54 AM
|
|
n00b DevH'er
|
|
Join Date: Nov 2005
Posts: 1

Time spent in forums: 6 m 48 sec
Reputation Power: 0
|
|
|
Info needed
I also need some information about this driver... if anybody have any info about this please help me
Thanks in advance
Eaby
Quote: | Originally Posted by Ex-RoNiN Hey guys,
I am currently trying to develop a C-driver for a CompactFlash device. I am driving the CF device in Memory mapped mode, 16bit transfer enabled. However, I am observing some very strange behaviour, which is not caused by a malfunctioning card (I checked with a card reader, the card is fine).
The problems I have observed are as follows:
- Writing to Sector Count register, followed by a write to the Sector Number register, will end up overwriting the value in the Sector Count register with a completely random value. If I change the order of the writes, then Sector Number will get overwritten, again with a very random value. The same occurs for the Cylinder Low and Cylinder High registers.
- Writing ANY value (with DRV=0) into the Drive/Head register, irregardless of whether LBA is set or not, will cause the Error bit in the Status register to become set!
- Writing a command into the command register will overwrite whatever value I have in the Drive/Head register: typically HS0 - HS3 get set, LBA, D5 and D7 get all cleared.
Because of the above "phenomena", I find it impossible to write or read sectors from the card. I was hoping that you could point me towards some area where the problem could lie, such as wrong start-up routine (I Reset the card, disable interrupts in the Device Control Register, set the card as drive 0) or possible signalling problems (although the signals that I observed via a signal analyser seemed to be just fine?)
I really have no idea why the card would behave as randomly as this, and I would appreciate any help you could provide me with.
Thanks a lot in advance. |
|