Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SPI и SD card
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
glebka
Помогите разобратся.Сделал всё как посоветовали старшие товарищи плюс Datasheet прочитал- нету результата,не могу инициализировать AT91SAM7 SPI и CHIPSELECT не выбирает устройство.

Если кто сталкивался,поделитесь кодом,если не жалко.
xoms
Запаивай чипселект на землю, если на spi висит только одно устройство. Если кода, что я прислал не достаточно (что не понятно), тяни с атмеля экзамплы по spi и пробуй.
glebka
Цитата(xoms @ Aug 24 2005, 04:28)
Запаивай чипселект на землю, если на spi висит только одно устройство. Если кода, что я прислал не достаточно (что не понятно), тяни с атмеля экзамплы по spi и пробуй.
*

В том то и дело, что надо выбирать из двух smile.gif устройств.И код вставил,не происходит SPI INIT и CS хоть тресни sad.gif .

Обязательно поищу на ATMEL. А где примеры хранятся? Поиск ничего не дал.
glebka
Цитата(glebka @ Aug 24 2005, 09:25)
Цитата(xoms @ Aug 24 2005, 04:28)
Запаивай чипселект на землю, если на spi висит только одно устройство. Если кода, что я прислал не достаточно (что не понятно), тяни с атмеля экзамплы по spi и пробуй.
*

В том то и дело, что надо выбирать из двух smile.gif устройств.И код вставил,не происходит SPI INIT и CS хоть тресни sad.gif .

Обязательно поищу на ATMEL. А где примеры хранятся? Поиск ничего не дал.
*



Наверное, не до конца разобрался со строкой

value_for_cs = (~(1 << psdcmd->cs_number))& 0xF;
Если не трудно просветите отсталого. sad.gif
VAI
1. psdcmd - указатель на структуру, элементом которой является cs_number
2. 1 сдвигаем на cs_number влево (устанавливаем cs_number-ный бит в 1)
3. делаем инверсию этого дела
4. сбрасываем в 0 все биты, кроме 4-х младших.
В результате из 4-х младших бит 0 будет в "позиции" cs_number, остальные будут 1.
glebka
Цитата(VAI @ Aug 24 2005, 17:47)
1. psdcmd - указатель на структуру, элементом которой является cs_number
2. 1 сдвигаем на cs_number влево (устанавливаем cs_number-ный бит в 1)
3. делаем инверсию этого дела
4. сбрасываем в 0 все биты, кроме 4-х младших.
В результате из 4-х младших бит 0 будет в "позиции" cs_number, остальные будут 1.
*


спасибо smile.gif
glebka
Отключил строки где конфигурируется pins на вход и выход и вроде как заработало. Странно.Если не секркет почему это может случатся.

Вопрос к Holms какой средой пользуетесь и каким устройством для отладки.
xoms
xoms, Я.
IAR у меня, чего отключил поподробнее.
glebka
[quote=xoms,Aug 26 2005, 12:13]
Извини, xoms.
IAR у меня, чего отключил поподробнее.

строки:
AT91F_PIO_CfgOutput(AT91C_BASE_PIOA, AT91C_PA11_NPCS0 | AT91C_PA31_NPCS1 | AT91C_PA13_MOSI | AT91C_PA14_SPCK);
AT91F_PIO_CfgInput(AT91C_BASE_PIOA, AT91C_PA12_MISO);

Пока работает. smile.gif . Хотя странно.Будем искать biggrin.gif

Мне дают пользоватся ARM Metrowerks Code Warrior c ARM ICE debugger.
Штука неплохая но без dongle не работает.Надо искать решение.

А что ты делаешь с неиспользуемыми в SPI режиме ногами SD карты (pin 8, pin 9)?
xoms
Правильно ,что закоментарил. У меня после эти ноги на SPI переключаются и эти установки убиваются.

pSpi->SPI_CR = AT91C_SPI_SPIEN...

У меня не SD карта , а MMC. Оставь 8 и 9 свободными, так вроде в стандарте описано.
ARM Metrowerks Code Warrior лежит на нашем фтп вылеченный.
glebka
У меня не SD карта , а MMC. Оставь 8 и 9 свободными, так вроде в стандарте описано.
ARM Metrowerks Code Warrior лежит на нашем фтп вылеченный.
*

[/quote]

А если их через 10Kom подсоединить к плюсу?

Лежит, он то лежит, да ккак мне его взять smile.gif, молод ещё, не заслужил.
xoms
Ну подключи, если хочется.

Насчёт компилера , давай линк, залью куда-нибудь.
glebka
А можно на почтовый ящик glibka@mail.ru?
xoms
60 метров мыл.ру не потянет, а я замучаюсь отправлять.
Давай фтп всё таки.
glebka
FTP организовать не получается.Можно только лекарство? Дистрибутив есть.
xoms
Отправил мылом полдня назад.
glebka
Xoms, если не секрет просвети отсталого нужно ли дополнительно делать chip select в какой -либо функции при (записи, чтении и т.д.) или процессор делает это сам, при записи в TDR как в твоем примере, при по= байтном отправлении.
Так как в flashfile ребята таки делают CS_SD(). Как ты вышел из положения.
xoms
Нет не нужно. Он сам сделает чипселект. Для этого спец битик в регистре есть.
А flashfile не под сам7, у того проца ,я переделывал с филипса, такого битика нет, вот они и делают чипселект пальчиками.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.