Работа с SD картой безпамятсва

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить
Прорезались зубы
Аватара пользователя
Сообщения: 244
Зарегистрирован: Вс апр 17, 2011 21:38:10

Сообщение Protobear »

ребята коты, что означает если карта после инициализации по SPI вернула 0x03 и где бы можно глянуть таблицу ответов карты?
Реклама
Прорезались зубы
Аватара пользователя
Сообщения: 244
Зарегистрирован: Вс апр 17, 2011 21:38:10

Сообщение Protobear »

нашел кое где что 0х01 это состояние покоя (idle state), а 0х02 -erase reset - карта рабочая 2gb team inc. - взял другую - transcend она ответила только 0х01
Я запрашиваю у карты программный сброс и 0х03 соответствует прогр сбросу и сост покоя, а другая же карта (transcend) не подчиняется и отвечает что она в состоянии покоя, но не сбрасывается - может ли такое быть что у разных производителей отличается режим "инициализации" и допустим для transcend-овской карты команда программный сброс игнорируется на ответ - но при этом она все равно инициализирует её .. или нечто подобное
Реклама
Сверлит текстолит когтями
Сообщения: 1278
Зарегистрирован: Пн июн 18, 2007 21:51:20

Сообщение aleksandr-zh »

на форуме это уже обсуждали, поищите по моему логину
и вообще, совет на будущее: ВСЁ НАЧИНАЙТЕ С ЧТЕНИЯ ДАТАШИТА
Потрогал лапой паяльник
Сообщения: 303
Зарегистрирован: Сб янв 08, 2011 13:48:41

Сообщение спящий »

Можете ктонибудь скинуть пример работы с FATfs,просто инициализация,чтение разобрался,а вот чтото с FATfs немогу,прям самое простое:

#include <avr/io.h>
#include <avr/pgmspace.h>
#include <avr/interrupt.h>
#include <string.h>
#include "uart.h"
#include "xitoa.h"
#include "ff.h"
#include "diskio.h"
#include "rtc.h"
#include "sound.h"

int main (void)
{
настройка FATfs
инициализация карты
чтение файла

}
Реклама
Эиком - электронные компоненты и радиодетали
Потрогал лапой паяльник
Сообщения: 303
Зарегистрирован: Сб янв 08, 2011 13:48:41

Сообщение спящий »

Кто работал с FATfs подскажите,почему выдает ошибку?и правильно я читаю файл?


Спойлер#include <stdio.h>
#include <mega48.h>
#include <delay.h>
#include <string.h>
#include <io.h>


#include "pff.h"
#include "diskio.h"
#include "integer.h"



#define SD_DI 3
#define SD_DO 4
#define SD_CLK 5
#define SD_CS 2


BYTE Buff[128];


void main() {
//Фигарим переменные для ФАТ
BYTE res;
FATFS *fs;
DDRB=0b11101111;



// 8 Data, 1 Stop, No Parity
// USART Receiver: Off
// USART Transmitter: On
// USART Mode: Asynchronous
UCSR0A=0x00;
UCSR0B=0x18;
UCSR0C=0x06;
UBRR0H=0x00;
UBRR0L=0x33;

//настройка SPI
SPCR=0b01010011;
SPSR=1;


disk_initialize(); // Init drive инициализируем ДИСК

printf("mounting FAT ");
res=pf_mount(&fs); //Монтируем FAT
if (res==0x00) { //Если FAT успешно смонтирован
printf("OK\r\n");

res=f_open(&fil_obj, "lol.txt",FA_READ); //Open newfile for reading читаем файл lol.txt
if (res==0x00) { printf("OK\r\n"};
printf("XREN!!");
res=f_read(&fil_obj,Buff,128,128) ;

}


}
Вложения
Безымянный.GIF
(53.89 КБ) 513 скачиваний
Реклама
Вымогатель припоя
Сообщения: 547
Зарегистрирован: Вт фев 09, 2010 17:52:26

Сообщение codenamehawk »

Вроде elm-chan написал FATfs для WINAVR.
Вы нашли ее для CV?
Реклама
Потрогал лапой паяльник
Сообщения: 303
Зарегистрирован: Сб янв 08, 2011 13:48:41

Сообщение спящий »

да ППЦ как так-то, тоесть воще ППЦ, че на КОДЕВИСИОН вообще нечего нет,а че они нсовместимы? я блин месяц настраивался на FATfs а тут на тебе :cry: Как лопатой по яiцам :o
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень

Сообщение vitalik_1984 »

Так то в CVAVR можно многое запихать из студии, главное с умом.
В данном случае видно, что у вас не объявлены функции f_open,f_read из библиотеки fatfs.Нужно подключить объявление к проекту.
Контактная информация:
Потрогал лапой паяльник
Сообщения: 303
Зарегистрирован: Сб янв 08, 2011 13:48:41

Сообщение спящий »

подскажи как ее подключить,что надо вписать?
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень

Сообщение vitalik_1984 »

По первой же ссылке поиска находится сайт ELM-Chan открываем главную страницу, находим описаниe модуля Fatfs
там же ссылка на архив проекта AVR и других.
Описание функций нашел в файле ff.c его нужно подключить к проекту через меню проекта нужно еще файл ff.h подключить.
Контактная информация:
Потрогал лапой паяльник
Сообщения: 303
Зарегистрирован: Сб янв 08, 2011 13:48:41

Сообщение спящий »

Извеняюсь,я уже решил эту проблему,проблема в другом: пишет ошибку

Я даже вставлял даже файл из рабочего проекта, всеравно ошибка,возможно из-за того что это КОДЕНВИСИОН?И вроде кгдето читал что есть встроинная библиотека в коде,но непомню где.

Спойлер#include <stdio.h>
#include <mega48.h>
#include <delay.h>
#include <string.h>
#include <io.h>



#include "integer.h"
#include "diskio.h"
#include "ff.h"



#define SD_DI 3
#define SD_DO 4
#define SD_CLK 5
#define SD_CS 2


BYTE Buff[128];



void main() {

FRESULT f_err_code;
FATFS FATFS_Obj;
FIL fil_obj;



DDRB=0b11101111;



// 8 Data, 1 Stop, No Parity
// USART Receiver: Off
// USART Transmitter: On
// USART Mode: Asynchronous
UCSR0A=0x00;
UCSR0B=0x18;
UCSR0C=0x06;
UBRR0H=0x00;
UBRR0L=0x33;

//????????? SPI
SPCR=0b01010011;
SPSR=1;


disk_initialize(0); // Init drive


printf("mounting FAT ");
f_err_code=f_mount(0,&FATFS_Obj); //
if (f_err_code==0x00) { //
printf("OK\r\n");



f_err_code=f_open(&fil_obj,"lol.txt",FA_READ); //Open newfile for reading
if (f_err_code==0x00) { printf("OK\r\n"};
printf("XREN!!");
f_err_code=f_read(&fil_obj,Buff,128,128) ;

}
}
Вложения
Безымянный.GIF
(58.79 КБ) 462 скачивания
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень

Сообщение vitalik_1984 »

Так пробовали?

Код: Выделить всё

f_err_code=f_open(&fil_obj,(unsigned char*)"lol.txt",FA_READ); //Open newfile for reading 
 
Либо так

Код: Выделить всё

unsigned char text[]="lol.txt";
f_err_code=f_open(&fil_obj,text,FA_READ); //Open newfile for reading 
 
PS Может проще в студии все сделать?Пример то для нее и много #IF #ELSE под нее в библиотеке заточено.
Контактная информация:
Вымогатель припоя
Аватара пользователя
Сообщения: 651
Зарегистрирован: Пн мар 23, 2009 09:25:58
Откуда: Самара

Сообщение mr_smit »

спящий писал(а):пишет ошибку
Там же видно что синтаксическая ошибка. Скобочку пропустили. И уберите "flash" из объявления переменной.
Нельзя всё знать, достаточно понимать.
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень

Сообщение vitalik_1984 »

Так там же вторым параметром строковая константа,а не переменная.
В функцию получается предается указатель на строку с нуль-терминатором.
Если эта строка во флешь, то так и будет считать, что указатель на флешь.Или не так?
Контактная информация:
Ответить

Вернуться в «Периферия»