Перейти к содержанию
    

MSP430F249 и 16 MHz

Добрый день !

 

Пытаюсь инициализировать MSP430F249 на 16 MHz - не работает

Все вроде по эррате

 

BCSCTL1 = XT2OFF + RSEL2 + RSEL1 + RSEL0;

DCOCTL = CALDCO_16MHZ;

BCSCTL1 = CALBC1_16MHZ;

 

и вообще при загрузке калибровочных коэффициентов не работает

так же не работает и при

BCSCTL1 |= (RSEL0 | RSEL1 | RSEL2 | RSEL3);

 

а при

 

BCSCTL1 = XT2OFF + RSEL2 + RSEL1 + RSEL0;

DCOCTL = (DCO0 | DCO1 | DCO2) | (!MOD0 | !MOD1 | !MOD2 | !MOD3 | !MOD4);

 

Все работает ....

Что может быть не так ?????

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что может быть не так ?????

Вполне вероятно, что во время манипуляций по программированию памяти вы затерли сегмент с калибровочными константами. Если есть отладчик, то посмотрите содержимое памяти Flash по адресам 0x10C0-0x10FF. Если там сплошные 0xFF, то так и есть - калибровочные контакты были затерты при загрузке программы.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

BCSCTL1 = XT2OFF + RSEL2 + RSEL1 + RSEL0;

DCOCTL = CALDCO_16MHZ;

BCSCTL1 = CALBC1_16MHZ;

А если так попробовать?

DCOCTL = CALDCO_16MHZ;

BCSCTL1 = CALBC1_16MHZ;

BCSCTL1 |= XT2OFF + RSEL2 + RSEL1 + RSEL0;

В вашем-же случае третья строка перетирает данные, записанные в первой строке.

Изменено пользователем igorle

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Обычно вот такой кусочек втыкаю в прогу для детекта отсутствия нужных констант. От левых чисел не спасет, но все же)

if (CALBC1_16MHZ ==0xFF || CALDCO_16MHZ == 0xFF)

{

while(1);

}

 

Внутри цикла по желанию. В простейшем случае прога трапается и далее не идет.

И еще убедитесь что питание в норме для 16мгц(см даташит). Вполне может оказаться что питание маловато, и иногда работает, а иногда - нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А если так попробовать?

DCOCTL = CALDCO_16MHZ;

BCSCTL1 = CALBC1_16MHZ;

BCSCTL1 |= XT2OFF + RSEL2 + RSEL1 + RSEL0;

В вашем-же случае третья строка перетирает данные, записанные в первой строке.

Ничего там не перетирается

Все из ерраты

 

slaz184.pdf

стр. 4

the 3-step clock startup sequence

 

C:

BCSCTL1 = XT2OFF + RSEL2 + RSEL1 + RSEL0; // BCL12 Workaround, first set RSELx=7

DCOCTL = CALDCO_1MHZ; // Then set target DCOx and MODx

BCSCTL1 = CALBC1_1MHZ; // Finally set target RSELx

Изменено пользователем fox1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Заработало на 15 Мгц

 

BCSCTL1 = (XT2OFF | RSEL2 | RSEL1 | RSEL0); // BCL12 Workaround, first set RSELx=7

 

DCOCTL = (DCO0 | DCO1 | DCO2) | (!MOD0 | !MOD1 | !MOD2 | !MOD3 | !MOD4);

 

BCSCTL1 |= (RSEL0 | RSEL1 | RSEL2 | RSEL3);

 

Но похоже затерлись калибровочные константы при прошивке

 

Показывает

CALDCO_16MHZ = 0xFF;

CALBC1_16MHZ = 0xFF;

 

Прошиваю

 

msp430-bsl.exe -c0 -m10 -1 --invert-test -epvrw 3010I_430_01_01.elf>log.txt

 

Есть какой-либо прошивальщик bsl, который не затирает инфо мем, а шьет только программную память ???

Кто нибудь может привести значение CALDCO_16MHZ и CALBC1_16MHZ. Что там должно быть примерно ????

Изменено пользователем fox1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Заработало на 15 Мгц
Интересно, а как вы определили частоту? Частота DCO зависит как от установки RSEL и DCO, так и от температуры кристалла и напряжения питания. При RSEL=15 и DCO=7 диапазон частот генерируемый DCO находится от 16МГц до 26МГц. См. строку fDCO(15,7) DCO frequency (15, 7) в таблице DCO frequency на странице 42 в datasheet MSP430F249.

Есть какой-либо прошивальщик bsl, который не затирает инфо мем, а шьет только программную память ???
Программируйте через JTAG. Для него в программе обычно есть опция, которая сохраняет область INFO_A неизменной.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...