Суть проблемы: хочу перенести проект с 169-й на 2619-ю MSP-шку, возникла неожиданная проблема с SPI. Вот код инициализирующей функции:
Код
void InitSPI( void )
{
UCB1CTL1 = UCSWRST; // Reset
// SPI function
// 8-bit data,SPI mode,Master mode
UCB1CTL0 |= UCSYNC|UCMST|UCMSB;
// делитель 4
UCB1BR0 = 0x04;
UCB1BR1 = 0;
UCB1CTL1 |= UCSSEL0|UCSSEL1; // source - SMCLK
UCB1STAT = 0x00;
// ножки к spi
SPI_SEL |= BIT(MOSI)|BIT(MISO)|BIT(SCK);
UC1IE &= ~(UCB1TXIE|UCB1RXIE); //Disable all SPI Interrupt
UCB1CTL1 &= ~UCSWRST; // reset SWRST bit
}
При такой конфигурации (бит UCCKPH не установлен) - изменение данных на MOSI должно происходить по первому фронту SCK, а захват - по второму ("Data is changed on the first UCLK edge and captured on the
following edge.").
Однако, если смотреть осциллом - то изменение состояние MOSI происходит по заднему фронту клока, что должно иметь место только при установленном UCCKPH в UCB1CTL0. Если его установить - все останется так же.
Есть у кого какие нибудь мысли на этот счет? Может я что нибудь упустил?