HRP-N3 - серия источников питания с максимальной пиковой мощностью в 350% от MEAN WELL
Новичок
 
Регистрация: 29.06.2009
Сообщений: 101
Репутация: 20
10 1
0 0
 
25.08.2012 17:25 #1
Доброго времени! Знакомлюсь с работой SD карты в режиме spi. Взял для начала, вот эту статью http://avrlab.com/node/156

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

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

#define DO   6

#define CLK  7 

#define CS   3

#define INS  0

#define WP   1
PB0 и PB1 посажены на общую шину
Оценка
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей.
Специалист
 
Аватар для Vadzz
 
Регистрация: 12.11.2008
Адрес: Тирасполь
Сообщений: 2,172
Записей в дневнике: 22
Репутация: 418
406 86
0 0
Отправить сообщение для Vadzz с помощью ICQ
 
26.08.2012 21:52 #2
Насколько я понял, после проверки вашей карты в WinHex - на ней нет записанного блока в 512 байт, заполненного 0123456789. Т.е. запись на карту не прошла в режиме SPI...

Начнем с простого: микроконтроллер сконфигурирован правильно? Fuse-биты, тактовая частота, проверьте подключение карты к мк, не ошиблись ли где подключением...

Скорость UART, которую вы меняли, не причем - это ведь только для связи мк с ПК...
__________________
Уважаемые пассажиры, самолет ТУ-134 садится. У кого есть зарядка от ТУ-134, просьба пройти в кабину пилота.
Оценка
Новичок
 
Регистрация: 29.06.2009
Сообщений: 101
Репутация: 20
10 1
0 0
 
26.08.2012 22:01 #3
Да, записи и чтения нет. Да вроде правильно jtag отключен, тактирование внутреннее 8 МГц. Уже не раз перепроверял, да и SPI не встроенный, поэтому особо ошибиться вроде как нельзя.

В процедуры:
Цитата:
unsigned char sd_card_init(void)
{ unsigned char i,temp;
long int count;

if ((PINB&_BV(INS))!=0x00) return 1; //Check card in slot

for (i=0;i<10;i++)
//80 strobes
spi_transmit (0xff);


PORTB&=~_BV(CS); //CS enable

uart_transmit_message("ansver on CMD0:\r\n");

temp=sd_cmd (0x40,0x00,0x00,0x00,0x00,0x95); //CMD0
if (temp!=0x01) return 3; //Exit, if bad responce
spi_transmit (0xff);

count=0;
do{

uart_transmit_message("ancver on CMD1:\r\n");

temp=sd_cmd (0x41,0x00,0x00,0x00,0x00,0x95); //CMD1
spi_transmit (0xff);
count=count+1;
} while ( (temp!=0x00)&&(count<0xffff) ); //Wait 0x01 responce

if (count>=0xffff) return 4;
return 0;
}
Цитата:
unsigned char sd_cmd(char b0, char b1, char b2, char b3, char b4, char b5) //Send command to SD|MMC card
{ unsigned char res;
long int count;
spi_transmit (b0); //transmit index

spi_transmit (b1); //transmit argument
spi_transmit (b2);
spi_transmit (b3);
spi_transmit (b4);

spi_transmit (b5); //transmit CRC
count=0;
do { //wait to R1 responce
res=spi_receive();
count=count+1;

uart_transmit(res);

} while ( ((res&0x80)!=0x00)&&(count<0xffff) );

return res;
}
добавил промежуточный вывод через uart, так вот в процедуре посылки команды, где должно вернуться 0x01 в переменной res, ничего не возвращается, т.е 0 или может я чего не понял, ведь прога автора говорит, что иниализация прошла успешно.
Оценка
Ответ
Похожие темы
Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

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

Быстрый переход
Электронные компоненты. Бесплатная доставка по России
Часовой пояс GMT +3, время: 01:17.
Обратная связь РадиоЛоцман Вверх