Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Помогите с CC1110!
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > MCS51
dig_sd
Всем доброго времени суток!

Только начал работать с CC1110. Получается что-то делать на контроллере, но не могу решить несколько вопросов:

1) Не могу запустить передатчик. Прошиваю регистры, но реакции нет. Для обращения к радиорегистрам использую следующие команды:

MOV DPTR, #FREQ2 ;К примеру регистр FREQ2
MOV A, 0xEC
MOVX @DPTR, A

Далее через регистр RFST подаю команды на калибровку синтезатора и включение передатчика. Реакции никакой. Пробовал и синхронный, и асинхронный режим - не получается. Если кто-то может, вышлите файлик с работающим кодом. ТОЛЬКО в Ассемблере! Заранее спасибо!

dudnikov_s@mail.ru

2) В даташите написано, что у них на один цикл процедуры приходится один clock. Но реально смотрю по осцилографу - 4 такта.
Это они так обманывают, или я что-то неправильно делаю?
В регистре CLKCON выставляю clock на 26 МГц.

Пишу в IAR, прошиваю через чипконовский Flash Programmer, отладочная плата CC Development Kit 04.

Всем заранее спасибо за помощь!
Палыч
Цитата(dig_sd @ Sep 24 2009, 20:27) *
2) В даташите написано, что у них на один цикл процедуры приходится один clock. Но реально смотрю по осцилографу - 4 такта.
Это они так обманывают, или я что-то неправильно делаю?
Выполнение команды длится от одного до четырёх циклов (для каждой команды - своё количество). В классическом МК51: один цикл = 12 clock; в Вашем МК - цикл равен одному clock.
dig_sd
Цитата(Палыч @ Sep 25 2009, 12:04) *
Выполнение команды длится от одного до четырёх циклов (для каждой команды - своё количество). В классическом МК51: один цикл = 12 clock; в Вашем МК - цикл равен одному clock.


Правильно, так CC и пишет в своём даташите. Один цикл = 1 clock. Но реально получается больше. Тупо формирую на ноге меандр, выставляя и очищая бит (SETB и CLR). По таблице инструкций эти команды выполняются за 1 цикл. При этом осцилографом наблюдаю на один импульс 4 такта. Поэтому и не понимаю: то ли у меня где ошибка, то ли они лукавят про свою производительность. Напомню, что в регистре CLKCON прописываю clock 26 МГц без всяких предделителей.
Палыч
Цитата(dig_sd @ Sep 25 2009, 18:21) *
Тупо формирую на ноге меандр, выставляя и очищая бит (SETB и CLR). .... наблюдаю на один импульс 4 такта.
Привели бы прогу формирования импульса. Как я себе понимаю, минимальная программа генерации импульсов состоит из трёх команд:
Код
setb
clr
jmp на первую команду

Считаем: setb - 1 цикл; clr - 1 цикл; jmp - 2 цикла. Итого: импульс за четыре цикла (такта). Что Вы хотели увидеть?
dig_sd
Цитата(Палыч @ Sep 25 2009, 20:24) *
Привели бы прогу формирования импульса. Как я себе понимаю, минимальная программа генерации импульсов состоит из трёх команд:
Код
setb



clr



jmp на первую команду

Считаем: setb - 1 цикл; clr - 1 цикл; jmp - 2 цикла. Итого: импульс за четыре цикла (такта). Что Вы хотели увидеть?


Один цикл setb-clr-sjmp формирует 1 период меандра. С учётом команды sjmp получается меандр со скважностью 1/3:


.........................._____ ....................
Меандр:..............|........|_____:_____
Clock (кварц):....../\/\/\/\/\/\/\/\/\/\/\/\


Так вот, положительный импульс - это одна инструкция (один цикл). При этом смотрю на кварце клоки - на один импульс - 4 такта, итого один период меандра - 12 тактов. Теперь понятнее?
Палыч
Цитата(dig_sd @ Sep 25 2009, 22:55) *
Один цикл setb-clr-sjmp формирует 1 период меандра. С учётом команды sjmp получается меандр со скважностью 1/3
Так вот, положительный импульс - это одна инструкция (один цикл). При этом смотрю на кварце клоки - на один импульс - 4 такта, итого один период меандра - 12 тактов. Теперь понятнее?

Позабавило: "меандр со скважностью 1/3". Меандр - периодический примоугольный сигнал со скважностью 2. Скважность - отношение периода к длительности импульса, т.е. меньше единицы быть не может.
Теперь по делу. Мои ответы выше опирались на информацию о классических МК51. Не поленился и скачал DS на СС1110. В табличке 27 нахожу времена выполнения команд и выходит, что Ваш цикл генерации импульсов (setb-clr-sjmp) выполняется за 9 (3+3+3) тактов. При этом длительность импульса составит треть периода (скважность = 3). Думаю, что Ваше измерение периода в 12 тактов - ошибочно.

P.S. Да, кстати, из того же DS видно, что в регистр FREQ2 нельзя занести значение 0хЕС - как это сделано у Вас (старшие два разряда этого регистра - не для записи).
Dog Pawlowa
Цитата(dig_sd @ Sep 24 2009, 20:27) *
Это они так обманывают, или я что-то неправильно делаю?

Был на семинаре TI, Тексасовцы рекомендуют использовать в качестве прототипа проекта их примеры.
Видимо, не могут представить, что кто-то может взяться за разработку, не зная самого популярного в настоящее время ЯВУ. wink.gif
dig_sd
Цитата(Палыч @ Sep 26 2009, 11:49) *
Позабавило: "меандр со скважностью 1/3". Меандр - периодический примоугольный сигнал со скважностью 2. Скважность - отношение периода к длительности импульса, т.е. меньше единицы быть не может.
Теперь по делу. Мои ответы выше опирались на информацию о классических МК51. Не поленился и скачал DS на СС1110. В табличке 27 нахожу времена выполнения команд и выходит, что Ваш цикл генерации импульсов (setb-clr-sjmp) выполняется за 9 (3+3+3) тактов. При этом длительность импульса составит треть периода (скважность = 3). Думаю, что Ваше измерение периода в 12 тактов - ошибочно.

P.S. Да, кстати, из того же DS видно, что в регистр FREQ2 нельзя занести значение 0хЕС - как это сделано у Вас (старшие два разряда этого регистра - не для записи).


Про скважность - просто забыл что к чему относится - период к длительности или наоборот. smile.gif
На счёт 3+3+3 циклов вы правы - в даташите я смотрел другую строчку SETB C (carry flag).
Спасибо за поправку. С этим вопросом вроде разобрались.

Цитата(Dog Pawlowa @ Sep 26 2009, 21:20) *
Был на семинаре TI, Тексасовцы рекомендуют использовать в качестве прототипа проекта их примеры.
Видимо, не могут представить, что кто-то может взяться за разработку, не зная самого популярного в настоящее время ЯВУ. wink.gif


Перелазил весь сайт TI на тему CC1110. Кроме примеров изготовления антенн и отдельных pdf на тему кодирования и тому подобного ничего не нашёл. Может Вас не затруднит скинуть ссылку на их примеры?

Всё дело в том, что я запускал обычный CC1100 в связке с Atmel Atmega без проблем. А вот с CC1110 что-то не получается (я имею в виду радиочасть). Поэтому и обратился за помощью к людям с этого форума, которые работали конкретно с CC1110.
Dog Pawlowa
Цитата(dig_sd @ Sep 26 2009, 20:37) *
Может Вас не затруднит скинуть ссылку на их примеры?

К сожалению, мне даже не пришло в голову спросить, где же примеры - у нас сейчас перерыв в этом направлении, раньше работали на СС2510, проект был под ИАР.

Позвоните в СкантиРус и спросите, где примеры работы.
В ИАРе нет, логично предположить, что в новой ССстудио. Только это добро под Эклипс и загрузочка на 900 МБ sad.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.