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

    

rezident

Свой
  • Публикаций

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

  • Посещение

Репутация

0 Обычный

Информация о rezident

  • Звание
    Гуру

Контакты

  • Сайт
    http://
  • ICQ
    0
  1. MSP430F4152 частоты MCLK SMCLK

    Цитата(Obam @ Sep 23 2015, 12:47) Всё бы хорошо, только N = 0 задавать нельзя; так прямо английским по-белому и написано в User's Guide. Да, увидел. Цитата(Obam @ Sep 23 2015, 12:47) N от балды задавать нельзя: fDCO должен укладываться в границы, определяемые битами FN_x. Дык правильно. Потому, что DC Generator (DCO) это генератор RC-типа. Битами FN задается эквивалент R, а точнее ток, которым заряжается C. Битами DCO задается величина емкости C (набором коммутируемых конденсаторов: 2^5=32 значения). Естественно, что без переключения величины R (только одними лишь конденсаторами) весь диапазон частот генератора перекрыть нельзя. Но битами DCO и MOD модулятор FLL может управлять автоматически (когда включена модуляция), а битами FN - нет. Поэтому коэффициент умножения, задаваемый N и D должен соответствовать диапазону выходных частот fDCO, который в свою очередь зависит от FN. Кстати, совсем не обязательно постоянно использовать модулятор FLL. Его можно включать периодически лишь для подстройки частоты fDCO. Зато при выключенном модуляторе частота будет меньше "болтаться". В кристаллах без FLL, имеющих лишь только DCO, программно-аппаратная (с помощью таймера) подстройка fDCO это вообще штатный hint. И все-таки хотелось бы узнать у топикстартера, зачем ему SMCLK именно 32768Гц?
  2. MSP430F4152 частоты MCLK SMCLK

    Цитата(rezident @ Sep 23 2015, 02:41) Задайте (с помощью битов FNx=0x00 задается самый нижний диапазон) частоту DC генератора fDCO=32768Гц*8. Делитель D для fDCO (с помощью битов FLLDx=0x3) выбираете 1/8. Предделитель для FLL =1 (N=0). Тогда на выходе DCO генерится fDCO=D*(N+1)*fLFXT=8*(0+1)*32768Гц. Соответственно после делителя fDCO/D=32768Гц*8/8=32768Гц. Выбрав правильные значения битов DCOPLUS и SELS, получаете на выходе SMCLK искомую частоту 32768Гц. Посмотрев внимательно раздел Electical characterictics DCO в datasheet MSP430F4152 вынужден скорректировать свое сообщение: похоже, что нифига у вас не выйдет. Потому, что, судя по указанной таблице, генератор DCO не может генерировать частоту ниже 300кГц. А вывода для подключения внешнего резистора (RSEL) с помощью которого можно задавать ток для данного RC-генератора (как это было в некоторых старых моделях MSP430) у данного кристалла нет. Проверить, так ли это, можно установив описанный выше мной режим работы FLL и проанализировав через некоторое время после включения модулятора бит ошибки DCOF и значение модулятора. Если заданная частота достижима, то DCOF будет сброшен и в регистре модулятора будет ненулевое значение. Если же DCOF не сбрасывается и все биты DCOx и MODx в регистрах SCFI0 и SCFI1 равны нулю, то значит модулятор FLL "уперся" в нижнее значение и FLL синхронизироваться с опорной частотой 32768Гц не может.
  3. MSP430F4152 частоты MCLK SMCLK

    Цитата(phenixs @ Sep 22 2015, 10:15) Полностью согласен, вопрос не этом. На рисунке 5-4 на странице 5-7 slau056l.pdf тактового модуля, получается что можно эту частоту пустить через предделитель и вывести через DCOPLUS, а в описании регистра и по факту частота нифига не делится а умножается, т.е. рисунок не бьется с описанием и фактом. Вот это совсем непонятно ...... Задайте (с помощью битов FNx=0x00 задается самый нижний диапазон) частоту DC генератора fDCO=32768Гц*8. Делитель D для fDCO (с помощью битов FLLDx=0x3) выбираете 1/8. Предделитель для FLL =1 (N=0). Тогда на выходе DCO генерится fDCO=D*(N+1)*fLFXT=8*(0+1)*32768Гц. Соответственно после делителя fDCO/D=32768Гц*8/8=32768Гц. Выбрав правильные значения битов DCOPLUS и SELS, получаете на выходе SMCLK искомую частоту 32768Гц. Вот только, убей бог, не пойму, зачем вам это нужно? Ведь полученная таким образом от FLL частота будет модулированной и довольно нестабильной по фазе. Потому, что интегратор FLL поддерживает заданным СРЕДНЕЕ значение частоты на интервале интегрирования (а интегратор FLL всего 10 бит). Если вам нужны точные и стабильные 32768Гц, то используйте ACLK. Благо и SMCLK и ACLK ко всей периферии подведены ЕМНИП.
  4. XT2 в MSP430F5

    Цитата(controller_m30 @ Apr 15 2015, 23:09) Правда флаги XT1OFFG и OFIFG я сбросить так и не смог - переключение FLLref на REFO тоже не помогло. И частота MCLK осталась 1 мГц. Но, задавшись целью сбросить их хоть как-то - удалось случайно запустить MCLK от XT2. Это получилось, когда в цикле опроса XT2OFFG была добавлена команда сброса глобального флага OFIFG. При таком условии, опрос флага XT2OFFG даёт искомый результат. Почему так - хз. От сбросов сами флаги XT1OFFG и OFIFG стоят в "1" как вкопанные, но постоянная запись в них "0" позволяет каким-то волшебным образом закончить инициализацию XT2. Для того, чтобы флаги ошибок неиспользуемых генераторов не устанавливались эти генераторы нужно ВЫключить (установив биты XT2OFF и/или XT1OFF в регистре UCSCTL6). Общий флаг ошибки нужно сбрасывать в любом слечае, но перед этим предварительно выключив неиспользуемые генераторы. DCO выключать не нужно, его нужно использовать. Я всегда рекомендую тактировать само ядро MPS430 именно от DCO (плюсы: DCO удобно и быстро включается/выключется, в широких пределах на/под-страивается его частота). А вот периферию можно тактировать от любого удобного для вас источника тактирования- хоть встроенного, хоть внешнего. В том и состоит прелесть системы тактирования MSP430, что она позволяет тактироваться ядру и периферии от разных (асинхронных) источников.
  5. ADC в MSP430F5528

    Вы не очень внимательно изучили раздел описания ADC12 из User's Manual. Перечитайте его еще раз, имея перед глазами картинку с блок-схемой АЦП на рисунке Figure 28-1. ADC12_A Block Diagram (Devices With REF Module). Особенно обратите внимание на содержание разделов, начиная с 28.2.5 Sample and Conversion Timing. Потому, что (имею основания так предполагать) вы не разобрались с самими режимами выборки и преобразования, со способами формирования сигнала выборки-преобразования и минимально необходимой длительностью этого сигнала.
  6. подвисает MSP430F5528

    ИМХО у вас разрешено и возникает какое-то прерывание, для которого не определена функция его обработки. Поставьте "заглушки" типа Кодfor (;;); на все обработчики неиспользуемых векторов прерываний.
  7. Шрифты в исходнике.

    "Подключить" означает "включить в исходник"? Или включить бинарный массив со шрифтами непосредственно в загружаемый файл? Если первое, то no problems - включайте в виде массива. Если второе, то в опциях проекта IAR есть дополнительная возможность загружать вместе в основной прошивкой кусочки дополнительных. См. Project->Options->Debugger->Images.
  8. MSP430F5528

    Цитата(JohnKorsh @ Jun 2 2014, 12:10) Нашёл. Ошибка в инициализации. В фирменном примере определение BITN считается с 1 (младший бит BIT1) а в хедере он считается с 0 (младший бит BIT0). Насчет нумерации битов "Не верю!" (с)
  9. Мусор в таймере G2553

    Цитата(thrush007 @ Jun 2 2014, 12:31) Да, так и было задумано. Проблема в том, что при выполнении команды TA1CTL = TASSEL_2 + MC_2 + ID_3 + TACLR значение счетного регистра скачком меняется с 0x0000 на 0x0855 или какое-то другое. Пробовал переносить код в CCS v5.5, CCS v6.0, IAR - везде глюк. Это не глюк. Это фича Периферия в MSP430 работает независимо от ядра. Поэтому между двумя шагами в отладчике вы наблюдаете естественное изменение значения счетчика таймера, которому в принципе наплевать на вашу отладку с большой колокольни. Если хотите зафиксировать явное значение 0x0000 в TA1R, то разделите вашу команду на две. КодTA1CTL = TASSEL_2 | ID_3 | TACLR; TA1CTL |= MC_2; Первой командой устанавливается источник и частота тактирования таймера, а также сбрасывается значение TA1R. Второй командой выбирается режим счета и запускается счет. Кстати, изменять программно значение непосредственно TA1R при работающем таймере крайне или даже категорически не рекомендуется. Счетчик должен считать непрерывно в установленном режиме. Все манипуляции со считыванием значения TAxR и отсчетом временных интервалов можно делать через регистры сравнения TAxCCRx - они для этого и предназначены.
  10. MSP430F5528

    Нагрузочные конденсаторы в обвязке кварца имеются? Какой кварц и какие конденсаторы ставите? Свой код процедуры инициализации системы тактирования покажите. Цитата(JohnKorsh @ May 26 2014, 18:52) XT2 на часовой - нет результата. Может, кто сталкивался? Часовой кварц на XT2 не работает и не должен работать. Допустимый диапазон частот для XT2: 4МГц...32МГц.
  11. WDT на MSP430F2012

    Цитата(113 @ May 26 2014, 18:31) После некоторого количества перепрошивок (отлаживаю), частота интервалов увеличивается в 8 раз. ~skip~ Что может быть причиной такого поведения? Как вариант. В процессе стирания кроме основной памяти вы стираете и область INFO, где хранятся калибровочные данные для DCO. Может эта частота где-то в вашей программе используется? Как вы проверяете частоту WDT? Для контроля частоты кварца выведите ACLK на пин P1.0 и проконтролируйте частоту.
  12. скорость передачи данных по SPI

    Цитата(_pv @ May 2 2014, 01:48) у msp430g2553 те же цифры в даташите, на 10МГц работало при 3.3В, причем даже с несколько кривыми клоками (отнюдь не 50% duty cycle). "Работало" вовсе не означает, что будет работать во всем диапазоне темперетур и напряжений питания. Цифры в даташите приведены с учетом гарантированной производителем рабочей частоты. Я потому так и написал: "согласно нее" (т.е. согласно формулы из даташита). Цитата(_pv @ May 2 2014, 01:48) другое дело что если частота MCLK будет 32кГц без FLL, то ему даже через DMA 2 такта надо на перекладывание байта в память, то есть получится только 128кГц для 32кГц. ну а без ДМА процессором так все 8-10 тактов будет. Это конечно, так. Но исходный вопрос был про максимальную рабочую частоту SPI, а не про рабочую частоту ядра, необходимую, для "выгребания" потока данных на максимальной частоте SPI.
  13. скорость передачи данных по SPI

    Цитата(Dubov @ Apr 30 2014, 21:30) Модель MSP430F47197. Подключен только кварц 32768Гц. SPI в режиме слейва Какова максимально достижимая передача данных(частота клока от мастера) В datasheet MSP430F47197 на стр.51 в примечаниях к таблице USCI (SPI slave mode) (see Note 1, Figure 23, and Figure 24) приведена формула для расчета. Согласно нее для питания 3В получается что-то около 3,33МГц, для 2,2В - около 2,27МГц.
  14. Во-первых, следует уточнить, о каком компиляторе идет речь? Еслт речь про IAR, то просто читайте документацию. Генерация контрольной суммы в IAR это функция линкера xlink. Так что вам следует открыть документ xlink.ENU.pdf и найти там раздел с описанием ключа -j который служит для включения опции generates a checksum при линковке.
  15. Задача на сравнение

    Цитата(d7d1cd @ Apr 21 2014, 12:18) Задача следующая: в течении заданного промежутка времени зафиксировать максимальное значение напряжения и определить, во сколько раз оно больше напряжения, зафиксированного в конце промежутка времени. Понятно, что АЦП измеряет мгновенное значение. Но вы не уточнили, при сравнении/фиксации про какое именное значение напряжения идет речь: пиковое за период наблюдения или про среднеквадратичное?