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

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

Для 16бит код инициализации внутри, никогда проблем не было

Отправлено omen 18 ноября 2009, г. 20:20
В ответ на: Есть проблема сприемом передачей по SPI с PDC SAM7S(+) отправлено пользователем misyachniy 18 ноября 2009, г. 19:13



void SPI_Init( void )
{
// инициализация SPI

// enable the clock of the SPI
AT91C_BASE_PMC->PMC_PCER = 1<<AT91C_ID_SPI;

// переключаем PIOA на SPI
AT91C_BASE_PIOA->PIO_PDR = AT91C_PA14_SPCK | AT91C_PA13_MOSI | AT91C_PA12_MISO | AT91C_PA11_NPCS0;
AT91C_BASE_PIOA->PIO_ASR = AT91C_PA14_SPCK | AT91C_PA13_MOSI | AT91C_PA12_MISO | AT91C_PA11_NPCS0;;

// SPI reset
AT91C_BASE_SPI->SPI_CR = AT91C_SPI_SWRST;
// режим слейва
AT91C_BASE_SPI->SPI_MR &= ~AT91C_SPI_MSTR;
// захват по фронту
AT91C_BASE_SPI->SPI_CSR[ 0 ] |= AT91C_SPI_CPOL;
// клок равен MCK/8 ~6МГц
AT91C_BASE_SPI->SPI_CSR[ 0 ] |= (8<<8);
// 16 бит в посылке
AT91C_BASE_SPI->SPI_CSR[ 0 ] |= (AT91C_SPI_BITS_16);

// инициализация PDC для SPI
AT91C_BASE_PDC_SPI->PDC_TPR = (unsigned int)aucDataToHost;
AT91C_BASE_PDC_SPI->PDC_PTCR = AT91C_PDC_TXTEN;
AT91C_BASE_PDC_SPI->PDC_TCR = 2;

AT91C_BASE_PDC_SPI->PDC_RPR = (unsigned int)aucCmdFromHost;
AT91C_BASE_PDC_SPI->PDC_PTCR = AT91C_PDC_RXTEN;
AT91C_BASE_PDC_SPI->PDC_RCR = 2;


// инициализация вектора прерываний
AT91F_AIC_Init( AT91C_BASE_AIC, AT91C_ID_SPI, 4, AT91C_AIC_SRCTYPE_INT_EDGE_TRIGGERED, Spi_c_irq_handler );

// разрешаем прерывание прерывания от SPI
AT91C_BASE_SPI->SPI_IER = AT91C_SPI_TXBUFE;
// AT91C_BASE_AIC->AIC_EOICR = 0xffffffff; // эта строка только для корректной работы с J-link !!!
AT91C_BASE_AIC->AIC_IECR = 1 << AT91C_ID_SPI;

// SPI enabled
AT91C_BASE_SPI->SPI_CR = AT91C_SPI_SPIEN;
}




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

Ответы


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

Сообщение:

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

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

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

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