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

 
 
> замена AT45DB161B-RI на AT45DB161D-SU, проблема с отсутствием ноги RDY/~BUSY
plombir
сообщение Nov 17 2006, 12:33
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 99
Регистрация: 14-12-05
Пользователь №: 12 191



Доброго дня, Господа!

Так как м/с flash AT45DB161B-RI (28 ног) снята с производства, решено заменить её на 8-и ножечную. Так, вот, проблема возникла при написании кода определения занятости м/с. Если раньше сигнал проверялся на ноге RDY/~BUSY и проблем не было, то здесь она отсутствует и приходится проверять через "Регистр Статуса" 7-ой бит. Что то не получается... Перепробовал по разному и по всякому. Начинает работать если ставится задержка из цикла NOP-ов вместо ожидания.

Если кто сталкивался с программным опросом м/с flash AT45 через регистр, подскажите пожалуйста последовательность действий при ожидании занятости.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Ykidia
сообщение Mar 31 2007, 20:59
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 80
Регистрация: 3-08-06
Пользователь №: 19 287



Цитата
Вы же данные не тем концом суете.

Вообще-то 2 варианта. Если вдруг Вы правы, тогда у меня бы все читалось наоборот, и в статусе было бы что-то вроде 0x35 вместо 0xAC или 0x37 вместо 0xEC. Но такого нет и рядом, читается 0x00 (либо 0xFF, который я раньше выдавал в линию для старта передачи), а в большинстве "рабочих" экземпляров читается что надо.
Ну а второй вариант - просто посмотрите внимательно на мой дефайн:
Цитата
#define SPI_MODE 0x38

Бит 6 = 0, отсюда
Цитата
When 0, SPI data is transferred MSB (bit 7) first.

что вполне совпадает с требованиями:
Цитата
All instructions, addresses, and data are transferred with the most significant bit (MSB) first.


Цитата
Единственное, у меня IAR строчки вида S0SPSR; просто выкидывает. Хотя это явная ошибка, по стандарту должно быть чтение. Поэтому я делаю { volatile uint8_t tmp = S0SPSR; }. Не смотрели листинг, может то же самое?

У меня не выкидывает. Смотрел по листингу для 2214 - чтение на месте. Для 2138 при компиляции почему-то сообщает, что выражение не имеет эффекта, но по листингу все равно чтение остается.

Сообщение отредактировал Ykidia - Mar 31 2007, 20:59
Go to the top of the page
 
+Quote Post
defunct
сообщение Apr 1 2007, 04:56
Сообщение #3


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(Ykidia @ Mar 31 2007, 19:59) *
Вообще-то 2 варианта. Если вдруг Вы правы, тогда у меня бы все читалось наоборот...

Вообще-то был бы только 1 вариант - писалось бы наоборот тоже. Тобиш вместо опкода 0x57 посылался бы 0xEA.. На такой опкод вполне реально получить в ответ 0x0 или 0xFF.
Но это к проблеме не относится.. а так просто чтобы обратить внимание на причинно следственную связь.

А по проблеме, думаю банально накосячили с сигналами либо заняли чем-то SSEL..
Если программно клокать, работает?

Цитата
S0SPSR;

Я бы так ни в жизнь не написал.

Код
    V32 dummy = S0SPSR; // dummy read of SPIF

куда понятнее смотрится и безопастнее.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- plombir   замена AT45DB161B-RI на AT45DB161D-SU   Nov 17 2006, 12:33
- - prottoss   Цитата(plombir @ Nov 17 2006, 19:33) Добр...   Nov 17 2006, 12:41
- - VDG   Цитата(plombir @ Nov 17 2006, 15:33) Если...   Nov 17 2006, 12:42
- - prottoss   Раз уж создана тема про ДатаФлэш, хотелось бы спро...   Nov 17 2006, 15:14
|- - zltigo   Цитата(prottoss @ Nov 17 2006, 17:14) Раз...   Nov 17 2006, 19:36
|- - rezident   Цитата(prottoss @ Nov 17 2006, 20:14) Раз...   Nov 17 2006, 20:23
|- - prottoss   Цитата(rezident @ Nov 18 2006, 03:23) На ...   Nov 18 2006, 16:17
- - vesago   Я из экономии ног и 28 ноговую db161 опрашивал чер...   Nov 17 2006, 19:29
- - Ykidia   ЦитатаНичего сложного там нет. Читаете даташит и с...   Mar 28 2007, 12:41
|- - Сергей Борщ   Цитата(Ykidia @ Mar 28 2007, 11:41) Так ч...   Mar 28 2007, 13:05
- - Ykidia   Спасибо за ответ. У меня примерно такой же код (со...   Mar 28 2007, 13:25
|- - Сергей Борщ   Цитата(Ykidia @ Mar 28 2007, 12:25) однак...   Mar 28 2007, 13:47
- - add   Работал с AT45DB041 в soic8 корпусе. Там нет ножк...   Mar 28 2007, 13:35
- - Ykidia   Да, фиктивную передачу делаю, иначе просто бит око...   Mar 28 2007, 14:38
|- - Сергей Борщ   Цитата(Ykidia @ Mar 28 2007, 13:38) Да, ф...   Mar 29 2007, 13:46
- - Itch   Насколько я понял из даташита, читать весь статусн...   Mar 28 2007, 21:42
- - Artem_Petrik   Цитатаdo { DF_ChipSelect_Start(); ...   Mar 28 2007, 22:30
- - Ykidia   Вот они: Код#define SPI_MODE 0x38 // MSTR CPOL...   Mar 30 2007, 10:17
|- - Сергей Борщ   Цитата(Ykidia @ Mar 30 2007, 09:17) Вот о...   Mar 30 2007, 12:53
- - sensor_ua   ЦитатаЕдинственное, у меня IAR строчки вида S0SPSR...   Mar 31 2007, 10:00
|- - Сергей Борщ   Цитата(sensor_ua @ Mar 31 2007, 09:00) Вс...   Mar 31 2007, 13:24
|- - zltigo   Цитата(Сергей Борщ @ Mar 31 2007, 12:24) ...   Mar 31 2007, 16:32
|- - Сергей Борщ   Цитата(zltigo @ Mar 31 2007, 15:32) Да не...   Mar 31 2007, 16:45
|- - zltigo   Цитата(Сергей Борщ @ Mar 31 2007, 15:45) ...   Mar 31 2007, 17:03
|- - Сергей Борщ   Цитата(Ykidia @ Mar 31 2007, 19:59) Ну а ...   Mar 31 2007, 22:57
|- - zltigo   Цитата(defunct @ Apr 1 2007, 03:56) Я бы ...   Apr 1 2007, 09:18
- - sensor_ua   ЦитатаЯ бы так ни в жизнь не написал А меня задолб...   Apr 1 2007, 08:27
- - Ykidia   ЦитатаЯ бы попробовал с таким максимально простым ...   Apr 1 2007, 23:48
|- - defunct   Цитата(Ykidia @ Apr 1 2007, 22:48) и оказ...   Apr 2 2007, 00:08
- - Ykidia   Доброе утро! ЦитатаV32 это естьtypedef volati...   Apr 2 2007, 00:18
- - Ykidia   Господа! Прошу простить меня за беспокойство...   Apr 3 2007, 16:37
- - Ykidia   Забыл сказать всем ответившим - большое спасибо за...   Apr 3 2007, 22:34


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

 


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


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