Четверг, 01.10.2020, 05:13
Микроконтроллерная техника AVR
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Форум » Микроконтроллеры » Вопросы по статьям » ATmega8 + SD с поддержкой FAT
ATmega8 + SD с поддержкой FAT
HiSERДата: Суббота, 14.08.2010, 16:29 | Сообщение # 16
Продвинутый автор!
Группа: Проверенные
Сообщений: 254
Репутация: 11
Статус: Offline
если другой код ля sd-шки дам сам разберешься?
 
FoXДата: Четверг, 03.02.2011, 23:59 | Сообщение # 17
Рядовой
Группа: Пользователи
Сообщений: 9
Репутация: 0
Статус: Offline
Здраствуйте. Снова дошли руки до СД карточки хочу в кучу собрать всё что сделал, на макетке с кучей проводов всё работает :). Вопрос №1: если питание МК и СД карты одинаковы (3,3В) то я так понимаю что разделительные резисторы в цепи SPI не нужны? Вопрос №2: Вы работали с ATmega8a, при этом не наблюдались глюки с SPI на пониженых напряжениях?

Добавлено (03.02.2011, 23:59)
---------------------------------------------
http://www.dharmanitech.com/2009/01/sd-card-interfacing-with-atmega8-fat32.html
FAT32 и ATmega8

Сообщение отредактировал FoX - Среда, 02.02.2011, 22:10
 
Dominik21Дата: Пятница, 14.10.2011, 18:20 | Сообщение # 18
Рядовой
Группа: Пользователи
Сообщений: 14
Репутация: 0
Статус: Offline
Удаляем flash из библиотек...
byte file_open(byte *name);

объявляем массив
char next[]="1 ";

вставляем переменную
file_open("%s", next[0]);


Сообщение отредактировал Dominik21 - Пятница, 14.10.2011, 18:21
 
HiSERДата: Пятница, 14.10.2011, 18:26 | Сообщение # 19
Продвинутый автор!
Группа: Проверенные
Сообщений: 254
Репутация: 11
Статус: Offline
"%s"- это что такое?

flash char next[]="1 "; //имя должно быть в формате 8:3 в fat.h все написано

file_open(&next);

в fat.c и fat.h тогда ни чего не надо изменять.
 
Dominik21Дата: Пятница, 14.10.2011, 18:36 | Сообщение # 20
Рядовой
Группа: Пользователи
Сообщений: 14
Репутация: 0
Статус: Offline
Насчет имени то ясно все. Не в этом проблема. Ему не нравится переменная.
%s форматирование, попытка вспомнить обычный си и работу с библиотекой ввода/вывода.

Этот метод опять же не пашет. Ругается, мол:
Error: D:\SHUM\ïðîåêò Globus\Globus.c(57): function argument #1 of type 'unsigned char [12] *' is incompatible with required parameter of type 'byte *'

Даже когда объявляешь переменную как флеш чар происходит та же ерунда.
З.Ы. переменная next имеет нужный формат.
 
HiSERДата: Пятница, 14.10.2011, 19:01 | Сообщение # 21
Продвинутый автор!
Группа: Проверенные
Сообщений: 254
Репутация: 11
Статус: Offline
причем тут обычный си?
в проекте файл _type.h присутствует?
 
Dominik21Дата: Пятница, 14.10.2011, 20:59 | Сообщение # 22
Рядовой
Группа: Пользователи
Сообщений: 14
Репутация: 0
Статус: Offline
Нет...
Можно сразу список из минимума необходимых библиотек, которые должны быть подключены для работы с картой и файлами, включая их имена
 
HiSERДата: Пятница, 14.10.2011, 21:44 | Сообщение # 23
Продвинутый автор!
Группа: Проверенные
Сообщений: 254
Репутация: 11
Статус: Offline
все кроме 1.c и 1.prj
 
demiurgДата: Вторник, 01.11.2011, 02:12 | Сообщение # 24
Рядовой
Группа: Пользователи
Сообщений: 1
Репутация: 0
Статус: Offline
HiSER
Здравствуйте
Не подскажете как дописать к вашей либе функцию записи в фаил. Чото я даже не знаю как к этому подступить. Не охото просто прикручивать к проекту какуюто тяжёлую либу(типа elm) , а ваша удобная, места мало занимает и легко написана.
 
HiSERДата: Среда, 02.11.2011, 19:39 | Сообщение # 25
Продвинутый автор!
Группа: Проверенные
Сообщений: 254
Репутация: 11
Статус: Offline
С файлами проекта была документация FAT, там описан принцип записи.
 
Serg_GreencityДата: Четверг, 10.11.2011, 15:48 | Сообщение # 26
Рядовой
Группа: Пользователи
Сообщений: 1
Репутация: 0
Статус: Offline
Проект супер ! Спасибо Автору !

Я попробовал подключить SD к mega128 с кварцем 16мГц. В proteuse все работает а в реальсти вешается на инициализации карточки.
Может настройка SPI нужна уже другая ?

Добавлено (08.11.2011, 20:32)
---------------------------------------------
Спасибо ! Сам разобрался smile Проблема была в неправильно промаркированных выходах на отладочной плате, поменял местами Di и DO и все полетело smile

Добавлено (09.11.2011, 21:09)
---------------------------------------------
Сегодня потестировал с флешкой 2гб. НЕ РАБОТАЕТ ! 4 штуки перепробовал.. максимум с 1гб. картой работает. Вроде Fat16 до 2 гб должен работать, в чем проблема может быть ?

Добавлено (10.11.2011, 15:48)
---------------------------------------------
HiSER подскажите пожалуйста, как можно читать флешку с нулевого адреса ? Я открыл образ флешки в winhex и обнаружил что файлы хранящиеся в корне флешки хранятся в одном месте.. т.е можно их считать в массив и сделать выбор файлов на меню ЖКИ.. Я хочу сделать МП3 плеер..

 
HiSERДата: Пятница, 11.11.2011, 04:25 | Сообщение # 27
Продвинутый автор!
Группа: Проверенные
Сообщений: 254
Репутация: 11
Статус: Offline
С 2Гб какая ошибка?
Функцию поиска фалов не реализовывал, можешь сам написать документация на FAT в проекте есть.
 
Dominik21Дата: Суббота, 26.11.2011, 10:51 | Сообщение # 28
Рядовой
Группа: Пользователи
Сообщений: 14
Репутация: 0
Статус: Offline
Доброе время суток HiSER! В протеусе проект работает, а вот на отладке нет. Зависает на инициализации FAT, флешка 2GB, я грешу на неправильный FAT16. Форматировал в Partition Magic 9. Кстати в чем правильно форматировать флешку, в винде только FAT, FAT32 и exFAT...???? Помогите пожалуйста, уже третьи сутки мучаюсь!!!!!! cry
 
HiSERДата: Суббота, 26.11.2011, 14:13 | Сообщение # 29
Продвинутый автор!
Группа: Проверенные
Сообщений: 254
Репутация: 11
Статус: Offline
У меня под виндой нормально форматировалась, выбери FAT, она и форматнет как FAT16.
И на флешке MBR присутствует?
 
Dominik21Дата: Суббота, 26.11.2011, 14:50 | Сообщение # 30
Рядовой
Группа: Пользователи
Сообщений: 14
Репутация: 0
Статус: Offline
Ммммм. Я не знаю, как быть, как узнать!? А что это?

Добавлено (26.11.2011, 14:42)
---------------------------------------------
Вот решил посмотреть как проходит инициализация SD

#include <mega8.h>
#include <delay.h>
#include <_sd.h>
#include <_fat.h>

void io_init() {
byte ok;
ok=sd_init(); //Инициализируем карточку
switch(ok) {
case SD_ERR_SUSSED:PORTD.0=1;break; //OK
case SD_ERR_IDLE:PORTD.1=1;break; //ERROR - SD IDLE
case SD_ERR_INIT:PORTD.2=1;break; //ERROR - SD INIT
case SD_ERR_POWER:PORTD.3=1;break; //ERROR - SD POWER
case SD_ERR_TIMEOUT:PORTD.4=1;break; //ERROR - SD TIMEOUT
}

}

void main(void) {
ACSR=0x80;

// Port D initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=In Func2=In Func1=In Func0=In
// State7=0 State6=0 State5=0 State4=0 State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0xF0;

io_init();

};

результат PORTD.4=1 то есть ERROR - SD TIMEOUT

Добавлено (26.11.2011, 14:45)
---------------------------------------------
что это может значить?!?

Добавлено (26.11.2011, 14:50)
---------------------------------------------
Без карточки выкидывает ERROR - SD IDLE

 
Форум » Микроконтроллеры » Вопросы по статьям » ATmega8 + SD с поддержкой FAT
  • Страница 2 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Поиск:

Хостинг от uCoz