|
AVR + DataFlash |
|
|
|
Jan 10 2006, 16:30
|

Местный
  
Группа: Свой
Сообщений: 319
Регистрация: 2-08-05
Из: Одесса
Пользователь №: 7 287

|
Добрый день уважаемые специалисты Кто нибудь пробывал подключать к AVR DataFlash Необходимо сделать примерно то что описано в avr335 толька с управлением по I2C Перекомпилил все под Мегу 8 (поменял ножки) Собрал схему на макетнице DataFlash AT45DB081B питаю 3.3 вольтами Атмегу 8 - Пятью В датащите на AT45DB081B сказано что с 5 вольтовыми сигналами нет проблемм Тем немение DataFlash ничего не отвечает несмотря на то что осцилографом видно как Атмега посылает данные. Сигнала BUSY тоже нету. На выходе ДатаФлеща - 0. Может спалил Незнаю Подскажите пожалуста если кто имеет какието мысли по этому поводу
|
|
|
|
|
 |
Ответов
|
Jan 10 2006, 21:16
|

Иногдящий
   
Группа: Свой
Сообщений: 691
Регистрация: 28-02-05
Пользователь №: 2 931

|
Цитата и в коде похоже нету Ну как же... Я сам там видел  . Я тоже ковырял этот аппноут и именно там заметил деактивацию чипселекта. Например: Код void write_to_flash(unsigned char flash_data) { static unsigned int buffer_counter; static unsigned int page_counter; unsigned char temp = 0x80; if((ACSR & 0x02)) // if flag is set that new data has to be written { buffer_counter = 0; page_counter = 0; // reset the counter if new data has to be written ACSR &= 0xFD; // clear the signal flag }
while(!(PINB & 0x02)); // check if flash is busy
PORTB &= ~DF_CHIP_SELECT; // enable DataFlash SPDR = BUFFER_1_WRITE; while (!(SPSR & temp)); // wait for data transfer to be completed SPDR = 0x00; // don't cares while (!(SPSR & temp)); // wait for data transfer to be completed SPDR = (char)(buffer_counter>>8); // don't cares plus first two bits of buffer address while (!(SPSR & temp)); // wait for data transfer to be completed SPDR = (char)buffer_counter; // buffer address (max. 2^8 = 256 pages) while (!(SPSR & temp)); // wait for data transfer to be completed SPDR = flash_data; // write data into SPI Data Register while (!(SPSR & temp)); // wait for data transfer to be completed PORTB |= DF_CHIP_SELECT; // disable DataFlash buffer_counter++; if (buffer_counter > 528) // if buffer full write buffer into memory page { buffer_counter = 0; if (page_counter < 4096) // if memory is not full { PORTB &= ~DF_CHIP_SELECT; // enable DataFlash SPDR = B1_TO_MM_PAGE_PROG_WITHOUT_ERASE; // write data from buffer1 to page while (!(SPSR & temp)); // wait for data transfer to be completed SPDR = (char)(page_counter>>6); while (!(SPSR & temp)); // wait for data transfer to be completed SPDR = (char)(page_counter<<2); while (!(SPSR & temp)); // wait for data transfer to be completed SPDR = 0x00; // don't cares while (!(SPSR & temp)); // wait for data transfer to be completed PORTB |= DF_CHIP_SELECT; // disable DataFlash page_counter++; } else { PORTB |= 0x08; // turn LED off while (!(PIND & 2)); // wait until button for recording (button 1) is released } } } Цитата Вопрос: на какой интервал времени достаточно запретить а потом разрешить Флешку ?? Учитывая, что флэшка работает на частоте до 20 МГц, никаких пауз между деактивацией и активацией делать не надо. Лишь бы компилятор не "оптимизировал" код, который в результате оставляет содержимое регистра в прежнем виде  ). На всякий случай прилагаю код, который у меня на атмеге64 работает прекрасно. Просьба ногами не бить, изяществом код не блещет  ))).
|
|
|
|
Сообщений в этой теме
DeXteR AVR + DataFlash Jan 10 2006, 16:30 AndyBig Работал с DataFlash + ATmega64, пользуясь аппаратн... Jan 10 2006, 16:54 solidreg Работал с AT45DB021B, аппаратный SPI, но только вс... Jan 10 2006, 17:40 DeXteR Цитата(AndyBig @ Jan 10 2006, 19:54) Рабо... Jan 10 2006, 17:53 beer_warrior BTW, господа никто не сталкивался с интересным эфф... Jan 11 2006, 07:58 AndyBig Я не читал больше 30 КБ за раз и при этих объемах ... Jan 11 2006, 10:37 DeXteR Добрый день
Огромное спасибо всем
У меня заработ... Jan 11 2006, 19:18 IgorKossak Цитата(DeXteR @ Jan 11 2006, 21:18) 1. Де... Jan 12 2006, 08:27 AndyBig 1. Проблем не будет, ничего не нужно.
2. А зачем ч... Jan 11 2006, 19:38 DeXteR Цитата(AndyBig @ Jan 11 2006, 22:38) 1. П... Jan 11 2006, 22:16 defunct Цитата(DeXteR @ Jan 12 2006, 00:16) Цитат... Jan 12 2006, 09:48 *SERG Цитата(DeXteR @ Jan 11 2006, 22:18) Дело ... Jan 12 2006, 04:46 Rst7 Цитата(*SERG @ Jan 12 2006, 06:46) Цитата... Jan 12 2006, 06:22  valera_o Цитата(Rst7 @ Jan 12 2006, 09:22) А почем... Apr 10 2008, 13:46 AndyBig ЦитатаДа здоровый очень
Ну, если дешево и сердито,... Jan 12 2006, 07:46 beer_warrior 2 DeXteR:
Диоды можно, но осторожно, у меня была с... Jan 12 2006, 11:36 AndyBig beer_warrior
Спасибо, я возьму это на заметку. Jan 12 2006, 16:12 DeXteR Добрый день уважаемые специалисты
Во вложении - с... Jan 15 2006, 19:49 beer_warrior Сдвиг уровня на диоде?
Симпатичненько.
Проблем не ... Jan 15 2006, 21:22 Andrey_31 У меня тоже АТ45 глючит,при записи страницы первые... Jan 24 2006, 04:30 DeXteR Цитата(Andrey_31 @ Jan 24 2006, 08:30) У ... Jan 24 2006, 08:49 zheka Dexter - заработала схема согласования? Jan 27 2006, 07:31 DeXteR Цитата(zheka @ Jan 27 2006, 11:31) Dexter... Jan 27 2006, 08:34 zheka А что за диоды? И номинал резистора?
То есть факти... Jan 27 2006, 14:24 DeXteR Идея проста
На любом диоде есть падение
На крем... Jan 27 2006, 15:52 zheka Кстати, а почему не запитать скажем Mega8 у которо... Jan 27 2006, 21:02 zheka Что ж никто не отвечает-то? Jan 28 2006, 10:48 DeXteR На меге 8 я и сделал но пока все в стадии макета и... Jan 28 2006, 17:27 makc У меня тоже с 5-вольтовыми ИС AT45DB041B нормально... Jan 28 2006, 17:42 DeXteR Цитата(makc @ Jan 28 2006, 21:42) У меня ... Jan 28 2006, 17:50 makc Цитата(DeXteR @ Jan 28 2006, 20:50) Но вы... Jan 28 2006, 19:43 DeXteR ЦитатаТеории бывают разные.
А там по теме выше п... Jan 28 2006, 20:02 zheka В общем план у меня такой:
1. Денежку никому не пл... Jan 28 2006, 20:03 DeXteR Цитата(zheka @ Jan 28 2006, 23:03) В обще... Jan 28 2006, 20:10 zheka Вопрос:
ЦитатаВы мен только скажите, если я на Мег... Jan 29 2006, 07:08 DeXteR При 5 вольтах - 16 Мгц работает
При 3.3 вольтах - ... Jan 30 2006, 07:43 makc Атмел не гарантирует работу 8-й меги на 16МГц при ... Jan 30 2006, 07:53 zheka Я думаю вывод такой - покупать Mega8L питать от 3,... Jan 30 2006, 09:40 makc Цитата(zheka @ Jan 30 2006, 12:40) http:/... Jan 30 2006, 11:52 zheka Так все-таки, я прав насчет питания Mega8L и DataF... Jan 30 2006, 12:28 DeXteR Цитата(zheka @ Jan 30 2006, 15:28) Так вс... Jan 30 2006, 13:55 zheka мне нужно звук оцифрованный записывать - в оригина... Jan 30 2006, 16:57 makc Цитата(zheka @ Jan 30 2006, 19:57) мне ну... Jan 30 2006, 17:17 micci_n в вышеупомянутой статье по согласованию микросхем,... Jan 30 2006, 21:47 rezident Тема двухлетней давности. Зачем было поднимать ее?... Apr 10 2008, 13:55 valera_o не бейте по голове, лучше ткните носом, я ж привел... Apr 11 2008, 14:09 rezident Цитата(valera_o @ Apr 11 2008, 20:09) не ... Apr 11 2008, 14:25 defunct Цитата(valera_o @ Apr 11 2008, 16:09) что... Apr 11 2008, 21:53 Kovrov а вообще,друзья мои, какие альтернативы DATAFLASH? Apr 12 2008, 14:28 A. Fig Lee Цитата(Kovrov @ Apr 12 2008, 10:28) а воо... Apr 12 2008, 16:05 valera_o Благодарю всем, за подсказки и советы. Все заработ... Apr 14 2008, 05:51 valera_o Возник еще вопрос.
Кусок проги вставлю позже. В о... May 14 2009, 08:47
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|