Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 25.08.2012, 22:57  
Forusfut
Частый гость
 
Регистрация: 25.08.2012
Сообщений: 11
Сказал спасибо: 0
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
Forusfut на пути к лучшему
По умолчанию SD

Доброго времени! Знакомлюсь с работой SD. За основу взял для начала, вот эту статью http://avrlab.com/node/156

МК и карта питаются от 3.25В. Программа зашита таже с той страницы. При включение в терминале видно из отчёта три строчки, что карта инициализирована, записана и прочитана далее из массива только три последовательности правильные 0123456789, а остальное в разброс подряд тройки пятёрки, всякие знаки. При просмотре содержимого карты через WinHex этого массива нет. Укажите куда копать, что может быть не так. Снижал скорость до 9600 то же самое. Карта 1Гб, с 4Гб инициализация не проходит, пишит CMD1 fail.

выводы назначены вот так:
Код:
#define DI 5

#define DO 6

#define CLK 7

#define CS 3

#define INS 0

#define WP 1
PB0 и PB1 посажены на общую шину
Реклама:
Forusfut вне форума  
Сказали "Спасибо" Forusfut
warel (29.06.2019)
Непрочитано 26.08.2012, 01:44  
Forusfut
Частый гость
 
Регистрация: 25.08.2012
Сообщений: 11
Сказал спасибо: 0
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
Forusfut на пути к лучшему
По умолчанию Re: Mega32+SD

Что-то в этот winhex и други файлов не видно, нет карты в Physical Media, только в логическом, тогда как посмотреть, физическую память карты?
Forusfut вне форума  
Сказали "Спасибо" Forusfut
warel (29.06.2019)
Непрочитано 26.08.2012, 01:51  
Алекс Василич
Прописка
 
Аватар для Алекс Василич
 
Регистрация: 14.06.2012
Сообщений: 263
Сказал спасибо: 2
Сказали Спасибо 129 раз(а) в 103 сообщении(ях)
Алекс Василич на пути к лучшему
По умолчанию Re: Mega32+SD

Начни лучше с вот этого мануальчика:
там есть всё, что тебе нужно знать о работе с SD картой.
Сообщение от Forusfut Посмотреть сообщение
тройки пятёрки, всякие знаки
ну, "тройки, пятерки" - это понятно, а что такое "всякие знаки"? Ты что, таблизу ANSI-символов смотришь чтоль?
Вложения:
Тип файла: pdf SD_card_Specification_Ver3.01.pdf (1.13 Мб, 134 просмотров)

Последний раз редактировалось Алекс Василич; 26.08.2012 в 01:55.
Алекс Василич вне форума  
Сказали "Спасибо" Алекс Василич
warel (29.06.2019)
Непрочитано 26.08.2012, 02:03  
Forusfut
Частый гость
 
Регистрация: 25.08.2012
Сообщений: 11
Сказал спасибо: 0
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
Forusfut на пути к лучшему
По умолчанию Re: Mega32+SD

Благодарю, но это на будущие, пока же даже не читает\пишит. С winhex разобрался эт он какой-то глючный был, другой показывает содержимое карты, но записи пока нет.

П.С. Да знаки типа !? и подобный мусор.
Forusfut вне форума  
Сказали "Спасибо" Forusfut
warel (29.06.2019)
Непрочитано 26.08.2012, 02:17  
Алекс Василич
Прописка
 
Аватар для Алекс Василич
 
Регистрация: 14.06.2012
Сообщений: 263
Сказал спасибо: 2
Сказали Спасибо 129 раз(а) в 103 сообщении(ях)
Алекс Василич на пути к лучшему
По умолчанию Re: Mega32+SD

Нет, вот как раз с того мануала и надо бы начинать, хотя бы в ознакомительных целях.
Не читает? А какие ответы приходят? байты Response? Там зашифрованы ошибки.
Нет записи? Во-первых, правильно ли ты записываешь? Целыми или неполными блоками? Карта может писать неполными блоками и без выравнивания по секторам? Это можно узнать, прочитав CSD регистр.
Во-вторых, не включена ли защита от записи? Механическая, программная?

Цитата:
инициализация не проходит, пишит CMD1 fail
Начиная со 113 страницы юзер-мануала: Порядок инициализации в SPI режиме. Команда CMD1 не рекомендуется для SD карт, поскольку данные могуть быть повреждены из-за неверной интерпретации регистров CSD и CID. Скорее всего, у тебя именно этот случай.
Видимо, автор той статьи, по которой ты начал изучать, об этом не знал.

Последний раз редактировалось Алекс Василич; 26.08.2012 в 02:58.
Алекс Василич вне форума  
Сказали "Спасибо" Алекс Василич
warel (29.06.2019)
Непрочитано 26.08.2012, 22:20  
Forusfut
Частый гость
 
Регистрация: 25.08.2012
Сообщений: 11
Сказал спасибо: 0
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
Forusfut на пути к лучшему
По умолчанию Re: Mega32+SD

Какой-то косяк на косяке, при инициализации на команду CMD0 приходит ответ 0 хотя алгоритм автора говорит, что всё нормуль и инициализация прошла. При отладке процедуры spi_transmit выкидывает на main а не на место вызова, что это среда или у меня руки корявые?
Forusfut вне форума  
Сказали "Спасибо" Forusfut
warel (29.06.2019)
Непрочитано 27.08.2012, 00:08  
AJScorp
Почётный гражданин KAZUS.RU
 
Аватар для AJScorp
 
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,548
Сказал спасибо: 384
Сказали Спасибо 737 раз(а) в 417 сообщении(ях)
AJScorp на пути к лучшему
По умолчанию Re: Mega32+SD

Forusfut,
Вопрос, Вы хотите разобраться, как работают SD/MMC, или просто рабочий кусок программы?

Василич правильное направление указал - читайте спецификацию.
стр.115 - Figure 7-2: SPI Mode Initialization Flow
стр.129 - 7.3.2 Responses.
Поиск по форуму...

Последний раз редактировалось AJScorp; 27.08.2012 в 00:10.
AJScorp вне форума  
Сказали "Спасибо" AJScorp
warel (29.06.2019)
Непрочитано 27.08.2012, 00:50  
Forusfut
Частый гость
 
Регистрация: 25.08.2012
Сообщений: 11
Сказал спасибо: 0
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
Forusfut на пути к лучшему
По умолчанию Re: Mega32+SD

Само собой разобраться, но пока что-то туго, теория теорией, а практика как всегда. Вроде куда проще, отослал команду, получил ответ, послал данные, но нет. Выше описание читал и описание автора читал, чувствую опять придётся на ассемблере пилить.
Forusfut вне форума  
Сказали "Спасибо" Forusfut
warel (29.06.2019)
Непрочитано 27.08.2012, 05:50  
Алекс Василич
Прописка
 
Аватар для Алекс Василич
 
Регистрация: 14.06.2012
Сообщений: 263
Сказал спасибо: 2
Сказали Спасибо 129 раз(а) в 103 сообщении(ях)
Алекс Василич на пути к лучшему
По умолчанию Re: Mega32+SD

Эмм, если на команду CMD0 приходит ответ 0х00 - значит, карта занята (Bussy). Тайминги команд нужно выдерживать. Первые импульсы должны подаваться не ранее 250 мс после подачи питания на карту. Первые импульсы CLK должни выдаваться на низкой частоте, чтобы время прохождения 74 импульсов было не менее 1 мс. Затем можно CS=0 и выдать 0х40 00 00 00 00 95 FF FF... (FF выдавать до приема байта, отличного от 0хFF).
Это, конечно, при условии, что SPI работает в правильном режиме - SPI 0. Неактивный уровень CKL - низкий. Сдвиг информации из контроллера происходит при переходе CKL из высокого в низкий, а защелкивание в карте - при переходе CKL из низкого в высокий. Контроллер должен выставить на выход первый передаваемый бит сразу же, до начала тактирования.
Карта передает информацию в контроллер наоборот. Защелкивание бита в контроллере должно происходить в моменты отрицательного фронта CKL.
В контроллере есть аппаратный SPI, зачем себе жизнь усложнять программной эмуляцией, как делал автор той статьи?
Алекс Василич вне форума  
Сказали "Спасибо" Алекс Василич
warel (29.06.2019)
Непрочитано 27.08.2012, 09:42  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Mega32+SD

Еще карта может "подвиснуть", если всякий мусор в нее гнать. Пробуйте питание передергивать.
Тайминги там не так важны - карта все равно быстрее. Там важно дожидаться флага готовности. Без него там и вправду здорово накуролесить можно.
Есть готовый код низкоуровневых операций, но я его под stm32 писал.
Easyrider83 вне форума  
Сказали "Спасибо" Easyrider83
warel (29.06.2019)
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 08:32.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot