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

 
 
> Помогите разобраться с подключением внешней памяти к LPC
vesago
сообщение Apr 25 2006, 06:13
Сообщение #1


Тутэйшы
****

Группа: Свой
Сообщений: 708
Регистрация: 30-11-04
Пользователь №: 1 263



В моей системе к LPC2214 подключены две срам as7c34098a и две флешки am29lv320b. В данный момент через уарт пытаюсь писать/читать данные. В срам если не более 5 байт длина блока пишется читается нормально. Если больше, то левые данные. Из флешки читаются нули, хотя по идее должны FF. Первое подозрение на кривой код, но я его в симуляторе кейла проверил. Потом ошибки монтажа. Но как я упоминал в отношении срам - по несколько байт нормально обрабатывается. Впрочем еще проверю. Меня интересует какие значения задержек надо выставлять при конфигурации EMC и надо-ли пины настраивать на вход/выход. В пинселе я сконфигурировал как надо. Еще - надо ли что-то подтягивать к питанию. Срам у меня 12 нс, флешь 90 нс.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение May 4 2006, 09:28
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Пример кода:

Код
void cmd_reset(void)
{
    *(volatile u_int *)(base_addr + 0x15554) = 0xaa00aa;    // Read/Reset sequence
    *(volatile u_int *)(base_addr + 0x0aaa8) = 0x550055;    //
    *(volatile u_int *)(base_addr + 0x15554) = 0xf000f0;    //
}

u_int cmd_write_word(u_int data)
{
    *(volatile u_int *)(base_addr + 0x15554) = 0xaa00aa;    // Program sequence
    *(volatile u_int *)(base_addr + 0x0aaa8) = 0x550055;    //
    *(volatile u_int *)(base_addr + 0x15554) = 0xa000a0;    //
    *(volatile u_int *)(base_addr + offset) = data;
    return cmd_data_poll(data);
}

u_int cmd_erase_flash(void)
{
    cmd_erase_seq();
    *(volatile u_int *)(base_addr + 0x15554) = 0x100010;
    offset = 0x00;
    return cmd_data_poll(0xff00ff);
}

void cmd_identify(void)
{
    *(volatile u_int *)(base_addr + 0x15554) = 0xaa00aa;    // Autoselect sequence
    *(volatile u_int *)(base_addr + 0x0aaa8) = 0x550055;    //
    *(volatile u_int *)(base_addr + 0x15554) = 0x900090;    //
    manuf_code  = *(volatile u_int *)(base_addr);
    device_code = *(volatile u_int *)(base_addr + 0x04);
}

u_int cmd_erase_sector(void)
{
    cmd_erase_seq();
    *(volatile u_int *)(base_addr + offset) = 0x300030;
    return cmd_data_poll(0xff00ff);
}

void cmd_erase_seq(void)
{
    *(volatile u_int *)(base_addr + 0x15554) = 0xaa00aa;    // Erase sequence
    *(volatile u_int *)(base_addr + 0x0aaa8) = 0x550055;    //
    *(volatile u_int *)(base_addr + 0x15554) = 0x800080;    //
    *(volatile u_int *)(base_addr + 0x15554) = 0xaa00aa;    //
    *(volatile u_int *)(base_addr + 0x0aaa8) = 0x550055;    //
}    

u_int cmd_data_poll(u_int data)
{
    u_int a;

    do
    {
        a = *(volatile u_int*)(base_addr + offset);
    } while(((data & 0x800080) != (a & 0x800080)) && ((a & 0x200020) != 0x200020));
    if((data & 0x800080) != (*(volatile u_int*)(base_addr + offset) & 0x800080)) return 0x01;
    return 0x00;
}
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- vesago   Помогите разобраться с подключением внешней памяти к LPC   Apr 25 2006, 06:13
- - zltigo   Цитата(vesago @ Apr 25 2006, 09:13) ... С...   Apr 25 2006, 06:21
- - vesago   Я правильно вас понял, что есть апликейшн нот по д...   Apr 25 2006, 06:49
|- - zltigo   Цитата(vesago @ Apr 25 2006, 09:49) Я пра...   Apr 25 2006, 07:57
- - doomer#gp   Только что проверил. (Olimex -LPC-2214) Записал/пр...   Apr 25 2006, 07:44
- - vesago   Спасибо. Буду разбираться.   Apr 25 2006, 09:19
- - vesago   Вроде работает. Закралась досадная ошибочка в прог...   Apr 25 2006, 11:44
|- - zltigo   Цитата(vesago @ Apr 25 2006, 14:44) Вроде...   Apr 25 2006, 18:11
- - vesago   Люди, помогите разобраться с записью в AM29LV320. ...   May 4 2006, 09:08
- - vesago   Большое спасибо! Сейчас попробую.   May 4 2006, 09:39
- - vesago   Попал я как кур во щи. Не пашут флешки хоть тресни...   May 4 2006, 12:37
- - aaarrr   Вроде бы, все правильно прописано. BLS заводить не...   May 4 2006, 16:39
- - vesago   Завтра загоню в цикл чтение сигнатуры, посмотрю ос...   May 4 2006, 19:53
- - vesago   Посмотрел осцилом - все нормально. В смысле на адр...   May 5 2006, 09:55
- - aaarrr   Использовался, только не с LPC. Флеш была AMD...   May 5 2006, 10:19
- - aaarrr   Посмотрет тут еще Вашу схемку (v2.rar) - на DD6 ду...   May 5 2006, 10:31
- - vesago   Благодарю. A15 был поправлен на этапе рисования пл...   May 5 2006, 11:40
- - vesago   Память я запустил, за что особенно спасибо aaarrr....   May 10 2006, 14:33
- - aaarrr   Вроде как сложностей нет, если только SecSi не зап...   May 10 2006, 16:39
- - vesago   Чертовщина какая-то. Пишу слово по адресу 0h. Данн...   May 16 2006, 16:11


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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 06:51
Рейтинг@Mail.ru


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