|
|
  |
Можно ли прерывать чтение сектора SD-карты выключая ~CS ? |
|
|
|
Feb 1 2014, 16:09
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(GetSmart @ Feb 1 2014, 13:23)  В стандарте на этот счёт что-то оговорено? В стандарте оговорено, что можно снять во время Busy. В другое время, надо полагать, нельзя. Цитата(GetSmart @ Feb 1 2014, 13:23)  Например, если хочется в фоновом режиме организовать чтение карты, но чтобы другой процесс мог в любой момент без лишних задержек прервать чтение и переключиться на чтение/запись другого сектора. Или может быть есть другой вариант прерывания чтения. Кэш и буфер записи не помогут? Это все же более традиционный путь.
|
|
|
|
|
Feb 2 2014, 10:34
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Тогда вопрос для хоть сколько-нибудь знакомых с внутренней организацией карты. Какие подводные камни можно ожидать, если во время тестирования ограниченного/небольшого кол-ва карт они будут корректно отрабатывать отключение CS при чтении? Вопрос предлагаю рассматривать как ситуация отключения CS, неожиданная даже для ПО. И хотелось бы конструктивно, без пионерских страшилок. Самое страшное, что мне, как незнакомому с втурненней организацией карты, пока видится - карта будет продолжать/завершать передачу данных после передёргивания CS. Т.о. ПО может неверно интерпретировать response карты при передаче ей новой команды.
По поводу выдержки. ..."must be"..."without affecting"... Следует переводить как: CS влияет на приём (интерпретации) SD-картой пакета данных, состоящего из команды, ответа и данных. Влияние может быть вполне нейтральным, если не допустимым, - завершение отработки команды. Допустимым оно будет при явном указании об этом. Нейтральным только вероятно, по желанию разработчика. В документации на серию AT45DBxxx тоже нигде явно не указывается о вольном обращении с CS, но учитывая общие особенности работы с этой серией - понятно, что это допустимо, т.к. и при чтении и при записи нигде не указывается размер блока данных в SPI-транзакции.
Сообщение отредактировал GetSmart - Feb 2 2014, 11:10
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Feb 2 2014, 14:01
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Не мешайте мух с котлетами, вторая часть фразы c "without affecting" относится только и исключительно к "card programming" (это когда она физически пишет блок во флеш), а не к другим режимам, во всех других режимах он "must be", и все тут. Читать надо вЫнимательнее - "Сигнал CS ДОЛЖЕН БЫТЬ....., за одним исключением, когда программинг"
Практически, скорее всего, сброс CS переведет выходной буфер карты в 3-е состояние, а автомат самой карты останется в том же состоянии, в котором и был. Хотя тут каждый производитель контроллера флеша волен реагировать так, как ему хочется, так как ситуация явно ошибочная, и никто не думает, что в ней и как делать.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|