|
|
  |
Удаленная прошивка At91Sam9 |
|
|
|
Feb 20 2013, 14:07
|

Профессионал
    
Группа: Свой
Сообщений: 1 262
Регистрация: 13-10-05
Из: Санкт-Петербург
Пользователь №: 9 565

|
Цитата(wmakc @ Feb 20 2013, 15:42)  То есть функция AT45_Read работает. После выполняется AT45_Erase. На ней вот все и останавливается. Если стирать часть памяти, не задействованную под прошивку, то все нормально. Надо подобрать время паузы после подачи команды на стирание или проверять бит готовности флеши. Цитата(kovigor @ Feb 20 2013, 15:48)  Напишите свои функции, а не используйте совершенно ненужные в данном случае "черные ящики". Разместите их в ОЗУ и оттуда вызывайте, тогда можно стереть все, что угодно. А где ещё можно разместить функции в SAM9 у которого прошивка в AT45xxx?
|
|
|
|
|
Feb 26 2013, 01:50
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(_4afc_ @ Feb 25 2013, 15:03)  (написанная студентами в ИАРе) - Может в этом и есть проблема? У нас в устройстве может быть впаяна одна AT45DB321 или две AT45DB161 и ПО определяет автоматически, что впаяно и сколько сигналов CS использовать. Работает в любом варианте без проблем со всем размером флеш в произвольном постраничном доступе. Цитата(_4afc_ @ Feb 25 2013, 15:03)  стала глючить - тайминги дескать другие. Какие тайминги??? По всем частотам эти чипы вроде идентичны. Если-же студенты, вместо использования регистра статуса делают задержки, то нужно было им сразу мозги вправить
|
|
|
|
|
Feb 26 2013, 09:50
|

Профессионал
    
Группа: Свой
Сообщений: 1 262
Регистрация: 13-10-05
Из: Санкт-Петербург
Пользователь №: 9 565

|
Цитата(jcxz @ Feb 26 2013, 04:50)  Какие тайминги??? По всем частотам эти чипы вроде идентичны. Если-же студенты, вместо использования регистра статуса делают задержки, то нужно было им сразу мозги вправить  Конечно они использовали задержки. Тому было две причины. 1. В функциях AT45_Read и т.д. не было проверок статуса, там проверяется не занят ли блок SPI у SAM9. 2. Статус всегда показывал готовность, но флешки не писались  Вот прямо сейчас проверил: Стёр,записал нулями,считал страницу N100 - после каждой операции статуc=0хВ9. Страница содержит 0xFF Стёр,записал нулями,считал страницу N88 - после каждой операции статуc=0хВ9. Страница содержит 0x00 Стираю командой 0х81. Пишу - 0х82. Читаю - 0хЕ8. Вот такие чудеса в течении нескольких лет
|
|
|
|
|
Feb 27 2013, 01:49
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(_4afc_ @ Feb 26 2013, 15:50)  1. В функциях AT45_Read и т.д. не было проверок статуса, там проверяется не занят ли блок SPI у SAM9. 2. Статус всегда показывал готовность, но флешки не писались  Читаем мануал на AT45DB321 и видим что запись - не обязательная причина установки занятости: Код There are several operations that can cause the device to be in a busy state: Main Memory Page to Buffer Transfer, Main Memory Page to Buffer Compare, Buf- fer to Main Memory Page Program, Main Memory Page Program through Buffer, Page Erase, Block Erase, Sector Erase, Chip Erase and Auto Page Rewrite. Цитата(_4afc_ @ Feb 26 2013, 15:50)  Вот прямо сейчас проверил: И...? Вы будете спорить с мануалом? Тогда чудеса Вам обеспечены ещё много лет...  Цитата(_4afc_ @ Feb 26 2013, 15:50)  Стёр,записал нулями,считал страницу N100 - после каждой операции статуc=0хВ9. Страница содержит 0xFF Стёр,записал нулями,считал страницу N88 - после каждой операции статуc=0хВ9. Страница содержит 0x00 Вот такие чудеса в течении нескольких лет  Ещё бы не чудеса! Ведь Вы даже и не AT45DB321D читаете/пишете, а нечто другое AT45DB321D не может возвращать такого статуса!
|
|
|
|
|
Feb 27 2013, 10:25
|

Профессионал
    
Группа: Свой
Сообщений: 1 262
Регистрация: 13-10-05
Из: Санкт-Петербург
Пользователь №: 9 565

|
Цитата(jcxz @ Feb 27 2013, 04:49)  Читаем мануал на AT45DB321 и видим что запись - не обязательная причина установки занятости: Код There are several operations that can cause the device to be in a busy state: Main Memory Page to Buffer Transfer, Main Memory Page to Buffer Compare, Buf- fer to Main Memory Page Program, Main Memory Page Program through Buffer, Page Erase, Block Erase, Sector Erase, Chip Erase and Auto Page Rewrite. И...? Вы будете спорить с мануалом? Тогда чудеса Вам обеспечены ещё много лет...  Я вижу в этом английском, что команды Page Erase (0х81) и Main Memory Page Program through Buffer (0х82) вызывают busy state, что, как я понимаю должно отражаться в соответствующем регистре. Где фраза: запись - не обязательная причина установки занятости ? Цитата(jcxz @ Feb 27 2013, 04:49)  Ещё бы не чудеса! Ведь Вы даже и не AT45DB321D читаете/пишете, а нечто другое AT45DB321D не может возвращать такого статуса! Что-то я вчера со-слепу не то увидел - 0xB5 он возвращает. 0х35 я никогда не видел.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|