|
UART на MSP430F2131 |
|
|
|
Nov 20 2008, 13:46
|
Местный
  
Группа: Участник
Сообщений: 202
Регистрация: 10-04-05
Из: Санкт-Петербург
Пользователь №: 4 011

|
Мне нужно реализовать UART на MSP430F2131. У этого МК нет аппаратного UART, а есть Timer UART с 3-мя Capture/Compare Registers. Я пока развожу плату, поэтому мне пока нужно разобраться в функциях ног МК.
Расскажите, пожалуйста, на пальцах назначение выходов, предназначеных для ССRx.
Вот часть таблицы из даташита, оставил только непонятное:
P1.1/TA0 Timer_A, capture: CCI0A input, compare: Out0 output P1.2/TA1 Timer_A, capture: CCI1A input, compare: Out1 output P1.3/TA2 Timer_A, capture: CCI2A input, compare: Out2 output P1.5/TA0 Timer_A, compare: Out0 output P1.6/TA1 Timer_A, compare: Out1 output P1.7/TA2 Timer_A, compare: Out2 output P2.2TA0 Timer_A, capture: CCI0B input P2.3/TA1 Timer_A, compare: Out1 output P2.4/TA2 Timer_A, compare: Out2 output
В чем разница этих функций? В общем, ничего пока не понятно...
Спасибо.
|
|
|
|
|
 |
Ответов
|
Nov 24 2008, 19:28
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Зачем обязательно придумывать что-то свое? Используйте стандартные и рекомендуемые производителем TI символьные обозначения регистров и битов. Найти их можно в хедере конкретного кристалла. Для вашего случая это msp430x21x1.h. В аттачменте его содержимое из среды IAR EW430 4.11B. В частности альтернативные названия битов и групп битов таймера А выглядят вот так CODE /* Alternate register names */ #define CCTL0 TACCTL0 /* Timer A Capture/Compare Control 0 */ #define CCTL1 TACCTL1 /* Timer A Capture/Compare Control 1 */ #define CCTL2 TACCTL2 /* Timer A Capture/Compare Control 2 */ #define CCR0 TACCR0 /* Timer A Capture/Compare 0 */ #define CCR1 TACCR1 /* Timer A Capture/Compare 1 */ #define CCR2 TACCR2 /* Timer A Capture/Compare 2 */ #define CCTL0_ TACCTL0_ /* Timer A Capture/Compare Control 0 */ #define CCTL1_ TACCTL1_ /* Timer A Capture/Compare Control 1 */ #define CCTL2_ TACCTL2_ /* Timer A Capture/Compare Control 2 */ #define CCR0_ TACCR0_ /* Timer A Capture/Compare 0 */ #define CCR1_ TACCR1_ /* Timer A Capture/Compare 1 */ #define CCR2_ TACCR2_ /* Timer A Capture/Compare 2 */
#define TASSEL1 (0x0200) /* Timer A clock source select 0 */ #define TASSEL0 (0x0100) /* Timer A clock source select 1 */ #define ID1 (0x0080) /* Timer A clock input divider 1 */ #define ID0 (0x0040) /* Timer A clock input divider 0 */ #define MC1 (0x0020) /* Timer A mode control 1 */ #define MC0 (0x0010) /* Timer A mode control 0 */ #define TACLR (0x0004) /* Timer A counter clear */ #define TAIE (0x0002) /* Timer A counter interrupt enable */ #define TAIFG (0x0001) /* Timer A counter interrupt flag */
#define MC_0 (0*0x10u) /* Timer A mode control: 0 - Stop */ #define MC_1 (1*0x10u) /* Timer A mode control: 1 - Up to CCR0 */ #define MC_2 (2*0x10u) /* Timer A mode control: 2 - Continous up */ #define MC_3 (3*0x10u) /* Timer A mode control: 3 - Up/Down */ #define ID_0 (0*0x40u) /* Timer A input divider: 0 - /1 */ #define ID_1 (1*0x40u) /* Timer A input divider: 1 - /2 */ #define ID_2 (2*0x40u) /* Timer A input divider: 2 - /4 */ #define ID_3 (3*0x40u) /* Timer A input divider: 3 - /8 */ #define TASSEL_0 (0*0x100u) /* Timer A clock source select: 0 - TACLK */ #define TASSEL_1 (1*0x100u) /* Timer A clock source select: 1 - ACLK */ #define TASSEL_2 (2*0x100u) /* Timer A clock source select: 2 - SMCLK */ #define TASSEL_3 (3*0x100u) /* Timer A clock source select: 3 - INCLK */
#define CM1 (0x8000) /* Capture mode 1 */ #define CM0 (0x4000) /* Capture mode 0 */ #define CCIS1 (0x2000) /* Capture input select 1 */ #define CCIS0 (0x1000) /* Capture input select 0 */ #define SCS (0x0800) /* Capture sychronize */ #define SCCI (0x0400) /* Latched capture signal (read) */ #define CAP (0x0100) /* Capture mode: 1 /Compare mode : 0 */ #define OUTMOD2 (0x0080) /* Output mode 2 */ #define OUTMOD1 (0x0040) /* Output mode 1 */ #define OUTMOD0 (0x0020) /* Output mode 0 */ #define CCIE (0x0010) /* Capture/compare interrupt enable */ #define CCI (0x0008) /* Capture input signal (read) */ #define OUT (0x0004) /* PWM Output signal if output mode 0 */ #define COV (0x0002) /* Capture/compare overflow flag */ #define CCIFG (0x0001) /* Capture/compare interrupt flag */
#define OUTMOD_0 (0*0x20u) /* PWM output mode: 0 - output only */ #define OUTMOD_1 (1*0x20u) /* PWM output mode: 1 - set */ #define OUTMOD_2 (2*0x20u) /* PWM output mode: 2 - PWM toggle/reset */ #define OUTMOD_3 (3*0x20u) /* PWM output mode: 3 - PWM set/reset */ #define OUTMOD_4 (4*0x20u) /* PWM output mode: 4 - toggle */ #define OUTMOD_5 (5*0x20u) /* PWM output mode: 5 - Reset */ #define OUTMOD_6 (6*0x20u) /* PWM output mode: 6 - PWM toggle/set */ #define OUTMOD_7 (7*0x20u) /* PWM output mode: 7 - PWM reset/set */ #define CCIS_0 (0*0x1000u) /* Capture input select: 0 - CCIxA */ #define CCIS_1 (1*0x1000u) /* Capture input select: 1 - CCIxB */ #define CCIS_2 (2*0x1000u) /* Capture input select: 2 - GND */ #define CCIS_3 (3*0x1000u) /* Capture input select: 3 - Vcc */ #define CM_0 (0*0x4000u) /* Capture mode: 0 - disabled */ #define CM_1 (1*0x4000u) /* Capture mode: 1 - pos. edge */ #define CM_2 (2*0x4000u) /* Capture mode: 1 - neg. edge */ #define CM_3 (3*0x4000u) /* Capture mode: 1 - both edges */
Для вашего же случая (вы видимо хотите запустить таймер в режиме Up/Down?) строка будет выглядеть таким образом Код TACTL|=MC_3; что эквивалентно Код TACTL|=MC1|MC0; или Код TACTL|=0x30;
|
|
|
|
Сообщений в этой теме
Slash UART на MSP430F2131 Nov 20 2008, 13:46 Dog Pawlowa Цитата(Slash @ Nov 20 2008, 17:46) В чем ... Nov 20 2008, 14:24 IgorKossak Slash, выделил Ваш вопрос в отдельную тему.
Не сле... Nov 20 2008, 16:55 rezident Цитата(Slash @ Nov 20 2008, 18:46) Мне ну... Nov 20 2008, 17:09 Slash Цитата(rezident @ Nov 20 2008, 20:09) sla... Nov 20 2008, 17:56  rezident Цитата(Slash @ Nov 20 2008, 22:56) Всего ... Nov 20 2008, 18:26 Slash Спасибо всем за советы, продолжаю работу Работаю ... Nov 24 2008, 14:02 Сергей Борщ Цитата(Slash @ Nov 24 2008, 16:02) 1 вари... Nov 24 2008, 14:40 Slash Сергей Борщ, rezident, спасибо, стало понятнее.
В... Nov 25 2008, 08:19 rezident Цитата(Slash @ Nov 25 2008, 13:19) Вот то... Nov 25 2008, 14:06 Slash Подскажите, пожалуйста, в чем может быть ошибка?
О... Dec 24 2008, 18:26 rezident Slash, вы наверное считаете, что телепатические сп... Dec 24 2008, 19:51 Slash Отладчик MSP-FET430UIF, схему приложил. Может еще ... Dec 25 2008, 06:57 rezident Цитата(Slash @ Dec 25 2008, 11:57) Отладч... Dec 25 2008, 13:14  Slash Цитата(rezident @ Dec 25 2008, 16:14) Вы ... Dec 25 2008, 18:12 rezident Тогда скорее всего проблема с величиной тока нагру... Dec 25 2008, 18:30 Slash Еще подключены:
ADUM5401
ADM3312
HEF4051 - 3шт.
А... Dec 26 2008, 10:21 rezident Цитата(Slash @ Dec 26 2008, 15:21) А кака... Dec 26 2008, 13:50 Slash Ясно, спасибо.
Пока у меня не прошел период детск... Dec 26 2008, 14:46 Slash Здравствуйте!
Вопрос больше по принципам про... Jan 8 2009, 10:43 chert_kol Меня смущают такие конструкции Кодk->bdcNumber... Jan 24 2009, 15:56
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|