logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Problem z komunikacja z AT45db

Sanga 19 Wrz 2008 15:27 1083 2
  • #1 5550496
    Sanga
    Poziom 10  
    Czesc,

    Podlaczam sie do pamieci Atmela AT45DB081D po SPI.

    Moge odczytac ID rejestr stanu i wszystko inne ale problem jest z zapisaniem jakichs danych. Ani do bufora ani potem do flasha danych nie moge wpisac w zaden sposob opisany w dokumentacji. Np jesli zeruje flasha i wpisuje mu potem dane to pojawiaja sie jakies zupelnie przypadkowe wartosci. Podobnie jest wpisywaniem do buforow. Ponizej zamieszczam kod ktory probuje wykorzystac

    AT45DB081D

    void wpisz_flash()
    {
    int i;
    //wpiasnie do bufora 1

    //inicjalizacja komunikacji
    CHIP_SELECT = 0;

    //wpisuje komende zapisu danych do bufora 1 dla bufora 2 jest 0x87
    Spi_Write( 0x84 );

    //wpisanie nieistotnych bitow i adresu
    Spi_Write( 0x00 );
    Spi_Write( 0x00 );
    Spi_Write( 0x00 );

    Spi_Write( 1 );
    Spi_Write( 2 );
    Spi_Write( 3 );
    Spi_Write( 4 );


    //zakonczenie komunikacji
    CHIP_SELECT = 1;

    delay_ms(400);
    }

    void odczytaj_flash()
    {
    char dane[300];
    int i;

    //inicjalizacja komunikacji
    CHIP_SELECT = 0;

    //wpisuje komende odczytu ciaglego danych dla bufora 2 jest 0x87
    //d2
    Spi_Write( 0xD4 );

    //wpisanie adresu strony z ktorej maja byc odczytane dane
    Spi_Write( 0x00 );
    Spi_Write( 0x00 );
    Spi_Write( 0x00 );

    //dummy byte
    Spi_Write( 0x00 );


    for ( i = 0; i < 4; i++ )
    {
    dane [ i ] = Spi_Read(0xAA); //zmiana tej wartosci tez nic nie daje
    }

    CHIP_SELECT = 1;

    delay_ms(40);

    for ( i = 0; i < 4; i++ )
    {
    usart_write( dane [ i ] );
    }


    CHIP_SELECT = 1;

    delay_ms(40);
    }

    Uzyte funkcje pochodza z kompilatora. Z gory dzieki za pomoc. Pozdrawiam!
  • #2 5550613
    stoowa
    Poziom 14  
    hardware masz ok ??!! ja mialem problem z zasilaniem pamieci i objawy byly takie same...
  • #3 5550627
    mm_pawel
    Poziom 11  
    Możesz podać sposób inicjalizacji SPI, czyli co wpisujesz do rejestru SPCR
REKLAMA