|
Прошивка флэш-памяти, есть проблемы... |
|
|
|
 |
Ответов
|
Jun 28 2007, 10:43
|

инопланетянин
  
Группа: Свой
Сообщений: 236
Регистрация: 24-12-06
Из: Питер
Пользователь №: 23 832

|
Цитата(rezident @ Jun 28 2007, 11:57)  Вместо 0x555 вам нужно делать обращение по адресу 0xAAA. Соответственно адрес 0xAAA во втором цикле заменяется на 0x1554. Только проверьте правильность подключения этой Flash в вашем устройстве при 16-битном доступе. Адресная линия A0 вашего CPU не должна подключаться к Flash. A1 CPU должна подключаться к A0 Flash, A2 CPU к A1 Flash, A3 CPU к A2 Flash и т.д. Да, у меня присутствует схемотехническая огреха. Все адресные ноги соеденены напрямую A0 - A0 , A1 - A1 ...  Какие есть предложения по разрешению ситуации? Если я переведу шину проца в байтовый режим, ножка A0_cpu будет функционировать (смогу я записывать по нечетным адресам)? Может использовать -BHE_cpu - (A-1)_flash? Как лучше поступить?
|
|
|
|
|
Jul 4 2007, 11:53
|

инопланетянин
  
Группа: Свой
Сообщений: 236
Регистрация: 24-12-06
Из: Питер
Пользователь №: 23 832

|
Флэшка по-прежнему молчит! Обрисую полную картину: Ножки процессора соединены с ножками памяти напрямую, т.е. A0-A0, A1-A1 ... A20-A20. Флэш жестко подтянута в режим WORD. При работе шины в WORD режиме, не используется A0(только четные адреса) => никак не выставить требуемый адресс 0x555  При работе шины в BYTE режиме, происходит последовательно 2 цикла шины LOW(A0=0), затем High(A0=1)(0x555 выставить можно) Но мне кажется, что во время последовательности команд програмирования, другие команды(LOW) вставлять нельзя, иначе собъется цикл, может я неправ! Какие есть предложения по вопросу,без электрических доработок?
|
|
|
|
|
Jul 4 2007, 13:41
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
При таком подключении: Цитата(Legotron @ Jul 4 2007, 15:53)  Ножки процессора соединены с ножками памяти напрямую, т.е. A0-A0, A1-A1 ... A20-A20. Флэш жестко подтянута в режим WORD. Вы должны жестко подтянуть флеш в режим BYTE, и дальше работать с байтовыми командами по соответствующим адресам(0x555, и т.д.) Пример (Am29LV040B): Код // типы для работы с flash (подключение по 8 бит шине) typedef volatile unsigned char TDATA; typedef volatile unsigned char *PTDATA;
// макросы записи и чтения flash #define FLASH_WRITE(p, d) (*((PTDATA)p) = d) #define FLASH_READ(p) (*((PTDATA)p))
........................... FLASH_WRITE(FLASH_BASE, 0xF0); // команда Reset
FLASH_WRITE(FLASH_BASE+0x555, 0xAA); // переходим в Autoselect FLASH_WRITE(FLASH_BASE+0x2AA, 0x55); FLASH_WRITE(FLASH_BASE+0x555, 0x90);
mId=FLASH_READ(FLASH_BASE) // читаем Manufacturer ID ..........................................
|
|
|
|
|
Jul 5 2007, 05:19
|

инопланетянин
  
Группа: Свой
Сообщений: 236
Регистрация: 24-12-06
Из: Питер
Пользователь №: 23 832

|
Цитата(singlskv @ Jul 4 2007, 17:41)  Код FLASH_WRITE(FLASH_BASE+0x555, 0xAA); // переходим в Autoselect Какой у вас процессор? Мне процессор Infineon XC167не дает возможность обращаться таким образом по нечетным адресам(0x555) при любой конфигурации шины. Другое дело, что в байтовом режиме шины от 1 команды идет 2 цикла записи (1-A0=0 2-A0=1, остальные разряды адресса не изменяются) .
|
|
|
|
|
Jul 5 2007, 10:32
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(Legotron @ Jul 5 2007, 09:19)  Какой у вас процессор? Renesas SuperH Цитата Мне процессор Infineon XC167не дает возможность обращаться таким образом по нечетным адресам(0x555) при любой конфигурации шины. в даташите на Ваш проц написано: Bytes are stored at even or odd byte addresses. Words are stored in ascending memory locations with the low byte at an even byte address being followed by the high byte at the next odd byte address.Цитата Другое дело, что в байтовом режиме шины от 1 команды идет 2 цикла записи (1-A0=0 2-A0=1, остальные разряды адресса не изменяются) . откуда 2 цикла при чтении/записи 1 байта ? У Вас выбран вот этот режим работы шины: 16 … 24-bit Addresses, 8-bit Data, Demultiplexed ??? флеш переключен в байтовый режим работы ?
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|