|
MSP-EXP430F5529, I2C slave transmitter проблема |
|
|
|
Oct 5 2011, 15:50
|
Частый гость
 
Группа: Участник
Сообщений: 109
Регистрация: 19-01-11
Пользователь №: 62 335

|
Добрый день!
Есть борд MSP-EXP430F5529. Запускаю I2C. Среда IAR. Загрузил пример от TI MSP430F55xx_uscib0_i2c_05, который делает борд ведомым передатчиком и отправляет число по I2C мастеру. Заметил странность, мастер получает числа как будто деленные на 2. В теле программы создал константу и отправляю ее на передачу, мастером вижу, что число в два раза меньше, к примеру оправляю 0xAA получаю 0x55, отправляю 0хFF получаю 0x7F. Такое ощущение что сдвиговый регистр отнимает единицу от количества требуемых сдвигов, из-за этого получается деление на два. Читал мануал, код вроде правильный, а непонимание есть. Что это такое, как это понять и устранить?
|
|
|
|
|
 |
Ответов
|
Oct 5 2011, 17:50
|
Частый гость
 
Группа: Участник
Сообщений: 109
Регистрация: 19-01-11
Пользователь №: 62 335

|
Код #include <msp430f5529.h>
unsigned char TXData; unsigned char i=0;
void main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop WDT
P3SEL |= 0x03; // Assign I2C pins to USCI_B0 UCB0CTL1 |= UCSWRST; // Enable SW reset UCB0CTL0 = UCMODE_3 + UCSYNC; // I2C Slave, synchronous mode UCB0I2COA = 0x48; // Own Address is 048h UCB0CTL1 &= ~UCSWRST; // Clear SW reset, resume operation UCB0IE |= UCTXIE + UCSTTIE + UCSTPIE; // Enable TX interrupt // Enable Start condition interrupt TXData = 0xAA; // Used to hold TX data
__bis_SR_register(LPM0_bits + GIE); // Enter LPM0 w/ interrupts __no_operation(); // For debugger }
// USCI_B0 State ISR #pragma vector = USCI_B0_VECTOR __interrupt void USCI_B0_ISR(void) { switch(__even_in_range(UCB0IV,12)) { case 0: break; // Vector 0: No interrupts case 2: break; // Vector 2: ALIFG case 4: break; // Vector 4: NACKIFG case 6: // Vector 6: STTIFG UCB0IFG &= ~UCSTTIFG; // Clear start condition int flag break; case 8: // Vector 8: STPIFG //TXData++; // Increment TXData UCB0IFG &= ~UCSTPIFG; // Clear stop condition int flag break; case 10: break; // Vector 10: RXIFG case 12: // Vector 12: TXIFG UCB0TXBUF = TXData; // TX data break; default: break; } } Вот ссылка на архив со всеми примерами для данного кристалла
Сообщение отредактировал *rust* - Oct 5 2011, 17:43
|
|
|
|
Сообщений в этой теме
*rust* MSP-EXP430F5529 Oct 5 2011, 15:50 rezident А кто у вас мастер-то? Oct 5 2011, 17:07 *rust* Мастер FTDI-микросхема, данные смотрю на компьютер... Oct 5 2011, 17:21 rezident Дайте ссылку, откуда берете ваш пример? Или привед... Oct 5 2011, 17:30 rezident Вроде никакого криминала нет. А резисторы на шине ... Oct 5 2011, 19:24 *rust* по 10кОм Oct 5 2011, 19:47 KARLSON Самая лучшая проверка - осциллографом. Oct 6 2011, 04:24 *rust* Передаю 0xFF
Смотрю на осциллографе прием адреса, ... Oct 6 2011, 07:02 *rust* Дополнение:
После приема адреса и ответа аска, ли... Oct 6 2011, 08:05 *rust* Что еще можно посмотреть, вообще не понимаю что пр... Oct 6 2011, 10:52 rezident Уменьшите номиналы резисторов вдвое. На какой част... Oct 6 2011, 14:21 *rust* Поставил уже резисторы 4.7кОм-результат тот же. Ча... Oct 6 2011, 15:21 rezident 1МГц на шине с резисторами 10 кОм??? Вы никаких,... Oct 6 2011, 17:04 *rust* ЦитатаВы никаких, извиняюсь, необычных грибов на о... Oct 6 2011, 18:31 *rust* Частоту тактирования поднял уже до 16МГц, MSP пере... Oct 8 2011, 09:53 *rust* Неужели с такой проблемой никто не сталкивался? Oct 10 2011, 17:25 rezident Дык все-таки, какие по величине резисторы pull-up ... Oct 10 2011, 19:48 *rust* Резисторы по 4.7кОм. Проверяю на частоте от 400кГц... Oct 11 2011, 06:35 *rust* Посмотрите на этот скрин (адрес). Поймал граничное... Oct 11 2011, 09:37 rezident Цитата(*rust* @ Oct 11 2011, 14:37) Остае... Oct 11 2011, 15:05 *rust* ЦитатаА описание бага USCI30 в errata не в тему?
В... Oct 11 2011, 19:48 rezident На вашей осциллограмме присутствует "ступеньк... Oct 11 2011, 22:34 *rust* Цитатаконфликт при котором помимо (взаимо)действия... Oct 12 2011, 06:10 rezident Цитата(*rust* @ Oct 12 2011, 11:10) Поэто... Oct 12 2011, 14:32 *rust* ЦитатаДык это явное нарушение спецификации I2C... Oct 12 2011, 17:53 rezident Цитата(*rust* @ Oct 12 2011, 22:53) А ник... Oct 12 2011, 19:03 *rust* rezident, спасибо за подробный ответ и Ваши хлопот... Oct 12 2011, 21:10 rezident Цитата(*rust* @ Oct 13 2011, 02:10) Как В... Oct 13 2011, 09:19 *rust* Убрал FTDI. В качестве мастера выступил PIC, работ... Oct 13 2011, 09:50 rezident 3,5мкс это как раз 28 тактов на 8МГц. Модель памят... Oct 13 2011, 10:32 *rust* Цитата3,5мкс это как раз 28 тактов на 8МГц. Модель... Oct 13 2011, 10:44 rezident 100кГц я имел в виду, это если требуется совсем бе... Oct 13 2011, 12:04 *rust* Цитата100кГц я имел в виду
Я так и понял. Спасибо ... Oct 13 2011, 12:16
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|