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

 
 
> AT91SAM7S64 и SPI, Где проблема?
marcinio
сообщение Aug 15 2008, 18:27
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 42
Регистрация: 3-07-07
Пользователь №: 28 861



Решил я заняться изучением АРМа – AT91SAM7S64. Написал в Кейле SPI инициализацию:
Код
AT91C_BASE_PMC->PMC_PCER     = 1<<2 | 1<<5;                            //PIOA, SPI Peripheral Clock Enable    
    
AT91C_BASE_PIOA->PIO_PDR     = 1<<11 | 1<<12 | 1<<13 | 1<<14;        //Disables PIOA Control,enables peripheral control
AT91C_BASE_PIOA->PIO_ASR     = 1<<11 | 1<<12 | 1<<13 | 1<<14;        //Peripheral A select    
    
T91C_BASE_SPI->SPI_MR        = AT91C_SPI_MSTR | 14<<16;        //Master mode | Fixed Peripheral Select - NPCS0, PCS = xxx0 NPCS[3:0] = 1110
AT91C_BASE_SPI->SPI_CSR[0]   = 48<<8;                                //SPCK Baudrate
AT91C_BASE_SPI->SPI_CR       = 1;                                    //SPI Enable

AT91C_BASE_SPI->SPI_TDR      = 100;                                    //Data

Но ничего не сработало: SPI просто решил не запускаться (в SPI Status Register SPIENS = 0), в Logic Analyzer уровни линий NPCS0, MISO, MOSI, PSCK не разу не поменялись. Уже весь день пробую понять, в чём проблема? А она именно в этих строчках... 05.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение Aug 16 2008, 10:29
Сообщение #2


Гуру
******

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



Вы в симуляторе смотрите, или на реальной железке?

В таком виде все обязано работать (SPI Mode 0):
Код
AT91C_BASE_PMC->PMC_PCER     = (1UL<<AT91C_ID_PIOA) | (1UL<<AT91C_ID_SPI);                            //PIOA, SPI Peripheral Clock Enable    
    
AT91C_BASE_PIOA->PIO_PDR     = AT91C_PIO_PA11 | AT91C_PIO_PA12 | AT91C_PIO_PA13 | AT91C_PIO_PA14;        //Disables PIOA Control,enables peripheral control
AT91C_BASE_PIOA->PIO_ASR     = AT91C_PIO_PA11 | AT91C_PIO_PA12 | AT91C_PIO_PA13 | AT91C_PIO_PA14;        //Peripheral A select

AT91C_BASE_SPI->SPI_CSR[0]   = (48<<8) | AT91C_SPI_NCPHA;                                //SPCK Baudrate
AT91C_BASE_SPI->SPI_MR        = AT91C_SPI_MSTR | AT91C_SPI_MODFDIS;
AT91C_BASE_SPI->SPI_CR        = AT91C_SPI_SPIEN;
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 08:25
Рейтинг@Mail.ru


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