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

 
 
> проблемы с передачей по spi, sam7x+gcc
xelax
сообщение Aug 10 2007, 06:35
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 370
Регистрация: 7-11-06
Пользователь №: 22 035



Начал разбираться с spi на этом контроллере(Evalution Board at91sam7x-ek) и наткнулся на такую проблему.
Есть в нём такой режим, удерживать CS в активном состоянии, после окончания передачи.

Инициализирую SPI слудующим образом
Код

/* Configure PIOs for SPI */
AT91C_BASE_PIOA->PIO_ASR = AT91C_PA12_SPI0_NPCS0 | AT91C_PA16_SPI0_MISO |
                               AT91C_PA17_SPI0_MOSI  | AT91C_PA18_SPI0_SPCK;
AT91C_BASE_PIOA->PIO_BSR = 0;
AT91C_BASE_PIOA->PIO_PDR = AT91C_PA12_SPI0_NPCS0 | AT91C_PA16_SPI0_MISO |
                               AT91C_PA17_SPI0_MOSI  | AT91C_PA18_SPI0_SPCK;                                                      
    
    //enable the clock of SPI
    AT91C_BASE_PMC->PMC_PCER = 1<<AT91C_ID_SPI0;
                
    // инициализация spi
    // сброс и разрешение
    AT91C_BASE_SPI0->SPI_CR = AT91C_SPI_SPIDIS | AT91C_SPI_SWRST;
    // установка моды работы spi master, first peripherial active
    AT91C_BASE_SPI0->SPI_MR    = AT91C_SPI_MSTR | AT91C_SPI_LLB;
    // параметры общения с устройством на CS0  
    // скорость spi 24 МГц, задержка перед выдачей тактовой 300 нс.
    AT91C_BASE_SPI0->SPI_CSR[0] = AT91C_SPI_CPOL | AT91C_SPI_BITS_8 |
                                     (0x02 <<  8) | (0x0F << 16);// | AT91C_SPI_CSAAT;                                   
    // запрещаю все прерывания                                     
    AT91C_BASE_SPI0->SPI_IDR = 0xFFFFFFFF;
AT91C_BASE_SPI0->SPI_CR = AT91C_SPI_SPIEN;


процедура отправки байта, крутится в основном цикле (запускается раз в 1 секунду)
Код
   static unsigned char temp = 0;
       
   temp++;    
   AT91C_BASE_SPI0->SPI_TDR = temp;


так вот в чём проблема, когда добавляю бит AT91C_SPI_CSAAT (чтобы CS оставался активным) у меня передаётся один байт, псоле этого признак того, что передатчик пустой не появляется и запись в регистр SPI_TDR не приносит никакого эффекта.
Как только убираю бит AT91C_SPI_CSAAT всё начинает работать нормально.
Кто-нибудь сталкивался с таким эффектом.?

Что я делаю не так?
Как работать с устройствами, для сеанса обмена с которыми нужно удерживать CS активным (таже атмеловская флэшка на плате)?
И как себя ведёт CS в фиксированной моде, нужен ли ему AT91C_SPI_CSAAT, перестаёт ли он быть активным после передачи?

З.Ы, SPI работает сам на себя по локальной внутренней петле AT91C_SPI_LLB. При работе на внешнее устройство тот же эффект.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- xelax   проблемы с передачей по spi   Aug 10 2007, 06:35
- - _dem   отключите CS от периферийного модуля SPI, переключ...   Aug 10 2007, 08:40
- - xelax   После всех сношений смог добиться странных результ...   Aug 10 2007, 15:11
|- - _dem   не секрет. вот прямо из исходника (тут еще может г...   Aug 14 2007, 09:04
- - prottoss   Привет всем! Осваиваю SPI на AT91SAM7X256 - бо...   Jan 8 2008, 10:57
|- - xelax   Цитата(prottoss @ Jan 8 2008, 13:57) Прив...   Jan 9 2008, 07:28
|- - prottoss   Цитата(xelax @ Jan 9 2008, 14:28) Не поня...   Jan 9 2008, 11:55
- - xelax   Вот как у меня запускается приём или передача Код...   Jan 9 2008, 12:53
|- - prottoss   Цитата(xelax @ Jan 9 2008, 19:53) Вот как...   Jan 9 2008, 13:05
|- - KRS   Цитата(prottoss @ Jan 9 2008, 16:05) Спас...   Jan 9 2008, 13:17
|- - prottoss   Цитата(KRS @ Jan 9 2008, 20:17) Отсальные...   Jan 9 2008, 14:26
- - prottoss   Наконец то разобрался в своей проблеме:-) До этого...   Jan 11 2008, 15:40
- - xelax   Вообще конечно ATMEL неприятно удивил своей реализ...   Jan 14 2008, 06:35
- - vdik   Сейчас вот разбираюсь с SPI, чтоб не плодить темы,...   Feb 13 2008, 07:49
- - prottoss   Цитата(vdik @ Feb 13 2008, 14:49) Как наи...   Feb 13 2008, 07:55


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

 


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


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