|
Помогите с CC1110!, Есть несколько вопросов. |
|
|
|
Sep 24 2009, 17:27
|
Группа: Участник
Сообщений: 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.
Всем заранее спасибо за помощь!
|
|
|
|
|
 |
Ответов
|
Sep 25 2009, 15:21
|
Группа: Участник
Сообщений: 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 МГц без всяких предделителей.
|
|
|
|
|
Sep 25 2009, 16:24
|

Гуру
     
Группа: Свой
Сообщений: 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 цикла. Итого: импульс за четыре цикла (такта). Что Вы хотели увидеть?
|
|
|
|
|
Sep 25 2009, 19:55
|
Группа: Участник
Сообщений: 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
|
|
|
|
|
Sep 26 2009, 07:49
|

Гуру
     
Группа: Свой
Сообщений: 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хЕС - как это сделано у Вас (старшие два разряда этого регистра - не для записи).
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|