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

E.V.G.

Участник
  • Постов

    34
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о E.V.G.

  • Звание
    Участник
    Участник
  • День рождения 29.09.1971

Информация

  • Город
    Array

Посетители профиля

1 442 просмотра профиля
  1. Либо mot_num становится отрицательным из-за (RxMessage.ExtId & 0xFF) < BASE_MOTOR_ID, либо opcode не соответствует перечню команд в switch. Копайте в этом направлении.
  2. Зависание IAR 5.10 для MSP430

    Если после загрузки ОС Windows 7 - x64 запустить IAR 5.10 для MSP430, то он работает 3 - 5 минут, а затем виснет наглухо. В начале всё нормально. Через несколько минут происходит зависание в момент редактирования файла (нажал любую кнопку - повисло). После принудительного закрытия IAR и повторного запуска, виснет сразу после нажатия любой кнопки. Если запустить Windows в безопасном режиме, то всё работает нормально. Думаю, что работу IAR блокирует какая-то программа, которая запускается при старте ОС (антивирус например). Как устранить сбой в работе IAR? Может кто сталкивался с таким глюком?
  3. Работаю на IAR MSP430 5.10.1 и там тоже самое. Думал в новых версиях наконец-то сделают сохранение bookmark, но видимо не судьба. Пока пользуюсь тем, что перед выходом из программы оставляю на экране то место программы, которое отлаживал последним. Заметил, что программа сохраняет позицию на экране в каждом файле перед закрытием среды и при повторном открытии восстанавливает. Хоть какая то замена bookmark :(
  4. программатор MspFet

    У меня работает MSP-FETU430IF под Windows 7 - 64бит Professional.
  5. В компиляторе IAR есть такая функция - int __low_level_init(void). Посмотрите, похоже, это ваш случай.
  6. MSP430 P3IN

    Это - взятие адреса порта P3IN
  7. АЦП

    При опорном напряжении 1,5В и 12 битном АЦП на 1 разряд приходится 1,5/4096=366мкВ. Неужели вы думаете, что уровень пульсаций питающего напряжения или наводок на цепи измерения (как внутренние, так и внешние) в вашем изделии меньше этого значения? Уменьшить болтанку в младшем разряде можно также отключая работу процессора и другой внутренней перифирии мк перед началом измерения АЦП. Но я обычно делаю программный фильтр по типу "скользящее среднее".
  8. Похоже, что всё на рисунке 5-4 всё верно. Увеличивая делитель "Divider" или "N+1" мы уменьшаем "глубину цифровой ООС" для модуля "DCO+Modulator", и поэтому частота fdco повышается. Минимальная частота fdco = fdco/D при Divider= /1 и N+1=2, т.е. ACLK умножается на 2. В этом случае, как бит DCOPLUS не устанавливай, частота MCLK и SMLK не измениться и останется ACLK*2. Если повысить Divider до /2 при том же N+1=2, то "Frequency Integrator" повысит частоту "DCO+Modulator" и fdco из-за обратной связи возрастёт до ACLK*4, а частота fdco/D при этом не измениться и останется ACLK*2. Короче, частота fdco зависит от делителя "Divider" * "N+1", а частота fdco/D - только от делителя "N+1". Возможно, это надо для переключения тактирования внешних модулей между низкой и высокой частотой для экономии энергии, например.
  9. Посмотрел ещё раз файл с описанием мк и файл msp430f4152.h, который есть в IAR. Значение MCLK и SMCLK не может быть меньше ACLK*2, т.е. при ACLK=32768Гц - MCLK=SMCLK=65536Гц.
  10. Сам с этим мк не работал, другими этого типа - занимался. Посмотрел файлы с описанием вашего мк на http://www.ti.com/lit/ug/slau056l/slau056l.pdf и http://www.ti.com/lit/ds/symlink/msp430f4132.pdf. В первом файле, на стр. 5-7 есть рисунок Figure 5-4. MSP430x41x2 Frequency-Locked Loop. Видимо это модуль вашего мк. Судя по схеме, ACLK нельзя подать на выход SMCLK, а на MCLK - можно. Настроить же отдельно модули DC Generator и DCO+Modulator на генерацию собственной частоты на 32,768 кГц нельзя по причине минимальной устанавливаемой чатоты = 610кГц. В вашем варианте можно сделать так: вывести частоту ACLK наружу на вывод мк и перемычкой подать её на входы тех модулей, которые допускают внешнее тактирование.
  11. Можно принудительно положить в нужный сегмент Flash, например в INFOB #pragma memory = constseg(INFOB) // адреса 01000h - 0100Dh const long data[5] = { // E D C B A 1.5557, -62.5211, 949.3678, -6683.6216, 19308.8867 }; #pragma memory = default Или так, в нужную ячейку Flash: #pragma location = 0x1000 { const long data = 1.5557; } #pragma memory = default По конкретней читайте в справке, например в IAR'а.
  12. Считать с контроллера можно только файл для программирования, т.е. вы сможете, используя полученный файл, программировать другие контроллеры. Исходный текст программы на Си или ассемблере вы не получите. Если хорошо знать исходную структуру программы можно попытаться внести изменения в считанный файл, но это - сложно, требует и знаний и опыта.
  13. Попробуйте в настройках Linker -> Output -> Format -> поставить Debug information for C-Spy.
  14. Если не учитывать падение напряжения на открытом транзисторе, R=(Vсс-Vvd)/Iseg=(3.3V-2.0V)/0.004A=325Ом (примерно). Если учитывать - R=(Vсс-Vvd-Vvt)/Iseg (будет поточнее). Vvt - падение напряжения на открытом транзисторе при токе 0,032А (0,004А * 8сегментов). Резистор в цепи базы транзистора также желательно расчитать: R=(Vсс-Vбэ)/(Ivt/β)=(3.3V-0.75V)/(0.032А/50)=3984Ом (Vбэ - напряжение насыщения база-эмиттер транзистора, в расчёте указано типовое; β - коэффициент передачи транзистора, в расчёте указан типовой для этого тока). В этой схеме эмиттеры транзисторов подключены не к той цепи. Они должны быть подключены к Vcc (+Vпит), а не к Vss (-Vпит).
×
×
  • Создать...