roboforum.ru

Технический форум по робототехнике.

[Решено] AT45DB проблема чтения/записи

[Решено] AT45DB проблема чтения/записи

Сергей » 21 авг 2010, 21:50

Есть SPI DataFlash AT45DB321. Проблема заключается в том, что читается значение 0xB4 из памяти, независимо от того что писалось туда.
Теперь более конкретно.
- У SPI частота 5МГц
- Чтение байта статуса проходит нормально, все биты правильные.
- Запись производиться командой PROGRAM_MAIN_THROUGH_BUFFER1 (0x82), то есть напрямую, без буффера.
- Запись проходит корректно, смотрел осциллом.
- Для проверки код взял отсюда
Который без DMA, и начинается с AT45DB_
- После записи жду бит READY в статус байте, через некоторое время он появляется, не похоже чтобы ложно срабатывал.
- Чтение тоже корректно отрабатывает, но флеш отправляет байты 0xB4, проверял осциллом, странно.

Может кто сталкивался? Есть идеи?

В функции ожидания статуса READY, при возврате не отпускался chip select, поэтому следующий процесс чтения читал только статус регистр.

Re: AT45DB проблема чтения/записи

avr123.nm.ru » 21 авг 2010, 22:05

Проверить правильность сигналов SPI. Можно в PROTEUS осцилограммы посмотреть и сравниь с даташитом.

Re: AT45DB проблема чтения/записи

Сергей » 21 авг 2010, 22:10

Проверял, осциллом, в живую. И статус байт читается нормально, когда пишет в память флаг BUSY есть, и на команды откликается соответственно. Все указывает на то, что живой чип и общение нормально.
У кого-нибудь есть простой пример записи\чтения страницы (без буффера) для этого чипа? Просто я дошел до кондиции, когда не вижу своих ошибок, нужен другой код, в интернете в основном все наворочено под микро ОС, мусора выкидывать много.

Re: AT45DB проблема чтения/записи

Michael_K » 21 авг 2010, 22:12

B4 - похоже на статусный байт...
(а WP не стоит случаем?)

Re: AT45DB проблема чтения/записи

Сергей » 21 авг 2010, 22:18

Да, действительно, это значение статус регистра, в нормальном состоянии..
WP в единице подвешен.

Re: AT45DB проблема чтения/записи

Michael_K » 21 авг 2010, 22:29

значит или команды попутали (где-то в чтении, скорее всего) или где-то между ними ЦС не сняли...
или что-то в таком духе...
как обычно, будете смеяться какая тупая ошибка БЫЛА :) но только после того, как найдете.

Re: [Решено] AT45DB проблема чтения/записи

Сергей » 23 авг 2010, 15:49

Спасибо Michael_K

Re: [Решено] AT45DB проблема чтения/записи

avr123.nm.ru » 23 авг 2010, 16:00

А что было то не скажете ?

Re: [Решено] AT45DB проблема чтения/записи

Сергей » 23 авг 2010, 16:19

Добавил в первый пост жирным текстом

Re: [Решено] AT45DB проблема чтения/записи

avr123.nm.ru » 23 авг 2010, 16:35

Сергей писал(а):не отпускался chip select


Это можно было увидеть в PROTEUS в логическом анализаторе без модели памяти. Только проц и прога.

Re: [Решено] AT45DB проблема чтения/записи

Сергей » 23 авг 2010, 16:45

Я не хотел переносить код на AVR или PIC, потому что давно уже их не использовал.

Re: [Решено] AT45DB проблема чтения/записи

avr123.nm.ru » 23 авг 2010, 17:27

В PROTEUS и ARM есть. :D

Если ARM то в лог анализаторе KEIL тоже отлично смотреть трассы сигналов.


Rambler\'s Top100 Mail.ru counter