ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
28 ноября
523992
Гудвин, волшебник (19.06.2014 18:22, просмотров: 9785)
Атас! Бьюсь с одной непоняткой в MSP430G2553. Может кто наступал на подобное? Суть: Питаю девайсы от литий-тионил-хлоридной батарейки EEMB. Свежая выдает 3.65-3.69В. Использую свой загрузчик. В пробной партии из 100 штук 7-8 во время работы загрузчика MSP раскорячиваются в непонятном состоянии. Препарирую два таких экземпляра. В первом сменил контроллер - проблема исчезла. Во втором втавил в разрыв питания 1N4148 - проблема тоже исчезла. Подключил блок питания, нашел границу - MSP глючит при напряжении 3.45В и выше. Первый экземпляр (с перепаянным контроллером) работает без проблем даже при напряжении питания 4В. Проверить это дело под отладчиком не могу - "глюкалы" с уже прожженным фузом. Ориентировочно глюк возникает уже после стирания флэш - во время записи первого-второго 32 байтного блока данных. Загрузчик конечно "закудрявлен слегка". После стирания прикладной области во флэш, прием 32-байтных пакетов с 2.4 ГГц радиомодуля, повышение тактовой до 16 МГц, XTEA пакета, возврат тактовой к 1 МГц, прошивка 32 байт данных. Исключил, как возможную причину, броски напряжения (подключил в блоку питания). Вот кусок кода: XTEAdecode((unsigned long *)buff,32/4); // в функции тактовая частота повышается // до 16 МГц, при выходе возвращается к 1 МГц FCTL2 = 0x0A542; /* select MCLK/3 for flash timing = 1/3= 333 кГц*/ FCTL3 = 0x0A500; /* Lock = 0 */ for(cnt1=0;cnt1<32;cnt1++) { FCTL1 = 0x0A540; /* WRT = 1 */ *(ptrnum++)= buff[cnt1]; /* program Flash byte */ __no_operation(); } FCTL3 = 0x0A518; /* Lock = 1 */ Вроде все правильно. Каждый такой блок программируется через 10 мс. Вот и чешу репу... Как то не верится, что TI может накосячить...