|
|
  |
Как посмотреть MCLK у MSP430F449, проблемы с железом? |
|
|
|
May 5 2005, 08:40
|
Участник

Группа: Свой
Сообщений: 51
Регистрация: 20-07-04
Пользователь №: 342

|
Народ помогите советом. Мучаю "MSP430F449IPZ rev G" под IAR321 c помощью MSP-FETP430IF v1.4. стоит 2 кварца: 32768 и 4 MHz, процессор работает от DCO. Включаю второй кварц на 4 MHz, видно как он начинает генерить. програмирую Р1.1_DIR Р1.4_DIR Р1.5_DIR на вывод и переключаю на алтернативную функцию Р1.1_SEL Р1.4_SEL Р1.5_SEL. Смотрю осцилографом и вижу тоько ACLK на 82 выводе(Р1.5). На ножках Р1.4-83(SMCLK) Р1.1-86(MCLK) висят 1. Порты исправны в режиме вывода всё выводится нормально. Для меня это первый проект на 430 серии поэтому просьба сильно не пинать и по возможности ткнуть носом где чего я не дочитал. привожу пример кода void init_per(void) { asm ("BIC.B #0x20, 0x0054 "); // XT2OFF=0
// init_P1 asm ("BIS.B #0x02, 0x0022"); // P1.1_DIR asm ("BIS.B #0x10, 0x0022"); // P1.4 asm ("BIS.B #0x20, 0x0022"); // P1.5
asm ("BIS.B #0x02, 0x0026"); // P1.1_SEL asm ("BIS.B #0x10, 0x0026"); // P1.4 asm ("BIS.B #0x20, 0x0026"); // P1.5 } "Заранее спасибо за ответы.
|
|
|
|
|
May 5 2005, 09:09
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Три вопроса. 1. Зачем используете ассемблер в СИшном файле? 2. Почему бы вам не придерживаться обозначений регистров принятых TI. Ведь в комментариях же вы их указываете, а в тексте программы почему-то не используете. Вы думаете что все программисты адреса всех регистров в уме держат?  3. Где у вас процедура инициализации источников тактирования? Приведите уж и ее тоже. Если она заключена только в первой строчке данного кода, то она неверная. RTFM. А ваш пример я бы модифицировал таким способом. Код void init_per(void) { asm ("BIC.B #0x20, 0x0054 "); // XT2OFF=0
// init_P1 // asm ("BIS.B #0x02, 0x0022"); // P1.1_DIR // asm ("BIS.B #0x10, 0x0022"); // P1.4 // asm ("BIS.B #0x20, 0x0022"); // P1.5 ; вместо трех коммагд одна P1DIR |= PIN1+PIN4+PIN5; // asm ("BIS.B #0x02, 0x0026"); // P1.1_SEL // asm ("BIS.B #0x10, 0x0026"); // P1.4 // asm ("BIS.B #0x20, 0x0026"); // P1.5 ; вместо еще трех комманд одна P1SEL |= PIN1+PIN4+PIN5; } Процедуру инициализации источников тактирования я приводил в другом сообщении. См. тему UART+System Clock
|
|
|
|
|
May 12 2005, 07:05
|
Участник

Группа: Свой
Сообщений: 51
Регистрация: 20-07-04
Пользователь №: 342

|
Источники тактирования я не инициализирую, они остаются по умолчанию после сброса, тоесть MCLK=DCO. Единственное что я сделал я разрешил генерацию ХТ2 и ХТ1 и попытался вывести наружу MCLK, ACLK, SMCLK. И смог увидеть лишь ACLK. Полная процедура инициализации насколько я понял нужна когда переходиш на тактирование от кварца (нужно его включить, дождаться стабилизации генерации и лишь после этого переключаться на него). У меня всё пока работает от DCO и MCLK тактируется от DCO, но вывести этот сигнал на вывод Р1.1/MCLK-(86) не получилось.
|
|
|
|
|
May 16 2005, 06:05
|
Участник

Группа: Свой
Сообщений: 51
Регистрация: 20-07-04
Пользователь №: 342

|
Отправил сообщение в пятницу - по видимому прокси сожрал  повторюсь сегодня. У меня создалось впечатление что это глюк железа: Посмотрел silicon errata на сайте у TI там последнее обновление от 2004.07 и моей ревизии нет. Скачал файл с примерами slac019e.zip, откомпилировал файл fet440_fll_02.c - не работает!!! На всякий случай приведу сведения о своём кристалле MSP430F449IPZ 42DFROT revG. В присоединённом файле приведено как я это всё делаю, покритикуйте
Прикрепленные файлы
primer.txt ( 2.55 килобайт )
Кол-во скачиваний: 111
|
|
|
|
|
Nov 4 2009, 21:23
|

тут может быть ваша реклама
    
Группа: Свой
Сообщений: 1 164
Регистрация: 15-03-06
Из: Санкт-Петербург/CA
Пользователь №: 15 280

|
Код P5SEL = BIT5; P5DIR = BIT5; Вот так порты инициализирую. Вочдог отключен, очки не ношу, с пинами и щупами все ок, MCLK то вижу. Зато у меня было вопросительное слово "почему"  Кстати, кварц на XT2 не пользую. Это ведь не должно играть роли? Спасибо.
|
|
|
|
|
Nov 5 2009, 17:49
|

тут может быть ваша реклама
    
Группа: Свой
Сообщений: 1 164
Регистрация: 15-03-06
Из: Санкт-Петербург/CA
Пользователь №: 15 280

|
Хорошо, весь так весь. Код main() { WDTCTL = WDTPW + WDTHOLD; BCSCTL1 = RSEL0 + RSEL1 + RSEL2 + XT2OFF; DCOCTL = DCO0 + DCO1 + DCO2; //DCO ~= 5MHz BCSCTL2 = DIVS_1; P5SEL = BIT5; P5DIR = BIT5; while(1); } Проблема глубже судя по всему. Я не могу установить выход в 1 на пинах P5.5/SMCLK, P1.4/SMCLK, P2.0/ACLK, P5.6/ACLK. На любых соседних могу, на тех, которые делят клоки на выход - нет. Потом выяснилось еще больше, клок на выход я все-таки могу подать, но размах меандра... 70 мВ, поэтому я и не видел его с обычной разверткой осциллографа, а как уменьшил стало видно. Частота на выход при этом идет правильная, соответствующая SMCLK. Что это? Скажите пожалуйста, вы пробовали вывести эти сигналы наружу в контроллерах 1 серии?
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|