This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

compact flash interface with davinci EVM6446 (TMS320DM6446)

I am using Spectrum digital EVMDM6446 (DaVinci EVM) and Spectrum digital XDS560v2 LC Traveller Emulator and Code Composer Studio 5..5.0 and using  SanDisk compact flash ultra II (4.0 GB). I am trying to run the spectrum sample code "cf" which is given in spectrum digital Inc website support page (http://c6000.spectrumdigital.com/davincievm/revf/files/davincievm.zip ). do I need to make any changes in the code? card is detecting in function  Int16 cf_card_detect( ).

I am trying to read the device ID in :

ATA_readId( ( Uint32 )id );

 /* Check for valid identifier */

    printf( "    CF Identifier:   0x%x\n", ( id[0] << 8 ) + id[1] );

    if ( ! ( ( id[0] == 0x8A ) && ( id[1] == 0x84 ) ) )

    {

        printf( "    Invalid CF identifier found\n" );

        return 1;

    }

 

and reading only 0x84 and instead 0x8A I am reading 0x00. Not able to run ata_addr32() test too. in address test when I read PRI_ATA_DATA16 value I am getting DDR address (ie in the range 0x08000000). I have mot made any change in the sample code. whats wrong?

 Refer Code: Sample code attached, same code and supporting files are given in davincievm.zip folder.

 download davincievm.zip folder from http://c6000.spectrumdigital.com/davincievm/revf/)

file path :davincievm\examples\cf .

ref datasheets: sandisk compact flash : http://media.digikey.com/pdf/Data%20Sheets/M-Systems%20Inc%20PDFs/SanDisk%20CompactFlash%20Memory.pdf

TI datasheets: SPRUE21(ATA controllers datasheet) 

Regards,

Venkatraman Bhat