Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SSP в LPC23хх
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Bosicc
Вот начал разбираться с SSP под кристал LPC2378.
Возникло пару вопросов:
  1. Какого размера FIFO для приема и передачи по SSP и где в документации это можно найти что б почитать?
  2. Как работать с DMA при передачи по SSP?
  3. Как загрузить массив даных на передачу в TX FIFO?

Если есть немного опыта, поделитесь smile.gif
KRS
В user.manual.lpc2364.lpc2366.lpc2368.lpc2378.pdf все описано!
http://www.standardics.nxp.com/support/documents/?type=user
Bosicc
Цитата(KRS @ May 24 2007, 10:32) *
В user.manual.lpc2364.lpc2366.lpc2368.lpc2378.pdf все описано!
http://www.standardics.nxp.com/support/documents/?type=user


Этот документ, а именно глава 17 была прочитана от первой до последней буквы минимум 5 раз. И всеравно я не понимаю почему у меня нет никаких признаков жизни на ногах.

Вот что я делаю.

1. Инициализирую ( выбираю ноги, настраиваю прерывания, задаю ему режим мастера + все необходимые настройки )
2. отправляю 1 байт

Но никакой реакции. Может я что то забыл? Ниже код который мучаю на даный момент.

Код
VICVectAddr10 = (unsigned long)spp0_isr; // SPP Interrupt -> Vector 10
VICVectCntl10 = 10;                         // Set Priority
VICIntEnable |= 1 << 10;                        // Enable SPP Interrupt -> Set bit 10

PCON |= (1<<21);                   // ADD Power
PINSEL0 |= (2<<30);                  // Select SCK
PINSEL1 |= (2<<0)|(2<<2)|(2<<4);    // Select SSEL, MOSI, MISO
    
        
SSP0CPSR = 12;                    // Set devider for SCK (CPSDVSR)

SSP0CR0 = (0<<8)|(sck_level<<7)|(tx_clk<<6)|(protocol<<4)|(bits-1);
                            // Serial Clock rate:     F = PCLK/(CPSDVSR*[SCR+1]) | bits 15..8
                            // Clock Out Phase:     0 = a                      | bit  7
                            // Clock Out Polarity:    control transmit               | bit  6
                            // Frame Format:        00-SPI                      | bit  5..4
                            // Data size select:    0x3-4bits... 0xF-16bits                  | bits 0..3

SSP0IMSC = (0<<3)|(0<<2)|(0<<1)|(0<<0);
                            // Enable Int Recieve Overrun occurs                  | bit 0
                            // Enable Int Recieve timeout                     | bit 1
                            // Enable Int RxFIFO is at least half full                 | bit 2
                            // Enable Int TxFIFO is at least half full                 | bit 3

SSP0DMACR = (1<<1)|(1<<0);         // Enable DMA for TX FIFO and RX FIFO      | bit 1,0

SSP0CR1 = (0<<3)|(mode<<2)|(1<<1)|(0);
                            // Loop Back Mode:                       | bit 0
                            // SSP Enable:                              | bit 1
                            // Mode:             aster, 1-Slave          | bit 2
                                // Slave output disable.

SSP0DR = 0хABBA;
KRS
А еще надо нужные ноги на выход настроить через IOxDIR регистр.
GetSmart
Цитата(KRS @ May 25 2007, 16:20) *
А еще надо нужные ноги на выход настроить через IOxDIR регистр.

А раньше такого не было 07.gif
zltigo
Цитата(KRS @ May 25 2007, 13:20) *
А еще надо нужные ноги на выход настроить через IOxDIR регистр.

Нет. IODIR для не GPIO игнорируется.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.