Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Есть вопрос по MMC в SPI режиме(+)

Отправлено misyachniy 13 ноября 2007 г. 13:54


Взял пример GCC для AT91SAM7S.
Читает медленно. Пишет сектора с ошибками. Если поставить большие паузы то без ошибок, но тоже медленно.

Начал разбиратся глубже.
В документации на конкретно мою карточку от SunDisk требуется чтобы CS был постоянно активным

The CS signal must be continuously active for the duration of the SPI transaction (command, response and data). 
The only exception occurs during card programming when the host can de-assert the CS signal without affecting the programming process.

А в тексте программы после инициализации в SPI режим идет переключение на автоматический CS


// enable automatic chip-select
pPIOA->PIO_ODR = NPCS_BSR_BIT; // input
pPIOA->PIO_CODR = NPCS_BSR_BIT; // clear
// disable PIO from controlling the CS pin (=hand over to SPI)
pPIOA->PIO_PDR = AT91C_PA13_SPI0_NPCS1;
// set pin-functions in PIO Controller
pPIOA->PIO_ASR = NCPS_ASR_BIT;
pPIOA->PIO_BSR = NPCS_BSR_BIT;

Поисходному тексту программы также встерчаются макросы SELECT()/DESELECT() для прямого управления ножкой CS.

Что-то явно не клеится.
Как корректно работать?
Спасибо.



Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
к трём прибавьте 5:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru