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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
Alt.F4
сообщение Oct 21 2010, 20:15
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 468
Регистрация: 28-03-10
Из: Беларусь
Пользователь №: 56 256



Опытным путем пришел к выводу, что чтобы считать что-либо из памяти (буфер, страницу прочитать или регистр статуса) всегда надо сначала посылать байт, а только затем считывать. В даташите такого не указано. Почему?
Спасибо.
Go to the top of the page
 
+Quote Post
MALLOY2
сообщение Oct 21 2010, 20:19
Сообщение #2


Знающий
****

Группа: Validating
Сообщений: 838
Регистрация: 31-01-05
Пользователь №: 2 317



Наверное потому что это SPI или я вопроса не понял smile.gif
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Oct 21 2010, 20:30
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(MALLOY2 @ Oct 22 2010, 00:19) *
Наверное потому что это SPI или я вопроса не понял smile.gif

АГА SPI и пол DS посвящено протоколу обмена. Так , что как-то вопрос не о чём


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
Alt.F4
сообщение Oct 21 2010, 20:35
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 468
Регистрация: 28-03-10
Из: Беларусь
Пользователь №: 56 256



DS data flash не описывает, что надо сперва передавать байт, а затем читать, в DS на ATmega тоже такого не встречал. Помню только что буфер у SPI только приему. unsure.gif

Сообщение отредактировал Alt.F4 - Oct 21 2010, 20:38
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Oct 21 2010, 20:47
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(Alt.F4 @ Oct 22 2010, 00:35) *
DS data flash не описывает, что надо сперва передавать байт, а затем читать, в DS на ATmega тоже такого не встречал. Помню только что буфер у SPI только приему. unsure.gif

07.gif
и страница 3
Read
By specifying the appropriate opcode, data can be readfrom the main memory or from either one of the two data
buffers.


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
Alt.F4
сообщение Oct 21 2010, 21:16
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 468
Регистрация: 28-03-10
Из: Беларусь
Пользователь №: 56 256



Вы наверное немного не те графики привели. OPCODE - это по-моему команда.
Еще раз полистал все waveforms и вроде бы как нашел эти "dummy bytes". Но по графику получается, что их постоянно повторять не надо, достаточно только после адреса послать 4 байта для чтения страницы и 1 байт для чтения буфера?
 Уменьшено до 83%
Прикрепленное изображение
1010 x 304 (29.37 килобайт)

з.ы. непонятно почему про эти "dummy bytes" не сказано в пунктах описания чтения буфера и страницы. Поиск слова dummy нашел только 5 мест, без графиков... wacko.gif

Сообщение отредактировал Alt.F4 - Oct 21 2010, 21:19
Go to the top of the page
 
+Quote Post
rezident
сообщение Oct 21 2010, 21:30
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



В даташите Dataflash имеется сводная таблица Detailed Bit-level Addressing Sequence for DataFlash, где указано сколько байт требуется передать для выполнения операции и сколько дополнительных незначащих (dummy) байт требуется перед тем, как эта операция будет выполнена. В любом случае требуется передать как минимум один байт Opcode и один незначащий байт для чтения, например, регистра статуса. Связано это с тем, что SPI это синхронный интерфейс и мастер, тактируя шину, побитно "пропихивает" данные в сдвиговый регистр приемника ведомого, получая одновременно от сдвигового регистра передатчика ведомого такое же количество бит в свой собственный сдвиговый регистр приемника. SPI осуществляет не просто прием или передачу, а одновременный обмен данными (транзакцию). Первый байт - Opcode - сообщает Dataflash код команды, которую требуется выполнить и только, проведя как минимум еще один обмен, можно получить результат выполнения этой команды (завершить транзакцию). В других случаях требуется бОльшее количество циклов обмена данными, т.к. DataFlash выполняет какие-либо операции внутри себя перед выдачей результата команды.
Go to the top of the page
 
+Quote Post
Alt.F4
сообщение Oct 22 2010, 12:02
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 468
Регистрация: 28-03-10
Из: Беларусь
Пользователь №: 56 256



rezident, вот теперь все ясно. Я раньше думал, что SCK выдает тактовые импульсы постоянно, а не только во время обмена битами.
Т.е. получается, чтобы прочитать страницу командой D2h надо послать 4 байта dummy + 1 байт, во время которого произойдет чтение.
Огромное спасибо, тема раскрыта! beer.gif

Сообщение отредактировал Alt.F4 - Oct 22 2010, 12:12
Go to the top of the page
 
+Quote Post
Alt.F4
сообщение Jan 4 2011, 17:03
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 468
Регистрация: 28-03-10
Из: Беларусь
Пользователь №: 56 256



"Шото я не поняв, чому":
CS=0, шлю команду чтения страницы без буфера D2h + адрес + 4 dummy байта, затем читаю байт из флэша.
После этого, чтобы прочитать следующий байт из флэша, надо сделать пустую передачу байта.
Вопрос: почему не 4 dummy байта, а 1?
Спасибо.
Go to the top of the page
 
+Quote Post
rezident
сообщение Jan 4 2011, 18:17
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Alt.F4 @ Jan 5 2011, 01:03) *
Вопрос: почему не 4 dummy байта, а 1?
Потому, что уже не нужно загружать во внутренний счетчик-дешифратор полный (18+ бита) адрес этого байта. Загруженное первой командой значение этого счетчика автоматически инкрементируется после передачи каждого последующего dummy.
Go to the top of the page
 
+Quote Post
Alt.F4
сообщение Jan 4 2011, 18:23
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 468
Регистрация: 28-03-10
Из: Беларусь
Пользователь №: 56 256



А почему тогда в графике из поста 6 стрелками указаны "4 dummy bytes"? Ошибка даташит? Да и в самой главе о чтении страницы памяти об это не сказано.
Даташит - додумай сам wacko.gif

Сообщение отредактировал Alt.F4 - Jan 4 2011, 18:23
Go to the top of the page
 
+Quote Post
rezident
сообщение Jan 4 2011, 18:38
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Нет там ошибки. Данные поступают на выход dataflash после передачи последовательности: 1 байт cmd, 3-х байт адреса, 4-х dummy и после каждого последующего переданного dummy-байта.
Обратите внимание, что такая последовательность только для режима Continuous Array Read - Legacy Command (cmd=0xE8). Для режима High Frequency (cmd=0x0B) требуется только 1 дополнительный dummy-байт, а для Low Frequency (cmd=0x03) чтения дополнительных dummy-байт вовсе не требуется.
Go to the top of the page
 
+Quote Post
Alt.F4
сообщение Jan 4 2011, 19:01
Сообщение #13


Профессионал
*****

Группа: Свой
Сообщений: 1 468
Регистрация: 28-03-10
Из: Беларусь
Пользователь №: 56 256



Вы видимо график не посмотрели. Снизу есть надпись "4 dummy bytes", которая стрелками указывает на место после адреса и на место следующее после чтения.
Я веду речь про Main Memory Page Read


Сообщение отредактировал Alt.F4 - Jan 4 2011, 19:08
Go to the top of the page
 
+Quote Post
rezident
сообщение Jan 4 2011, 19:06
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Alt.F4 @ Jan 5 2011, 03:01) *
Вы видимо график не посмотрели. Снизу есть надпись "4 dummy bytes", которая стрелками указывает на место после адреса и на место следующее после чтения.
Я-то посмотрел. Это вы ...эээ... не совсем адекватно видите то, что изображено. rolleyes.gif Стрелки следует трактовать как открывающую и закрывающую скобки. Вот потактовая картинка этого же самого процесса. Посчитайте биты и переведите их в байты, поделив на 8 wink.gif
Эскизы прикрепленных изображений
 Уменьшено до 81%
Прикрепленное изображение
899 x 287 (15.41 килобайт)
 
Go to the top of the page
 
+Quote Post
Alt.F4
сообщение Jan 4 2011, 19:17
Сообщение #15


Профессионал
*****

Группа: Свой
Сообщений: 1 468
Регистрация: 28-03-10
Из: Беларусь
Пользователь №: 56 256



Ну в этом графике тоже нигде не указано, что при последующих чтениях байтов надо слать один dummy.
Здесь указано только начало всей операции... Главу Main Memory Page Read уже который раз перечитываю, ну не написано там такого!
Go to the top of the page
 
+Quote Post

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

 


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


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