Статус: Офлайн
Реєстрація: 20.04.2006
Повідом.: 38067
Реєстрація: 20.04.2006
Повідом.: 38067
MSP430 и USCI
Кто имел дело с MSP430G2553 и его USCI?
Пытаюсь сделать UART <-> SPI конвертер на нем, сплошная беда с синхронизацией.
Иничу SPI трансивер на B-канале USCI:
Целевой девайс перед общением требует сброс в таком виде (единица на CS-пине (STE) в течение двух клоков):
Потом гашу STE и пишу/читаю в UCB0ТXBUF/UCB0RXBUF когда поднимутся флаги UCB0TXIFG и UCB0RXIFG соответственно.
В итоге, в пошаговом дебаге весь обмен идет удачно, а если сделать несколько циклов отправка/прием за один присест - где-то виснет в процессе, то есть на ожидании флагов готовности буферов отправки/приема походу.
Задолбало уже, хочется поработать с тем девайсом конечным, а тут такая засада с переходником.
Кто имел дело с MSP430G2553 и его USCI?
Пытаюсь сделать UART <-> SPI конвертер на нем, сплошная беда с синхронизацией.
Иничу SPI трансивер на B-канале USCI:
P1SEL |= SOMI + SIMO + CLK; //P1.6, P1.7, P1.5
P1SEL2 |= SOMI + SIMO + CLK;
P1DIR |= STE; //P1.4
P1OUT |= STE;
UCB0CTL1 = UCSWRST;
UCB0CTL0 |= UCMSB + UCSYNC + UCMST;
UCB0CTL0 &= ~UCCKPH + UCCKPL;
UCB0CTL1 |= UCSSEL_2;
UCB0BR0 = 80;
UCB0BR1 = 0;
UCB0CTL1 &= ~UCSWRST;
IE2 |= UCB0RXIE;
Целевой девайс перед общением требует сброс в таком виде (единица на CS-пине (STE) в течение двух клоков):
Тут такой выебос с CLK-пином из-за того, что изначально он конфигурится как SPI Master Clock, а мне надо на нем два клока без реального обмена сделать, поэтому он возвращается в GPIO-режим а потом обратно в SPI Clock.P1OUT |= STE;
__delay_cycles(80);
P1SEL &= ~CLK;
P1SEL2 &= ~CLK;
P1DIR |= CLK;
P1OUT |= CLK;
__delay_cycles(80);
P1OUT &= ~CLK;
__delay_cycles(80);
P1OUT |= CLK;
__delay_cycles(80);
P1OUT &= ~CLK;
__delay_cycles(80);
P1SEL |= CLK;
P1SEL2 |= CLK;
P1DIR &= ~CLK;
Потом гашу STE и пишу/читаю в UCB0ТXBUF/UCB0RXBUF когда поднимутся флаги UCB0TXIFG и UCB0RXIFG соответственно.
В итоге, в пошаговом дебаге весь обмен идет удачно, а если сделать несколько циклов отправка/прием за один присест - где-то виснет в процессе, то есть на ожидании флагов готовности буферов отправки/приема походу.
Задолбало уже, хочется поработать с тем девайсом конечным, а тут такая засада с переходником.
Останнє редагування: