Технический форум по робототехнике.
TrashVigor » 16 янв 2010, 21:56
Кто нибудь прикручивал встроенные билиотеки MMC/SD карт в CVAR 2.04? Че то на инициализации заглючивает в Proteusе.
vvk74 » 17 янв 2010, 01:39
У меня работает, правде не в протеусе, а в железе на atmega644
avr123.nm.ru » 17 янв 2010, 02:08
Если есть чем поделится рабочим - поделись пожалуйста, как пример провереный со схемкой и типом карты протестированой тобой.
vvk74 » 17 янв 2010, 21:21
Схемы я очень редко рисую
, вот мой тестовый проектик работает с картой SD Canon 16 MB в комлекте с фотоаппаратом была, подключение почти как в примере из хелпа (только без согласования уровней т.к. МК запитан от 3-х вольт) программа создает файл и записывает в него данные получаемые с порта С.
- Вложения
-
- fat.rar
- (268.18 КиБ) Скачиваний: 49
TrashVigor » 17 янв 2010, 21:55
vvk74 Большое спасибо!!! Будем разбираться
avr123.nm.ru » 18 янв 2010, 08:37
vvk74 писал(а):Схемы я очень редко рисую
А схема текстом прекрасно рисуется - пример в примерах CVAVR для карточек.
Спасибо за пример.
-= Александр =- » 31 янв 2010, 22:42
Так уж слоилось, что на SPI кроме карты памяти у меня висят еще девайсы и работают они в другом режиме. Отсюда вопрос: если я меняю режим SPI, но с картой в этот момент не работаю - надо ли мне запускать из таймера disk_timerproc()? Ине сглючит ли его от того что режим SPI не тот? На время работы с картой я конечно буду режим обратно менять...
vvk74 » 01 фев 2010, 21:02
КМК надо закрывать сесию (f_mount(0, NULL);), а потом заново подключатся, потому как если SD не пинать постоянно она в спячку уйдет.
blindman » 02 фев 2010, 07:53
disk_timerproc() предназначена для отсчета таймаутов, и еще в ней проверяются наличие карты и защита от записи. Соответственно, если с картой обмен не ведется, то и вызывать необязательно
-= Александр =- » 02 фев 2010, 14:36
Понятно. При кратковременном обращении к другим девайсам карта не отваливалась. Но disk_timerproc() я на всякий случай глушил на это время - а то мало ли что он может натворить. Для себя решил что буду вычитывать сразу много инфы и отключать диск. Вопрос с режимом шины решил "в лоб" - переписал ПЛИСы чтоб они в том-же режиме что и карта работали. Так мороки меньше.
HarryStar » 03 дек 2010, 15:12
Подниму старую тему, т.к. столкнулся с те ми же проблемами.
CVAVR 2.04.4а стандарт
МК mega16L
напряжение 3.3В
Тактирование 1Мц встроенная RC
Нужно читать/писать файлы с карты.
Начал с малого. Все подключил как написано в описании встроенной библиотеки.
Разрешаю прерывания, вызываю функцию disk_status=disk_initialize(0); как в примере.
Больше ничего не делаю, spi и порты я так понял она сама должна настроить.
Она должна вернуть статус, в т.ч. - "нет карты"
Но из этой функции прога не возвращается.
Есть карта, нет карты - пофиг.
В каком направлении копать? Перерыл кучу инфы уже.
HarryStar » 04 дек 2010, 12:47
Разобрался.
Оказывается вызов disk_timerproc(); это все же обязательная часть.
Была еще проблема с памятью. в 1кб ОЗУ ничего не лезет. Перешел на мегу 32.
Все работает, файлы читаются.