реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> at91rm9200 проблема с SPI
strannyi
сообщение May 28 2008, 07:40
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 8-07-07
Из: Ярославль
Пользователь №: 28 962



Имеется отладочная плата ARGUSSOFT AS-9200 v1.0

Настроил SPI и все зависящие модули, запускаю программу тестирования чтения/записи
буфера данных используя PDC. SPI настроил с loсal loopback Enable. Все работает, данные из буффера передаются, перерывания генерируются. Когда пытаюсь работать с внешними (loсal loopback disable) выходами(подрублена dataflash) ничего не получается, смотрю осциллографом, с SPI ниче не лезет, клока нет, данных нет. Возможно где-то я накосячил, подскажите пожалуйста где копать.

Вот настройки:

REG(AT91RM9200_PMC|PMC_PCER) = PID_MASK(PID_SPI)|PID_MASK(PID_PIOA);

REG(AT91RM9200_PIOA|PIO_PER) = SETBIT(0)|SETBIT(1)|SETBIT(2)|SETBIT(3)|
SETBIT(4)|SETBIT(5)|SETBIT(6);

REG(AT91RM9200_PIOA|PIO_ASR) = SETBIT(0)|SETBIT(1)|SETBIT(2)|SETBIT(3)|
SETBIT(4)|SETBIT(5)|SETBIT(6);

REG(AT91RM9200_SPI|SPI_CR) = SETBIT(1)|SETBIT(7);
REG(AT91RM9200_SPI|SPI_MR) = 0x9|SETBIT(4)|(0xE<<16)|(0xff<<24);
REG(AT91RM9200_SPI|SPI_CSR0) = 0xA|(0x0<<4)|(0xFF<<8);
REG(AT91RM9200_SPI|SPI_CR) = SETBIT(0);

REG(AT91RM3400_SPI|PERIPH_RPR) = (unsigned long)&buff_rx;
REG(AT91RM3400_SPI|PERIPH_RCR) = BUFF_SIZE;

REG(AT91RM3400_SPI|PERIPH_TPR) = (unsigned long)&buff_tx;
REG(AT91RM3400_SPI|PERIPH_TCR) = BUFF_SIZE;

REG(AT91RM3400_SPI|PERIPH_PTCR) = SETBIT(0)|SETBIT(8); // Enable PDC TX, Rx
REG(AT91RM3400_SPI|SPI_CR) = SETBIT(0); // Enable SPI
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 28 2008, 07:44
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(strannyi @ May 28 2008, 11:40) *
REG(AT91RM9200_PIOA|PIO_PER)

Это включение PIO, а не периферии.
Go to the top of the page
 
+Quote Post
strannyi
сообщение May 28 2008, 08:04
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 8-07-07
Из: Ярославль
Пользователь №: 28 962



Цитата(aaarrr @ May 28 2008, 11:44) *
Это включение PIO, а не периферии.


ой спасибо, стормозил
вопрос снят, все работает wink.gif
Go to the top of the page
 
+Quote Post
strannyi
сообщение May 28 2008, 09:33
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 8-07-07
Из: Ярославль
Пользователь №: 28 962



А еще вопросик.

Как удержать CS в 0 после передачи блока данных?
Пробовал делать софтварный CS на том же пине, но тогда
не коректно работает SPI точнее вообще перестает работать.
Go to the top of the page
 
+Quote Post
KolyanV
сообщение May 28 2008, 16:53
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 91
Регистрация: 1-06-05
Пользователь №: 5 621



Цитата(strannyi @ May 28 2008, 12:33) *
А еще вопросик.

Как удержать CS в 0 после передачи блока данных?
Пробовал делать софтварный CS на том же пине, но тогда
не коректно работает SPI точнее вообще перестает работать.


Регистр SPI_CSR0, бит CSAAT
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th June 2025 - 10:05
Рейтинг@Mail.ru


Страница сгенерированна за 0.01388 секунд с 7
ELECTRONIX ©2004-2016