реклама на сайте
подробности

 
 
> AVR + DataFlash
DeXteR
сообщение Jan 10 2006, 16:30
Сообщение #1


Местный
***

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



Добрый день уважаемые специалисты smile.gif

Кто нибудь пробывал подключать к AVR DataFlash
Необходимо сделать примерно то что описано в avr335 толька с управлением по I2C

Перекомпилил все под Мегу 8 (поменял ножки)
Собрал схему на макетнице
DataFlash AT45DB081B питаю 3.3 вольтами Атмегу 8 - Пятью

В датащите на AT45DB081B сказано что с 5 вольтовыми сигналами нет проблемм

Тем немение DataFlash ничего не отвечает
несмотря на то что осцилографом видно как Атмега посылает данные.
Сигнала BUSY тоже нету. На выходе ДатаФлеща - 0.

Может спалил
Незнаю

Подскажите пожалуста если кто имеет какието мысли по этому поводу
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
AndyBig
сообщение Jan 10 2006, 21:16
Сообщение #2


Иногдящий
****

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



Цитата
и в коде похоже нету


Ну как же... Я сам там видел smile.gif. Я тоже ковырял этот аппноут и именно там заметил деактивацию чипселекта.

Например:
Код
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 МГц, никаких пауз между деактивацией и активацией делать не надо. Лишь бы компилятор не "оптимизировал" код, который в результате оставляет содержимое регистра в прежнем виде smile.gif).

На всякий случай прилагаю код, который у меня на атмеге64 работает прекрасно. Просьба ногами не бить, изяществом код не блещет smile.gif))).
Прикрепленные файлы
Прикрепленный файл  at45spi.rar ( 1.4 килобайт ) Кол-во скачиваний: 167
 
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 08:38
Рейтинг@Mail.ru


Страница сгенерированна за 0.01443 секунд с 7
ELECTRONIX ©2004-2016