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

rezident

Свой
  • Постов

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

  • Посещение

Весь контент rezident


  1. Да, увидел. Дык правильно. Потому, что 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. Посмотрев внимательно раздел Electical characterictics DCO в datasheet MSP430F4152 вынужден скорректировать свое сообщение: похоже, что нифига у вас не выйдет. :( Потому, что, судя по указанной таблице, генератор DCO не может генерировать частоту ниже 300кГц. А вывода для подключения внешнего резистора (RSEL) с помощью которого можно задавать ток для данного RC-генератора (как это было в некоторых старых моделях MSP430) у данного кристалла нет. Проверить, так ли это, можно установив описанный выше мной режим работы FLL и проанализировав через некоторое время после включения модулятора бит ошибки DCOF и значение модулятора. Если заданная частота достижима, то DCOF будет сброшен и в регистре модулятора будет ненулевое значение. Если же DCOF не сбрасывается и все биты DCOx и MODx в регистрах SCFI0 и SCFI1 равны нулю, то значит модулятор FLL "уперся" в нижнее значение и FLL синхронизироваться с опорной частотой 32768Гц не может.
  3. Задайте (с помощью битов 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

    Для того, чтобы флаги ошибок неиспользуемых генераторов не устанавливались эти генераторы нужно ВЫключить (установив биты 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. ИМХО у вас разрешено и возникает какое-то прерывание, для которого не определена функция его обработки. Поставьте "заглушки" типа for (;;); на все обработчики неиспользуемых векторов прерываний.
  7. "Подключить" означает "включить в исходник"? Или включить бинарный массив со шрифтами непосредственно в загружаемый файл? Если первое, то no problems - включайте в виде массива. Если второе, то в опциях проекта IAR есть дополнительная возможность загружать вместе в основной прошивкой кусочки дополнительных. См. Project->Options->Debugger->Images.
  8. MSP430F5528

    Насчет нумерации битов "Не верю!" (с)
  9. Это не глюк. Это фича :) Периферия в MSP430 работает независимо от ядра. Поэтому между двумя шагами в отладчике вы наблюдаете естественное изменение значения счетчика таймера, которому в принципе наплевать на вашу отладку с большой колокольни. Если хотите зафиксировать явное значение 0x0000 в TA1R, то разделите вашу команду на две. TA1CTL = TASSEL_2 | ID_3 | TACLR; TA1CTL |= MC_2; Первой командой устанавливается источник и частота тактирования таймера, а также сбрасывается значение TA1R. Второй командой выбирается режим счета и запускается счет. Кстати, изменять программно значение непосредственно TA1R при работающем таймере крайне или даже категорически не рекомендуется. Счетчик должен считать непрерывно в установленном режиме. Все манипуляции со считыванием значения TAxR и отсчетом временных интервалов можно делать через регистры сравнения TAxCCRx - они для этого и предназначены.
  10. MSP430F5528

    Нагрузочные конденсаторы в обвязке кварца имеются? Какой кварц и какие конденсаторы ставите? Свой код процедуры инициализации системы тактирования покажите. Часовой кварц на XT2 не работает и не должен работать. Допустимый диапазон частот для XT2: 4МГц...32МГц.
  11. WDT на MSP430F2012

    Как вариант. В процессе стирания кроме основной памяти вы стираете и область INFO, где хранятся калибровочные данные для DCO. Может эта частота где-то в вашей программе используется? Как вы проверяете частоту WDT? Для контроля частоты кварца выведите ACLK на пин P1.0 и проконтролируйте частоту.
  12. "Работало" вовсе не означает, что будет работать во всем диапазоне темперетур и напряжений питания. Цифры в даташите приведены с учетом гарантированной производителем рабочей частоты. Я потому так и написал: "согласно нее" (т.е. согласно формулы из даташита). Это конечно, так. Но исходный вопрос был про максимальную рабочую частоту SPI, а не про рабочую частоту ядра, необходимую, для "выгребания" потока данных на максимальной частоте SPI. ;)
  13. В 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. Понятно, что АЦП измеряет мгновенное значение. Но вы не уточнили, при сравнении/фиксации про какое именное значение напряжения идет речь: пиковое за период наблюдения или про среднеквадратичное?
  16. Аппаратное управление FLL регистра модулятора UCSCTL0 отключается установкой бита DISMOD в регистре UCSCTL1. При этом регистр модулятора DCO (UCSCTL0) будет управляться только программно. Только еще раз повторяю, что это вам не сильно поможет, если бы будете для модулятора использовать значения отличающиеся от MOD = 0x1F. Подстройка частоты генерации только с помощью DCORSEL (UCSCTL1) дает изменение частоты DCOCLK примерно вдвое. Подстройка с помощью битов DCO (UCSCTL0) изменяет частоту DCOCLK примерно на 10%. Если вас такая точность устроит, то пробуйте.
  17. Можно поставить внешний кварцевый генератор (осциллятор) и подать частоту с него на вход TAxCLK. Для целей энергосбережения нужно использовать осциллятор с входом выключения генератора. Причина не в частоте DCO, а принципе работы его модулятора. Модулятор работает пропуская/вставляя импульсы тактовой DCO. Отсюда и возникает джиттер, величина которого определяется длительностью вставленных/пропущенных тактовых импульсов DCO. См. раздел 5.2 UCS Operation в MSP430x5xx and MSP430x6xx Family User's Guide (Rev. M) Чтобы избежать джиттера нужно работать только на крайних значениях модулятора (max в регистре модулятора) DCO. Синхронизацию FLL от внешнего источника (32кГц) по этой же причине (изменение значения регистра модулятора DCO для/при синхронизации) использовать нельзя.
  18. Конечно плавает. Точнее в тактовой частоте присутствует большой джиттер. Связано это с особенностями функционированием DCO и FLL. Если хочется стабильности, то следует тактировать таймер от встроенного или внешнего кварцевого генератора напрямую, без использования FLL.
  19. Если позволяет драйвер вашей PCI I/O-card, то сообщить ему, чтобы эмулировал Legacy (старый) LPT с соответствующими адресами, назначить порту имя LPT1 и в настройках IAR выбирать Parallel Port 1. А по-хорошему надо бы уже давно на USB-FET переходить.
  20. Я же вам в сообщении выше и название и ссылку приводил - FET-Pro430 Lite Software
  21. Дык, а почему вы выбираете LPT-FET, а не USB-FET? Кстати, проверять его работу проще было бы в той же программе от Elprotronic. У IAR могут быть свои, дополнительные заморочки. К тому же, при необходимости обновления firmware USB-FET утилитой от Elprotronic это делать немного проще, чем в IAR.
  22. Можете скачать free-версию FET-Pro430 Lite Software от Elprotronic. В соcтав дистриба входят в т.ч. и драйверы для USB-FET.
  23. MSP-FET430UIF

    Это не сигналы JTAG. к JTAG они не имеют отношения. Такое расширение стандартного разъема JTAG под сигналы BSL используется в эмуляторах, совместимых с изделиями фирмы Elprotronic. Типа FlashPro430.
  24. Ошибочное утверждение (о том, что скорость нарастания фронта не важна)! На что неоднократно уже указали в предыдущих сообщениях топика. В спецификации I2C в таблице 10 на стр. 48 указаны совершенно конкретные временные параметры для скорости нарастания (которую обеспечивают как раз pull-up резисторы) сигналов линий SCL и SDA. Для Standard-mode I2C (до 100кГц) tr (rise time of both SDA and SCL signals) не должно превышать 1000 нс (1 мкс).
  25. Было бы неплохо более развернуто пояснить ваши выводы. Вы видимо упоминаете примечание на странице 329 MSP430x2xx Family User's Guide (Rev. J) ? Там сказано, что использование pullup/pulldown для некоторых портов MSP430F261x and MSP430F2416/7/8/9 не отключает управление выходным драйвером пина, если одновременно (с выбором pullup/pulldown) выбрана альтернативная функция пина. Чтобы понять в чем разница нужно сравнить схемотехнику P3.x у вашего MSP430F235 (стр. 72) и у MSP430F2416 (стр. 78). Как видно на блок-схеме у MSP430F235 установка Px.REN однозначно запрещает работу выходного буфера пина, в у MSP430F2416 в логике управления функицей буфера пина завязан еще и сигнал Px.SEL. Поэтому установка P3.REN для вашего MSP430F235 не позволяет использовать выходной буфер пина при выборе функции для работы с USCI.
×
×
  • Создать...