реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> глюкавый msp430f2234, глюки в портах
servol
сообщение Jun 27 2008, 05:21
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 33
Регистрация: 4-11-04
Пользователь №: 1 042



столкнулся с тем,что при выборе альтернативной моды для любого пина
на порту P2, вырубается альтернативная мода в порту P3 - тоесть на 3 порту работает UART, при выводе ШИМ на порт 2 -> UART перестает работать. В errate данный случай не описан.

кто нибудь пользовал их? или такие глюки только у моих процев?
Go to the top of the page
 
+Quote Post
KykyryzzZ
сообщение Jun 27 2008, 06:26
Сообщение #2



***

Группа: Свой
Сообщений: 404
Регистрация: 20-10-05
Пользователь №: 9 885



На msp430f2232 с таким не сталкивался.
Давайте посмотрим, как вы переключаете режимы?
Go to the top of the page
 
+Quote Post
servol
сообщение Jun 27 2008, 06:58
Сообщение #3


Участник
*

Группа: Свой
Сообщений: 33
Регистрация: 4-11-04
Пользователь №: 1 042



Любая запись в P2SEL даже 0 приводит к полному колапсу в процессоре. таймеры тоже перестают работать.

P2DIR=LED_2;
// P2OUT=0;
// P2SEL=0; <----если эту строку включить то все перестает работать

P3DIR= LED_3 | LED_4 | Tx_EN | Rx_EN;
P3OUT= 0;
P3SEL= TxD | RxD;
Go to the top of the page
 
+Quote Post
diper
сообщение Jun 27 2008, 07:47
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 94
Регистрация: 12-11-05
Из: Росиия, Нижний Новгород
Пользователь №: 10 750



Цитата(servol @ Jun 27 2008, 10:58) *
Любая запись в P2SEL даже 0 приводит к полному колапсу в процессоре. таймеры тоже перестают работать.
...
// P2SEL=0; <----если эту строку включить то все перестает работать
...

Ты выключаешь кварц, попробуй записать 0xC0.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Jun 27 2008, 08:07
Сообщение #5


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(diper @ Jun 27 2008, 10:47) *
Ты выключаешь кварц, попробуй записать 0xC0.

07.gif cranky.gif


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
KykyryzzZ
сообщение Jun 27 2008, 08:12
Сообщение #6



***

Группа: Свой
Сообщений: 404
Регистрация: 20-10-05
Пользователь №: 9 885



P2.6 and P2.7 functions have been added to 20- and 28- pin
devices. These are shared functions with XIN and XOUT.
Software must not clear the P2SELx bits for these pins if crystal
operation is required.
Go to the top of the page
 
+Quote Post
servol
сообщение Jun 27 2008, 09:24
Сообщение #7


Участник
*

Группа: Свой
Сообщений: 33
Регистрация: 4-11-04
Пользователь №: 1 042



Во дурдом, не заметил. Всегда использовал "большие" MSP где кварц висел на отдельных ногах.
Мужики спасибо !!!
Go to the top of the page
 
+Quote Post
Pavel V.
сообщение Apr 8 2010, 04:32
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 211
Регистрация: 3-06-06
Пользователь №: 17 742



Начал работать с процессором F2013 и никак не могу понять, как активировать выход TA1, который находится на ноге 2.6 (XIN). У автора исходного поста была проблема с тем, что он случайно отключал кварц, записывая "0" в порт. У меня же, наоборот, не получается его отключить!

Если я записываю "0" в P2SEL &= ~0x40; то вывод начинает работать как General I/O. Несмотря на то, что активизирован Таймер А в режиме ШИМ. Если оставить P2SEL |= 0x40; то вывод работает как вход для кварца, также вне зависимости от настроек Таймера.

Тактирование от DCO:
BCSCTL1 = CALBC1_1MHZ,
DCOCTL = CALDCO_1MHZ,


--------------------
Good News Everyone!
Go to the top of the page
 
+Quote Post
akostin
сообщение Apr 8 2010, 05:19
Сообщение #9


Участник
*

Группа: Свой
Сообщений: 72
Регистрация: 4-12-04
Пользователь №: 1 322



Цитата(Pavel V. @ Apr 8 2010, 07:47) *
Начал работать с процессором F2013 и никак не могу понять, как активировать выход TA1, который находится на ноге 2.6 (XIN).

У меня так работает:
Код
  P2DIR = BIT6;                            // P2.6 output
  P2SEL = BIT6;                            // P2.6 TA1 options
  P2REN=0;

Иногда забывают DIR на выход включить rolleyes.gif
Go to the top of the page
 
+Quote Post
Pavel V.
сообщение Apr 8 2010, 08:26
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 211
Регистрация: 3-06-06
Пользователь №: 17 742



К сожалению, не забыл. Чуть позже выложу полностью свой код инициализации.


--------------------
Good News Everyone!
Go to the top of the page
 
+Quote Post
CAHTA_1939
сообщение Apr 8 2010, 08:58
Сообщение #11


Частый гость
**

Группа: Участник
Сообщений: 142
Регистрация: 11-08-07
Пользователь №: 29 713



8.2.5 Function Select Registers PxSEL and PxSEL2
Port pins are often multiplexed with other peripheral module functions. See the
device-specific data sheet to determine pin functions. Each PxSEL and
PxSEL2 bit is used to select the pin function − I/O port or peripheral module
function.
PxSEL2 PxSEL Pin Function
0 0 I/O function is selected.
0 1 Primary peripheral module function is selected.
1 0 Reserved. See device-specific data sheet.
1 1 Secondary peripheral module function is selected.
Go to the top of the page
 
+Quote Post
rezident
сообщение Apr 8 2010, 10:44
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



CAHTA_1939, лучше наверное скриншоты из мануала и даташита. Нагляднее будет.
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Pavel V.
сообщение Apr 8 2010, 15:22
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 211
Регистрация: 3-06-06
Пользователь №: 17 742



Мануал я читал, примеры смотрел.. Но не работает sad.gif
Код
void ClockInit() {
  BCSCTL1 = CALBC1_1MHZ;
  DCOCTL = CALDCO_1MHZ;
}

void TAInit() {
  P2DIR |= 0x40;                            // P2.6 output
  P2SEL |= 0x40;                            // P2.6 TA1/2 options
  
  CCR0 = 512-1;                             // PWM Period
  CCTL1 = OUTMOD_7;                         // CCR1 reset/set
  CCR1 = 384;                               // CCR1 PWM duty cycle
  TACTL = TASSEL_2 + MC_1;                  // SMCLK, up mode
}

int main( void )
{
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;
  
  ClockInit();
  SD16Init();
  TAInit();
  
  while(1) {}
}


В результате P2.6 в воздухе, т.е. как выход не работает.

Если убрать бит P2SEL.6, можно управлять пином как простым выходом.

Ничего не понимаю..

Если заменить строчки:
Код
  P2DIR |= 0x40;                            // P2.6 output
  P2SEL |= 0x40;                            // P2.6 TA1/2 options


На:
Код
  P1DIR |= 0x40;                            // P1.6 output
  P1SEL |= 0x40;                            // P1.6 TA1/2 options


То все работает. На P1.6, естественно.

У меня запас идей закончился smile.gif


--------------------
Good News Everyone!
Go to the top of the page
 
+Quote Post
rezident
сообщение Apr 8 2010, 20:33
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Pavel V. @ Apr 8 2010, 21:37) *
Мануал я читал, примеры смотрел.. Но не работает sad.gif
...
У меня запас идей закончился smile.gif
Вам два человека намекнули, что нужно смотреть не только мануал, но и datasheet. Посмотрите внимательно в datasheet схемотехнику пинов P2.6 и P2.7 и логики управления их функциями.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Pavel V.
сообщение Apr 9 2010, 05:01
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 211
Регистрация: 3-06-06
Пользователь №: 17 742



Да, действительно, не заметил. Спасибо.
Код
void ClockInit() {
  BCSCTL1 = CALBC1_1MHZ;
  BCSCTL3 = LFXT1S_3;
  DCOCTL = CALDCO_1MHZ;
}

Теперь работает.
Извините за мои глупые вопросы, больше не буду надоедать.


--------------------
Good News Everyone!
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 23:53
Рейтинг@Mail.ru


Страница сгенерированна за 0.01464 секунд с 7
ELECTRONIX ©2004-2016