Jump to content

Search the Community

Showing results for tags 'msp'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Вопрос-Ответ. Для начинающих
    • Песочница (Q&A)
    • Дайте схему!
    • Школьникам и студентам
    • Начинающим
    • Паяльник TV
    • Обсуждение материалов с сайта
    • Competition 2019
  • Радиоэлектроника для профессионалов
    • Световые эффекты и LED
    • Роботы и модели на ДУ-управлении
    • Автоматика
    • Самодельные устройства к компьютеру
    • Программное обеспечение
    • Автомобильная электроника
    • Системы охраны и наблюдения. Личная безопасность
    • Питание
    • Электрика
    • Промышленная электроника
    • Ремонт
    • Металлоискатели
    • Измерительная техника
    • Мастерская радиолюбителя
    • Сотовая связь
    • Спутниковое ТВ
    • КВ и УКВ радиосвязь
    • Жучки
    • Телефония и фрикинг
    • Высокое напряжение
    • Идеи и технологии будущего
    • Справочная радиоэлементов
    • Литература
    • Разное
  • Аудио
    • FAQ, Технологии и компоненты
    • Для начинающих
    • Источники звука
    • Предусилители, темброблоки, фильтры
    • Питание аудио аппаратуры
    • Усилители мощности
    • Акустические системы
    • Авто-аудио
    • Ламповая техника
    • Гитарное оборудование
    • Прочее
  • Микроконтроллеры
  • Товары и услуги
  • Разное
  • Переделки's ATX->ЛБП
  • Переделки's разные темы
  • Киловольты юмора's Юмор в youtube
  • Радиолюбительская доска объявлений exDIY's Надежность и группы продавцов

Blogs

There are no results to display.

There are no results to display.

Marker Groups

  • Пользователи форума

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


ICQ


Skype


Интересы


Город


Сфера радиоэлектроники


Оборудование

Found 1 result

  1. Дорогие люди помогите с дипломом ! пишу про блокиратор LTE сети, используется микроконтроллер для синтеза аналоговых сигналов(Пилообразный и синус для шума) есть программа, сперта с texas instruments для MSP430, подойдет ли она на PIC16F628, т.к. видел что его чаще использовали для генераторов шума ( плюс в мсп 64 ноги - многовато ) ). Главный вопрос даже не в этом, мне необходимо получить эксперимент, а именно хотя бы спектры сигналов после микроконтроллера, какие программы использовать для запуска асс-рского кода и получения спектров? Вот программа для MSP430: NAME PWMDAC ;************************************************************************************ ; Программа реализации ЦАП на базе ШИМ ; Генерирует синусоиду частотой 250Гц с использованием ШИМ на базе таймера Timer_B. ; ; Описание: программа демонстрирует использование ШИМ-таймера совместно ; с внешними фильтрами для реализации ЦАП. Показан способ формирования ; синусоиды частотой 250Гц, пилообразного сигнала частотой 125Гц и ; сигнала с постоянным уровнем с использованием таймера Timer_B. ; Возможно аналогичное использование таймера Timer_A. В таблице sine table holds the ; хранятся отсчёты значений синусоиды. Для формирования «пилы» используется ; простой инкремент значения ШИМ. Постоянный уровень формируется зарядом ; конденсатора RC-цепи при помощи выхода ШИМ. Значение напряжения при этом ; прямо пропорционально коэффициенту заполнения сигнала ШИМ. После ; инициализации, ЦПУ переводится в режим пониженного энергопотребления LPM0. ; Он остаётся в этом режиме до прихода прерывания CCIFG0 от таймера Timer_B ; В подпрограмме обработки прерывания таймера Timer_B ISR в регистр CCR1 ; загружается следующее значение для синусоиды, значение «пилы» инкрементируется ; и загружается в регистр CCR2. По возвращении из прерывания ; ЦПУ снова переходит в режим пониженного энергопотребления LPM0. ;************************************************************************************ #include "MSP430X14x.H" ; Включить в проект файл со ; стандартными определениями Delta EQU 250 ; Delta = требуемая частота DCO/8192 ; Требуемая частота генератора DCO = 2.048МГц ; Это значение используется ; в программном стабилизаторе FLL ; для калибровки частоты генератора DCO ; с использованием кварцевого ; резонатора с частотой 32768Гц ; в качестве опорного. Более подробная ; информация по стабилизации частоты ; генератора DCO и программе ; стабилизатора FLL см. пример применения ; под названием «Управление частотой ; генератора с цифровым управлением (DCO) ; микроконтроллеров MSP430x11x» ; ( "Controlling the DCO frequency of the ; MSP430x11x" Literature number SLAA074) ;-------------------------------------------------------------------------------------- RSEG CODE ;-------------------------------------------------------------------------------------- Sine_Tab DW 255 ; Таблица синуса, отсчёты DW 254 ; десятичные значения DW 246 ; загружаемые в регистр TBCCR1 для изменения DW 234 ; коэффициента заполнения ШИМ. DW 219 ; Вместо байт требуется использовать слова DW 199 ; т.к. в регистры ТВ DW 177 ; требуется записывать слово целиком DW 153 ; Значение '0' использовать нельзя DW 128 ; иначе таймер будет глючить. DW 103 DW 79 DW 57 DW 37 DW 22 DW 10 DW 2 DW 1 DW 2 DW 10 DW 22 DW 37 DW 57 DW 79 DW 103 DW 128 DW 153 DW 177 DW 199 DW 219 DW 234 DW 246 DW 255 ;------------------------------ Здесь начинается программа ---------------------------- RESET mov #02FEh,SP ; Инициализация указателя стека StopWDT mov #WDTPW+WDTHOLD,&WDTCTL ; Остановить сторожевой таймер WDT SetupP4 bis.b #00Eh,&P4SEL ; Выбрать TB1, TB2 и TB3 вместо портов bis.b #00Eh,&P4DIR ; P4.x, и назначить их выходами SetupBC mov.b #0A6h,&BCSCTL1 ; ACLK делится на 4. RSEL=6, ; MCLK и SMCLK не делятся, ; источником MCLK и SMCLK является DCO ; генератор XT2 выключен. ; ПРИМЕЧАНИЕ: для определения значения ; Rsel для требуемой частоты DCO, ; обратитесь к таблице DCO в докуметнтации call #Delay ; Пауза для стабилизации кварца. ; Необходима из-за того, что ; кварцевый резонатор 32768Гц используется ; в качестве опорного для стабилизации частоты ; генератора DCO. Поэтому резонатор на 32768 ; должен быть стабильным. call #SW_FLL ; Вызов подпрограммы стабилизации ; частоты генератора DCO. call #TB_SETUP ; Инициализация таймера Timer_B ; для генерации сигналов ШИМ clr R15 ; R15 и R14 используются как указатели clr R14 ; на таблицу синусов и для хранения ; значения «пилы» после стабилизации DCO eint ; Разрешение прерываний bis #LPM0,SR ; «усыпить» ЦПУ. ; Завершение программы ; остаётся обработчик прерывания CCIFG0 ; где обновляются значения ШИМ ;-------------------------------------------------------------------------------------- Delay ; Программная пауза для стабилизации кварца ;-------------------------------------------------------------------------------------- mov #0004h,R15 L1 mov #0FFFFh,R14 ; ~ 1 секунда . L2 dec R14 ; jnz L2 ; dec R15 ; jnz L1 ; ret ; ; ;-------------------------------------------------------------------------------------- SW_FLL ; Подпрограмма стабилизации частоты DCO. ; Кварцевый генератор 32768Гц используется ; в качестве опорной частоты для стабилизации ; и подстройки генератора DCO до требуемой ; частоты 2.048МГц. Это требуется в устройствах ; где нужна фиксированная частота DCO и для ; тех моделей MSP430 где нет аппаратного ; модуля FLL. См. руководства пользователя ; MSP430x3xx и MSP430x1xx Family ; User's Guides (literature number SLAU012 и ; SLAU049 соответственно) по вопросам, ; касающимся системы тактирования MSP430 ; ; процедура основана на подсчёте тактов DCO ; за период ACLK (точнее, за 1/4 периода ACLK ; т.к. частота ACLK поделена на 4). Таймер ; Timer_A используется для подсчёта тактов DCO ; Полученное значение сравнивается с ; номинальным (Delta). Если число слишком ; большое, DCO декрементируется. Если число ; слишком маленькое, DCO инкрементируется. ; Далее сравнение повторяется. ; Процесс продолжается до тех пор, пока ; значения не сравняются. После этого ; DCO генерирует на требуемой частоте ; См. пример применения «Управление частотой ; генератора с цифровым управлением (DCO) ; микроконтроллеров MSP430x11x» ; ( "Controlling the DCO frequency of the ; MSP430x11x" Literature number SLAA074) по ; вопросам, связанным с управлением ; генератором DCO. ; ; Эта процедура вызывается только один раз ; в качестве примера, в реальных условиях ; её требуется выполнять периодически, чтобы ; быть уверенным, что генератор DCO ; остаётся откалиброванным. ;-------------------------------------------------------------------------------------- clr R15 ; Setup_TA mov #TASSEL1+TACLR,&TACTL ; Источник тактирования TA - SMCLK Setup_CC2 mov #CCIS0+CM0+CAP,&CCTL2 ; Определить CCR2,CAP,ACLK bis #MC1,&TACTL ; Запустить таймер timer_A ; в непрерывном режиме Test_DCO bit #CCIFG,&CCTL2 ; Проверка флага захвата jz Test_DCO ; bic #CCIFG,&CCTL2 ; Очистка флага захвата ; AdjDCO mov &CCR2,R14 ; В R14 число тактов SMCLK sub R15,R14 ; в R14 разница mov &CCR2,R15 ; В R15 число тактов SMCLK cmp #Delta,R14 ; Delta = SMCLK/(32768/4) jlo IncDCO ; jeq DoneFLL ; DecDCO dec.b &DCOCTL ; jmp Test_DCO ; IncDCO inc.b &DCOCTL ; jmp Test_DCO ; DoneFLL clr &CCTL2 ; очистить CCR2 clr &TACTL ; остановить таймер timer_A ret ; возврат из подпрограммы ;-------------------------------------------------------------------------------------- TB_SETUP ; Подпрограмма инициализации таймера ; Timer_B для генерации ШИМ ;-------------------------------------------------------------------------------------- mov #TBSSEL1+TBCLR,&TBCTL ; SMCLK –источник тактирования TB. mov #CCIE,&TBCCTL0 ; Перевести CCR0 в режим сравнения, ; разрешить прерывания от него mov #0FFh,&TBCCR0 ; Записать 255d в CCR0. Это соответствует ; периоду ШИМ-выходов в 256 отсчётов (8 бит). ; т.е. получаем 8-битный ЦАП. mov #02E0h,&TBCCTL1 ; Перевести CCRx в режим сравнения, запретить mov #02E0h,&TBCCTL2 ; прерывания, режим выхода '7' , т.е. mov #02E0h,&TBCCTL3 ; сброс/установка. Сигнал EQU0 устанавливает ; выход в «1», а EQU1 в «0». Установим ; условия сравнения для регистра как ; его равенство нулю mov #Sine_Tab,&TBCCR1 ; Загрузить первый отсчёт в CCR1 mov #01h,R14 ; Загрузить начальное значение «пилы» в R14. mov #0AAh,&TBCCR3 ; И значение для постоянного уровня ; которое соответствует ~ 2/3 Vcc т.к. ; #0AAh это примерно 2/3 от #0FFh. bis #MC0,&TBCTL ; Запустить таймер timer_B в режиме инкремента ret ;-------------------------------------------------------------------------------------- TB_ISR ; Подпрограмма обработки прерываний таймера ; Timer_B: изменяет значения в регистрах ; CCR1 и CCR2 для изменения коэффициента ; заполнения ШИМ для синусоиды и «пилы». ; Значение в CCR3 не изменяется для ; формирования постоянного уровня ;-------------------------------------------------------------------------------------- incd R15 ; Инкремент указателя в R15 to ; для следующего значения в таблице синуса ; Инкремент двойной, т.к. ; значения в таблице двухбайтовые and #03Fh,R15 ; Операция лог. «И» с числом 03Fh даёт ; счётчик по модулю 32 для указания на ; значения в таблице mov Sine_Tab(R15),&TBCCR1 ; Загрузить следующее значение синуса в CCR1 add #04h,R14 ; Инкрементировать значение «пилы» ; Изменение шага в R14 ; приведёт к изменению частоты «пилы» and #0FFh,R14 ; Исключим лишние биты mov R14,&TBCCR2 ; Загрузим новое значение пилы в CCR2 reti ; возврат, прерывания разрешены ;----------------------------------------------------------------------------------- COMMON INTVEC ; Вектора прерываний MSP430x14x ;----------------------------------------------------------------------------------- ORG TIMERB0_VECTOR DW TB_ISR ; Прерывание от CCIFG0 ORG RESET_VECTOR DW RESET ; POR, внеш. Reset, Watchdog END
×
×
  • Create New...