реклама на сайте
подробности

 
 
> Помогите с CC1110!, Есть несколько вопросов.
dig_sd
сообщение Sep 24 2009, 17:27
Сообщение #1





Группа: Участник
Сообщений: 4
Регистрация: 15-09-09
Пользователь №: 52 371



Всем доброго времени суток!

Только начал работать с 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.

Всем заранее спасибо за помощь!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Палыч
сообщение Sep 25 2009, 08:04
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(dig_sd @ Sep 24 2009, 20:27) *
2) В даташите написано, что у них на один цикл процедуры приходится один clock. Но реально смотрю по осцилографу - 4 такта.
Это они так обманывают, или я что-то неправильно делаю?
Выполнение команды длится от одного до четырёх циклов (для каждой команды - своё количество). В классическом МК51: один цикл = 12 clock; в Вашем МК - цикл равен одному clock.
Go to the top of the page
 
+Quote Post
dig_sd
сообщение Sep 25 2009, 15:21
Сообщение #3





Группа: Участник
Сообщений: 4
Регистрация: 15-09-09
Пользователь №: 52 371



Цитата(Палыч @ Sep 25 2009, 12:04) *
Выполнение команды длится от одного до четырёх циклов (для каждой команды - своё количество). В классическом МК51: один цикл = 12 clock; в Вашем МК - цикл равен одному clock.


Правильно, так CC и пишет в своём даташите. Один цикл = 1 clock. Но реально получается больше. Тупо формирую на ноге меандр, выставляя и очищая бит (SETB и CLR). По таблице инструкций эти команды выполняются за 1 цикл. При этом осцилографом наблюдаю на один импульс 4 такта. Поэтому и не понимаю: то ли у меня где ошибка, то ли они лукавят про свою производительность. Напомню, что в регистре CLKCON прописываю clock 26 МГц без всяких предделителей.
Go to the top of the page
 
+Quote Post
Палыч
сообщение Sep 25 2009, 16:24
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(dig_sd @ Sep 25 2009, 18:21) *
Тупо формирую на ноге меандр, выставляя и очищая бит (SETB и CLR). .... наблюдаю на один импульс 4 такта.
Привели бы прогу формирования импульса. Как я себе понимаю, минимальная программа генерации импульсов состоит из трёх команд:
Код
setb
clr
jmp на первую команду

Считаем: setb - 1 цикл; clr - 1 цикл; jmp - 2 цикла. Итого: импульс за четыре цикла (такта). Что Вы хотели увидеть?
Go to the top of the page
 
+Quote Post
dig_sd
сообщение Sep 25 2009, 19:55
Сообщение #5





Группа: Участник
Сообщений: 4
Регистрация: 15-09-09
Пользователь №: 52 371



Цитата(Палыч @ 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, 20:12
Go to the top of the page
 
+Quote Post
Палыч
сообщение Sep 26 2009, 07:49
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(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хЕС - как это сделано у Вас (старшие два разряда этого регистра - не для записи).
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 01:51
Рейтинг@Mail.ru


Страница сгенерированна за 0.01408 секунд с 7
ELECTRONIX ©2004-2016