Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Калибровочные константы MSP430F249
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
chernenko
Стерлись калибровочные константы.
Сами константы я знаю.
Как правильно перезаписать?
jorikdima
Использовать работу с флэш памятью МСП. Читать соответствующий раздел Юзер Гида smile.gif
chernenko
Цитата(jorikdima @ Dec 3 2010, 15:50) *
Использовать работу с флэш памятью МСП. Читать соответствующий раздел Юзер Гида smile.gif


Читал, писал, прошивал ничего не меняется.

Код
    *(volatile unsigned short*)0x0120 = WDTPW + WDTHOLD;

    *(volatile unsigned short*)0x012C = 0x0A500; /* Lock = 0 */
    *(volatile unsigned short*)0x012A = 0x0A55A;    
    *(volatile unsigned short*)0x0128 = 0x0A540; /* WRT = 1 */

    *(volatile unsigned short*)0x10FC = 0x9c;  /* program Flash word */

    *(volatile unsigned short*)0x0128 = 0x0A500; /* WRT = 0 */
    *(volatile unsigned short*)0x012C = 0x0A510; /* Lock = 1 */

    *(volatile unsigned short*)0x0120 = WDTPW + WDTCNTCL + WDTSSEL;


Вот пример того что я делаю.
MrYuran
Цитата(chernenko @ Dec 3 2010, 16:13) *
Вот пример того что я делаю.

Ну и что, по-вашему, люди должны сидеть и сверять по справочнику адреса и биты?
Намного красивее смотрятся мнемонические обозначения:
Код
void SaveToFlash(unsigned int *FlashPtr, unsigned int *DataPtr, unsigned int NumOfWords)
{  
    _DINT();
        FCTL1 = FWKEY + ERASE;                // Set Erase bit
        FCTL3 = FWKEY;                        // Clear Lock bit
        *FlashPtr = 0;                       // Dummy write to erase Flash segment
        FCTL1 = FWKEY + WRT;                  // Set WRT bit for write operation
        
        memcopy(FlashPtr, DataPtr, NumOfWords);

        FCTL1 = FWKEY;                          // Clear WRT bit
        FCTL3 = FWKEY + LOCK;                   // Reset LOCK bit
    _EINT();
}
chernenko
Цитата(MrYuran @ Dec 3 2010, 16:27) *
Ну и что, по-вашему, люди должны сидеть и сверять по справочнику адреса и биты?
Намного красивее смотрятся мнемонические обозначения:


Согласен, но увы мне этот код в проекте достался по наследству....
И мне самому во многом не нравится как он написан.

Но я уже все перепробовал и перероверил. Потому и спрашиваю.

Мне удается записать во все сегменты кроме INFOA. Когда доходит до диапазона 0x10c0 - 0x10ff то туда ничего не записывается.
rezident
Цитата(chernenko @ Dec 3 2010, 18:37) *
Мне удается записать во все сегменты кроме INFOA. Когда доходит до диапазона 0x10c0 - 0x10ff то туда ничего не записывается.
Видимо потому, что вы проигнорировали совет - почитать User's Guide. Иначе вы бы уже знали, что у этого сегмента (INFOA) есть свой отдельный LOCK-бит. wink.gif
chernenko
Цитата(rezident @ Dec 3 2010, 22:58) *
Видимо потому, что вы проигнорировали совет - почитать User's Guide. Иначе вы бы уже знали, что у этого сегмента (INFOA) есть свой отдельный LOCK-бит. wink.gif


Я знаю. Я его сбрасываю и проверяю что он сбрасывается.
В первом сообщении код который использовался другим человеком в этой программе. Я потом изменил то, что относится к биту LOCKA

Код
if ( FCTL3_bit.LOCKA )  FCTL3  = FWKEY + LOCKA;
ih_
Цитата(chernenko @ Dec 4 2010, 07:44) *
Я знаю...
Приведите код инициализации flash модуля и BCM. Расскажите о тактировании?
chernenko
Забыл отписаться....

Константы прошились, но они были определены не точно.
надо будет их заново определять.
MrYuran
Цитата(chernenko @ Dec 7 2010, 11:00) *
Константы прошились, но они были определены не точно.
надо будет их заново определять.

У TI на сайте вроде была аппликуха для автоматической калибровки констант
Shread
Идем на msp430.com, поиском находим нужный процессор, далее внизу страницы продукта(процессора) ищем ссылку для скачки с надписью типа такой:"MSP430F23x0 Code Examples (Rev. C) (ZIP 360 KB ) 700 views"
Скачиваем и в архиве соответсвующего "slac..." находим файл с именем типа: "msp430x23x0_dco_flashcal.c"... прошиваем проц, к которому припаян часовой кварц на XT1, запускаем.. ждем, проверяем наличие констант в соотв области.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.