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

 
 
> AT91SAM7X SPI PDC SD-card
Колька
сообщение Sep 22 2009, 14:42
Сообщение #1





Группа: Участник
Сообщений: 7
Регистрация: 22-09-09
Пользователь №: 52 517



Написал свою библиотеку по работе с SD-card. Все работает замечательно. Но есть одно "но". Отправку, прием я сделал без PDC.
Когда мне нужно принять 512 байт, я просто побайтно их последовательно принимаю. Проблема в следующем: настраиваю PDC и в результате приходит "каша". CS-ом дергаю сам. Никто не подскажет в чем может быть проблема? Скорость понижал не помогло. В общем буду рад любому совету.

Сообщение отредактировал Колька - Sep 22 2009, 14:44
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Колька
сообщение Sep 22 2009, 20:07
Сообщение #2





Группа: Участник
Сообщений: 7
Регистрация: 22-09-09
Пользователь №: 52 517



Пока сам для себя причину не выяснил, так как ещё новичек, но вот так работает:

Цитата
short SPI_Read_PDC(PSPI self, void* data, unsigned short count) {
PSPI_BASE->SPI_PTCR = AT91C_PDC_RXTDIS | AT91C_PDC_TXTDIS;

PSPI_BASE->SPI_RPR = (UINT)buff; // destination address
PSPI_BASE->SPI_RCR = btr; // number of frames (here: frame=byte)
// SPI PDC TX buffer (dummy bytes):
PSPI_BASE->SPI_TPR = (UINT)dma_dummy; // source address
PSPI_BASE->SPI_TCR = btr; // number of frames (here: frame=byte)

PSPI_BASE->SPI_PTCR = AT91C_PDC_TXTEN | AT91C_PDC_RXTEN;

while( !( (PSPI_BASE->SPI_SR) & AT91C_SPI_RXBUFF ) ) {
// wait for RX Buffer Full (counters 0)
}
}
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


RSS Текстовая версия Сейчас: 9th August 2025 - 00:33
Рейтинг@Mail.ru


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