justontime 0 31 января, 2015 Опубликовано 31 января, 2015 · Жалоба проверьте уже - это быстрее, чем прочитать то, что вам уже дали или дожидаться ответа от форума. Я приблизительно 7000 км от своей конструкции, и должен вернуться только через неделю, а знать хочется сейчас :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
smalcom 0 31 января, 2015 Опубликовано 31 января, 2015 · Жалоба значит у вас много времени. почитайте документацию на протокол. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
justontime 0 31 января, 2015 Опубликовано 31 января, 2015 (изменено) · Жалоба значит у вас много времени. почитайте документацию на протокол. Спасибо за такой "полезный" ответ... Если не знаете, то лучше помолчите, и все... Во-первых, свободного времени как раз у меня еще меньше, чем обычно. Во вторых, относительно документации - о какой документации идет речь ? Например, в "SD specifications Part 1 Physical Layer Simplified Specification" описание "железной" части SPI протокола ограничено следующим: Every command or data block is built of 8-bit bytes and is byte aligned to the CS signal (i.e. the length is a multiple of 8 clock cycles). The card starts to count SPI bus clock cycle at the assertion of the CS signal. Every command or data token shall be aligned to 8-clock cycle boundary. Similar to the SD Memory Card protocol, the SPI messages consist of command, response and data-block tokens. All communication between host and cards is controlled by the host (master). Ну и какую информацию по моему вопросу можно извлечь из этого описания ? Можно (и нужно) читать также документацию по SPI (что я, кстати, также делал), но там описывается сугубо физический уровень, а как конкретное устройство логически интерпретирует различные посылки, это уже дело устройства, а не физического протокола. Update: Хотя и неофициальный стандарт, но нашел следующее: The CS signal must be continuously active for the duration of the SPI transaction (command, response and data). The only exception occurs during card programming, when the host can deassert the CS signal without affecting the programming process. Изменено 31 января, 2015 пользователем justontime Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
djeker 0 8 мая, 2015 Опубликовано 8 мая, 2015 (изменено) · Жалоба Возможно немного не по теме,но это тоже связано с взаимодействием по SPI с флешью.Принцип работы микрухи я допилил по такой схеме - в Протеусе нашел в библиотеке микросхем подобную интересующей,у меня это 25LC256(емкость и серия может быть другой,важен сам принцип SPI),вставил в форму эту микру,вставил паттерн генератор,вставил SPI анализатор,попарился пока вкурил как работает ггенератор и анализатор(1сутка) и вместе с даташитом начал тестировать микру. В результате - на Протеус форме микра после многих вариантов тестов таки начала давать то что нужно. На всякий случай опишу принцип,вдруг кому нибудь понадобится.На сайте инфы по ней не обнаружил. Выводы микры HOLD,WP на плюс. Далее - CS на 0. даем 8 тактовых имп-са на SKC(CLK),параллельно на выводе MOSI выдаем цифру 6 (разрешение записи в микру) MSB - старшим битом вперед. Далее CS на 1. Пауза(микро,мили) Далее - CS на 0. Пишем 2 (запрос на запись) Пишем 0 (старшая часть адреса) Пишем х(5) (любая цифра младш адр,например 5) Пишем Data (например 10) Далее - CS на 1. Пауза Далее - CS на 0. Пишем 3 (запрос на чтение из микры) Пишем 0 (ст часть адр) Пишем 5 (мл ч адр) Пишем 0 (во время выхода этих 8 - ми тактов с ноги MISO микры вылезут данные,в нашем случае - 10) Далее - CS на 1. Вроде простой алгоритм,но чтобы до него созреть пришлось "километры" болот и топей пробуксовать в Протеусе. Удачи. P.S. Это пример для EEPROM SPI, но этим способом можно быстро выяснить принцип работы и Flash SPI Memory. Также в Протеусе в библиотеке микросхем есть компонент виртуальной SPI CD карты - MMC. Изменено 9 мая, 2015 пользователем jukebox Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dart191 0 17 июня, 2015 Опубликовано 17 июня, 2015 · Жалоба Касательно записи на SD карту могу вам сказать, что когда мы тестировали получалась такая вещь, что время записи данных на карту все время варьировалось несмотря на то, что мы передавали все время один и тот же размер буфер, следовательно логично предположить, что поэтому на рисунках и изображены байты с различным временем задержки между ними. Возможно такое связано с какими-то внутренними процессами в работе карты. Правда работали мы с SDIO+DMA. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
djeker 0 7 июля, 2015 Опубликовано 7 июля, 2015 · Жалоба Итак, позанимался с Flash AT25FD041A.Есть некоторое несовпадение с протеусом, хотя может не доглядел. Для записи байта во флэш надо : CS на 1; Пишем 6; далее CS на 0; и дальше по накатанной,опкод 2, адрес,байт данных. CS на 1; только адрес трехбайтный. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 242 8 июля, 2015 Опубликовано 8 июля, 2015 · Жалоба CS на 1; Пишем 6; Во время CS=1 любые SPI-флешки игнорят любые данные на MOSI. Не надо ничего писать при CS=1. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MiklPolikov 0 8 июля, 2015 Опубликовано 8 июля, 2015 · Жалоба Вроде простой вопрос, а вот явного ответа на него пока не нашел - при работе с SD картой по SPI протоколу нужно ли как-то (паузами) разделять байты в пакете ? Не нужно. Интерфейс SPI вообще этих пауз не увидит. Он понимает только фронты CLK. Но между длинными пакетами , для надёжности, можно дёргать в 1 CS , для того что бы быть увереным, что порядок бит не сбился, т.е. что 1й бит одного байта не начал попадать в 8й следующего. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
toweroff 1 8 июля, 2015 Опубликовано 8 июля, 2015 · Жалоба Не нужно. Интерфейс SPI вообще этих пауз не увидит. Он понимает только фронты CLK. Но между длинными пакетами , для надёжности, можно дёргать в 1 CS , для того что бы быть увереным, что порядок бит не сбился, т.е. что 1й бит одного байта не начал попадать в 8й следующего. а если аппаратно настроен пин и данные гонятся потоком, через DMA, например? а потеря порядка битов - это, простите, к схемотехнику и разводчику платы :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MiklPolikov 0 8 июля, 2015 Опубликовано 8 июля, 2015 · Жалоба а если аппаратно настроен пин и данные гонятся потоком, через DMA, например? Разумеется данные через DMA. Но между данными всё равно есть какие-то перерывы, вот в них, для верности, и надо дёргать CS . а потеря порядка битов - это, простите, к схемотехнику и разводчику платы :) Порядок бит не должен теряться. Но предусмотреть защиту от всего что может и не может случится - это как раз к программисту : ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 242 10 июля, 2015 Опубликовано 10 июля, 2015 · Жалоба Порядок бит не должен теряться. Но предусмотреть защиту от всего что может и не может случится - это как раз к программисту : ) Не уверен что спецификация SD требует от контроллера SD-карты сброса битовой state-машины при переводе CS=high. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
djeker 0 15 июля, 2015 Опубликовано 15 июля, 2015 (изменено) · Жалоба Во время CS=1 любые SPI-флешки игнорят любые данные на MOSI. Не надо ничего писать при CS=1. Действительно, неточность написал, сорри за порожняк. Итак, после того как погонял микру через самопальную прогу имитации импульсов через LPT порт микра заработала.Только через резисторный делитель, чтобы 3В было на микре. Работает все как и в протеусе с той лишь разницей что вначале надо разблокировать секторы последовательностью : CS = 0 пишем 0х6 CS = 1 --- CS = 0 пишем 0х1 ;запись в status регистр пишем 0х0 ; разблокирование CS = 1 --- такой же комбинацией пишется любой opcod (|_0х6 _| |_0х1 opcod(например писать массивом или др команда) | --- CS = 0 пишем 0х6 CS = 1 --- CS = 0 пишем 0х2 ; запрос на запись ну и далее по тексту ... Лично у меня флэшь работает как от нее и требуется.Без проги на одном даташите фиг бы разобрался даже если бы переведенный был бы. Изменено 15 июля, 2015 пользователем jukebox Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться