Здравствуйте. Начал изучение нового для меня МК CC430F5137. 32 кГц подключен к Р5.0 и Р5.1. 26 МГц к радио модулю RF_IN и RF_OUT. Второй день бьюсь над настройкой тактирования МК и радио модуля. Если кто сталкивался с этими МК подскажите, что не так?
mov.b #0x02,&P5DIR ; Настраиваем порт 5 на ввод/вывод для генератора
mov.b #0x03,&P5SEL ; Подключаем генератор на Р5.0 и Р5.1 (альтернативная функция)
x1: mov.w #0x0000,&UCSCTL7 ; Сброс FAULT флагов
and.w #0xFFFD,&SFRIFG1 ; Обнуление глобального флага ошибки осцилляторов OFIFG
bit.w #0x002,&UCSCTL7 ; контроль флагa XT1LFOFFG
jnz x1 ; повтор если XT1LFOFFG=1
mov #0xFF,r15
call #delay ; Пауза (на всякий случай)
x2: mov.w #0x0000,&UCSCTL7 ; Сброс FAULT флагов
and.w #0xFFFD,&SFRIFG1 ; Обнуление глобального флага ошибки осцилляторов OFIFG
bit.w #0x0008,&UCSCTL7 ; контроль флага XT2OFFG
jnz x2 ; повтор если XT2OFFG=1
mov #0xFF,r15
call #delay ; Пауза (на всякий случай)
mov.w #0x0050,&UCSCTL4 ; MCLK и SMCLK
CC430F5137. Настройка тактирования
-
AlexandrRa
- Открыл глаза
- Сообщения: 75
- Зарегистрирован: Чт ноя 26, 2020 13:19:49
- Реклама
Re: CC430F5137. Настройка тактирования
Не нашел почему нужно переключать на альтернативную функцию P5. Как вариант
Код: Выделить всё
RESET:
DINT ; Disable interrupts
MOV #STACK,SP ; Initialize stackpointer
MOV #WDTPW+WDTHOLD,WDTCTL ; Stop WDT
WAIT_OSC:
CLR &UCSCTL7
MOV #00FFh,R15
WAIT_LOOP:
DEC R15
JNZ WAIT_LOOP
AND #000Eh,&UCSCTL7 ;выделить XT2OFFG, XT1HFOFFG, XT1LFOFFG
BIT #000Eh,&UCSCTL7 ;проверить
JNZ WAIT_OSC
;Установить нужное тактирование в UCSCTL4
-
AlexandrRa
- Открыл глаза
- Сообщения: 75
- Зарегистрирован: Чт ноя 26, 2020 13:19:49
Re: CC430F5137. Настройка тактирования
Спасибо! Запустил его от кварца 26МГц который на радио стоит. На 32 кГц запускаться не хочет почему-то... Теперь само радио не знаю как завести... Пока разбираюсь, но если кто знает, может подскажет как реализовать инициализацию радио?
Ниже привёл код запуска кварца.
Добавлено after 12 minutes 38 seconds:
Насчёт инициализации радио... Я так думаю, что я чего-то недонастроил в МК..
; Настройка радио приёмопередатчика
Добавлено after 8 hours 14 minutes 37 seconds:
Порыскал по сети, пишут через SPI нужно к радио модулю обращаться. Реально чтоль? И если да, то как?
Ниже привёл код запуска кварца.
Код: Выделить всё
x2:
mov.w #0x0000,&UCSCTL7 ; Сброс FAULT флагов
and.w #0xFFFD,&SFRIFG1 ; Обнуление глобального флага ошибки осцилляторов OFIFG
bit.w #0x0008,&UCSCTL7 ; контроль флага XT2OFFG
jnz x2 ; повтор если XT2OFFG=1
mov #0xFF,r15
call #delay ; Пауза (на всякий случай)
mov.w #0x0050,&UCSCTL4 ; MCLK и SMCLK
Насчёт инициализации радио... Я так думаю, что я чего-то недонастроил в МК..
; Настройка радио приёмопередатчика
Код: Выделить всё
mov.b #0xA5,&PMMCTL0_H ;
mov.b #PMMHPMRE_L,r15
call #or8
mov.b r14,&PMMCTL0_L
mov.b #0x00,&PMMCTL0_H ;
mov.b #0x0B,&IOCFG2 ; GDO2 Output Configuration
mov.b #0x2D,&IOCFG0 ; GDO0 Output Configuration
mov.b #0x47,&FIFOTHR ; RX FIFO and TX FIFO Thresholds
mov.b #0x12,&PKTCTRL0 ; Packet Automation Control
mov.b #0x08,&CHANNR ; Channel Number
mov.b #0x08,&FSCTRL1 ; Frequency Synthesizer Control
mov.b #0x10,&FREQ2 ; Frequency Control Word, High Byte
mov.b #0xB1,&FREQ1 ; Frequency Control Word, Middle Byte
mov.b #0x3B,&FREQ0 ; Frequency Control Word, Low Byte
mov.b #0xCA,&MDMCFG4 ; Modem Configuration
mov.b #0x83,&MDMCFG3 ; Modem Configuration
mov.b #0xB0,&MDMCFG2 ; Modem Configuration
mov.b #0x35,&DEVIATN ; Modem Deviation Setting
mov.b #0x10,&MCSM0 ; Main Radio Control State Machine Configuration
mov.b #0x16,&FOCCFG ; Frequency Offset Compensation Configuration
mov.b #0x43,&AGCCTRL2 ; AGC Control
mov.b #0xFB,&WORCTRL ; Wake On Radio Control
mov.b #0x11,&FREND0 ; Front End TX Configuration
mov.b #0xE9,&FSCAL3 ; Frequency Synthesizer Calibration
mov.b #0x2A,&FSCAL2 ; Frequency Synthesizer Calibration
mov.b #0x00,&FSCAL1 ; Frequency Synthesizer Calibration
mov.b #0x1F,&FSCAL0 ; Frequency Synthesizer Calibration
mov.b #0x81,&TEST2 ; Various Test Settings
mov.b #0x35,&TEST1 ; Various Test Settings
mov.b #0x09,&TEST0 ; Various Test Settings
Порыскал по сети, пишут через SPI нужно к радио модулю обращаться. Реально чтоль? И если да, то как?
