Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Питание памяти AT45db161-SU
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
kostian296
Какое питание необходимо подать на память ?
В даташите написано, что поддерживате 2.7-3.6В, но потом написано что AT45DB161 - это 2.7В память ?
aaarrr
Её вполне устроит 3.3V.

Про 2.7V написано для рекламы: приколитесь, какая понтовая у нас получилась память - она работает от 2.7V!
kostian296
Цитата(aaarrr @ Oct 25 2008, 13:50) *
Её вполне устроит 3.3V.

Про 2.7V написано для рекламы: приколитесь, какая понтовая у нас получилась память - она работает от 2.7V!


SPCR = (1 << SPE)|(1 <<MSTR)|(1 << CPOL)|(1 << CPHA);
SPSR = (1 << SPI2X); // 2x rate

// initialize PORTB for SPI
DDRB |= (1 << SPI_MOSI)|(1 << SPI_SCK)|(1 << SPI_SS);
DDRB &= ~(1 << SPI_MISO);

void SPI_Write_Byte(unsigned char cool.gif
{
SPDR = b;
while (!(SPSR & (1<<SPIF))); // wait for data transfer to be completed
}

unsigned char SPI_Read_Byte(void)
{
SPDR = 0x00;
while (!(SPSR & (1<<SPIF))); // wait for data transfer to be completed
return SPDR;
}

unsigned char at45ReadVID(void)
{
unsigned char ID;
CS_ON; //óñòàíîâèì CS äëÿ DataFlash
SPI_Write_Byte(0x9f); //ïåðåäàåì íîìåð êîìàíäû
ID=SPI_Read_Byte(); //÷èòàåì ðåãèñòð ñòàòóñà
SPI_Write_Byte(0); //÷èòàåì ðåãèñòð ñòàòóñà
SPI_Write_Byte(0); //÷èòàåì ðåãèñòð ñòàòóñà
SPI_Write_Byte(0); //÷èòàåì ðåãèñòð ñòàòóñà
CS_OFF;; //ñáðîñèì CS äëÿ DataFlash

return(ID);
}

Какие бы скорости не выставлял все время возврщает ID=0 ?
aaarrr
Схему лучше выложить в PDF.
kostian296
Цитата(aaarrr @ Oct 25 2008, 14:03) *
Схему лучше выложить в PDF.
aaarrr
AT45 на ней обнаружить не удалось sad.gif Программатор-то отключен во время проверки?
kostian296
Цитата(aaarrr @ Oct 25 2008, 14:28) *
AT45 на ней обнаружить не удалось sad.gif Программатор-то отключен во время проверки?


прошу прощения smile.gif . вот тут точно есть. конечно отключаю.
aaarrr
Попробуйте в цикле почитать статусный регистр (0xD7) и посмотреть осциллографом, что происходит на выводах AT45.
Baser
1) Не забыли предварительно снять RESET2 с флешки?

2) Не ошиблись с полярностью CS (CS_ON; CS_OFF;) ?

3) Процессор у вас имеет право не работать: 11.059мгц @ 3.3V - это превышение мах. параметров.
Попробуйте снизить частоту кварца раза в два для пробы.


з.ы. зачем было два топика на одну тему рядом открывать? sad.gif
kostian296
Цитата(Baser @ Oct 25 2008, 15:38) *
1) Не забыли предварительно снять RESET2 с флешки?

2) Не ошиблись с полярностью CS (CS_ON; CS_OFF;) ?

3) Процессор у вас имеет право не работать: 11.059мгц @ 3.3V - это превышение мах. параметров.
Попробуйте снизить частоту кварца раза в два для пробы.
з.ы. зачем было два топика на одну тему рядом открывать? sad.gif


да все снято. все сигналы првильные. попробовал отправить 0xD7 - все равно 0 шлет в ответ. взял подвесил 10к на выход данных памяти, теперь на команду 0x9f и 0xd7 - в ответ всегда 0xff ?
aaarrr
Если все сигналы правильные, то не отвечать она не может. Вы осциллографом смотрели?
kostian296
Цитата(aaarrr @ Oct 25 2008, 17:25) *
Если все сигналы правильные, то не отвечать она не может. Вы осциллографом смотрели?


пока нет возможности. он не понятно что может быть не так ?
aaarrr
Да что угодно.

Попробуйте сделать так:
Код
unsigned char SPI_Read_Byte(void)
{
    SPDR = 0x55;
    while (!(SPSR & (1<<SPIF))); // wait for data transfer to be completed
    return SPDR;
}


Затем оторвите SO AT45 и:
1. Замкните MISO-MOSI со стороны AT45, убедитесь, что получаете 0x55.
2. Замкните MISO-CS, убедитесь, что получаете 0.
3. Замкните MISO-RESET2, убедитесь, что получаете 0xFF.
kostian296
Цитата(aaarrr @ Oct 25 2008, 17:40) *
Да что угодно.

Попробуйте сделать так:
Код
unsigned char SPI_Read_Byte(void)
{
    SPDR = 0x55;
    while (!(SPSR & (1<<SPIF))); // wait for data transfer to be completed
    return SPDR;
}


Затем оторвите SO AT45 и:
1. Замкните MISO-MOSI со стороны AT45, убедитесь, что получаете 0x55.
2. Замкните MISO-CS, убедитесь, что получаете 0.
3. Замкните MISO-RESET2, убедитесь, что получаете 0xFF.


0x55 - что за команда ?
aaarrr
Это не команда, а затычка для проверки железа.
Baser
Цитата(kostian296 @ Oct 25 2008, 17:30) *
>> Вы осциллографом смотрели?
пока нет возможности. он не понятно что может быть не так ?

Может быть, действительно, пару десятков совершенно банальных причин из-за любой из которых у вас не будет одного из сигналов.

Советую пока нет осциллографа, не тратить время зря и заняться чем-нибудь другим.
На осциллографе будет прекрасно видно, отвечает ли вообще флешка, или там просто постоянный уровень.

Эмбеддер без осциллографа как слепой человек - ничего не видно, приходится делать все на ощупь и у других спрашивать.. smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.