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

 
 
> at91ARM7S256+AD7799 конфигурирования SPI
bernifox
сообщение Jul 14 2011, 07:56
Сообщение #1





Группа: Новичок
Сообщений: 3
Регистрация: 30-06-11
Пользователь №: 65 986



Привет всем.
Помогите пожалуйста сконфигурировать SPI правильно, что бы запустился обмен с ad7799.
Я только недавно стал работать с ARM7S256 и не все там понимаю, в частности как правильно задать начальную частоту MCK и установить уже от нее все остальные тайменги по тем формулам которые приведенны в юзермануале на ARM7S256 и AD7799.

Помогите кто чем может.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
bernifox
сообщение Jul 20 2011, 10:57
Сообщение #2





Группа: Новичок
Сообщений: 3
Регистрация: 30-06-11
Пользователь №: 65 986



спасибо за совет.

У меня SPI уже сконфигурирован так:

void _ini_spi(void) {
volatile unsigned int dummy4;
*PIOA_OER=bit31; //контакт PCS1 на вывод
*PIOA_PDR=bit11|bit12|bit13|bit14; //запретить работу в режиме PIO (CS0,MISO,MOSI,CLK)
*PIOA_ASR=bit11|bit12|bit13|bit14; //перевели в режим А
*PIOA_PDR=bit31;*PIOA_ASR=bit31; //запретить работу в режиме PIO для CS1
*SPI_CR=bit1; //запрет SPI
*SPI_MR=bit0|bit1|bit4; //master,...
dummy4=_n_bit_spi;dummy4<<=4;
*SPI_CSR0=bit0|dummy4|0x3100|0x20B00000;
*SPI_CR=bit0;dummy4=*SPI_RDR; //пуск SPI и обнулить буфер
}

я не могу понять только как правильно рассчитать по формулам биты SCBR, DLYBS и DLYBCT генератор у меня 12MH. И что такое в этих формулах MCK что он значит фихически. А задержки у меня должыбыть 100нс-SCLK,
Go to the top of the page
 
+Quote Post
MasterCat
сообщение Aug 2 2011, 05:13
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 14-07-10
Пользователь №: 58 452



Цитата(bernifox @ Jul 20 2011, 16:57) *
спасибо за совет.

У меня SPI уже сконфигурирован так:

void _ini_spi(void) {
volatile unsigned int dummy4;
*PIOA_OER=bit31; //контакт PCS1 на вывод
*PIOA_PDR=bit11|bit12|bit13|bit14; //запретить работу в режиме PIO (CS0,MISO,MOSI,CLK)
*PIOA_ASR=bit11|bit12|bit13|bit14; //перевели в режим А
*PIOA_PDR=bit31;*PIOA_ASR=bit31; //запретить работу в режиме PIO для CS1
*SPI_CR=bit1; //запрет SPI
*SPI_MR=bit0|bit1|bit4; //master,...
dummy4=_n_bit_spi;dummy4<<=4;
*SPI_CSR0=bit0|dummy4|0x3100|0x20B00000;
*SPI_CR=bit0;dummy4=*SPI_RDR; //пуск SPI и обнулить буфер
}

я не могу понять только как правильно рассчитать по формулам биты SCBR, DLYBS и DLYBCT генератор у меня 12MH. И что такое в этих формулах MCK что он значит фихически. А задержки у меня должыбыть 100нс-SCLK,





== ну вот сгородил примерчик для демонстрации. частота клока известна же. формат фрейма тоже

#define lospeed 1
// l_pSpi0->SPI_MR = 0xE0019;
AT91F_SPI_CfgMode(AT91C_BASE_SPI0,
( AT91C_SPI_MSTR /*master*/
|AT91C_SPI_MODFDIS /*mode fault detector*/
|AT91C_SPI_PS_VARIABLE /*выбор фиксированной периферии*/
#ifdef lospeed
|AT91C_SPI_FDIV /*тактирование MСK/n */
#endif
)
/*==0 SPCK=MCK/SCBR. ==1 SPCK=MCK/(32*SCBR)*/
/**/
);

// l_pSpi0->SPI_CSR[0] = 0x01010C11; //9bit, CPOL=1, ClockPhase=0, SCLK = 48Mhz/32*12 = 125kHz
AT91F_SPI_CfgCs (AT91C_BASE_SPI0, 0,
AT91C_SPI_CPOL
| AT91C_SPI_BITS_9
#ifdef lospeed
| ( AT91C_SPI_SCBR &( 0xFF << 8 )) /*это оччень медленно, . т.к. AT91C_SPI_FDIV =1 */
#else
| ( AT91C_SPI_SCBR &( 0x08 << 8 )) // см.l_pSpi0->SPI_MR
#endif
| ( 0x01 << 16 )
| ( 0x01 << 24 )
);

в регистре SPI_CSR0 поле SCBR (биты с 8го по 15й) содержит условное значение скорости.
от х00 до хFF . это делитель частоты MCK .
если бит T91C_SPI_FDIV в регистре MR установлен , то всё в 32 раза медленее.
собственно и всё.







Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 2 2011, 08:12
Сообщение #4


Гуру
******

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



Цитата(MasterCat @ Aug 2 2011, 09:13) *
если бит T91C_SPI_FDIV в регистре MR установлен , то всё в 32 раза медленее.

Этот бит "упразднили" давным давно, ибо его установка вызывает лютый глюкодром.
Go to the top of the page
 
+Quote Post



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

 


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


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