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

 
 
> Вопрос по Си...
wasp
сообщение Apr 22 2008, 15:29
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 39
Регистрация: 2-09-07
Пользователь №: 30 237



Прошу прощения за глупый вопрос.
Пытаюсь разобраться с программой для РIС(пример передачи пакета данных для RF-модуля FSK-передатчика http://www.hoperf.com/pdf/RF02B.pdf ).
Сама программка находится здесь: http://www.hoperf.com/pdf/RF02_code.pdf стр. 11-16.
И там на стр. 15 вот такой фрагмент кода:


Не подскажите зачем там эти две строчки:
........
while (!nIRQ);
while (nIRQ);
.........

что бы это значило? 05.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
wasp
сообщение Apr 25 2008, 19:07
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 39
Регистрация: 2-09-07
Пользователь №: 30 237



в продолжение темы...
прошил и подключил PIC16F676, что был под рукой к передатчику RF02.
программа доходит как раз до этого места "while (!nIRQ);
while (nIRQ);"
и останавливается.
симулировал программку с пом. Протеус, если посадить на эту ногу генератор импульсов, все работает...
осциллографа под рукой нет, но видимо с RF02 не приходит этот самый пресловутый nIRQ.
в каком случае он должен генерироваться, в даташите не нашел.
да, в приведенной в даташите программе используется кварц на 10МГц, а у меня от внутреннего генератора - 4 МГц. Может от этого сбоит?

понимаю что вопрос типа "кто бы за меня разобрался?", но ничего в голову не лезет...
Go to the top of the page
 
+Quote Post
tazik
сообщение Apr 26 2008, 08:03
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 195
Регистрация: 13-05-07
Из: Норильск
Пользователь №: 27 691



Цитата(wasp @ Apr 26 2008, 03:07) *
в продолжение темы...
прошил и подключил PIC16F676, что был под рукой к передатчику RF02.
программа доходит как раз до этого места "while (!nIRQ);
while (nIRQ);"
и останавливается.
симулировал программку с пом. Протеус, если посадить на эту ногу генератор импульсов, все работает...
осциллографа под рукой нет, но видимо с RF02 не приходит этот самый пресловутый nIRQ.
в каком случае он должен генерироваться, в даташите не нашел.
да, в приведенной в даташите программе используется кварц на 10МГц, а у меня от внутреннего генератора - 4 МГц. Может от этого сбоит?

понимаю что вопрос типа "кто бы за меня разобрался?", но ничего в голову не лезет...


Сам не работал (.
Но судя по документации IRQn выдается при приеме очередного бита данных в том случае, если при конфигурации был установлен бит ebs. (В примере он устанавливается - RFXX_WRT_CMD(0xC220)).

Кстати, есть микросхема IA4222 - практически 1 в 1. Даже датащит совпадает
Go to the top of the page
 
+Quote Post
wasp
сообщение Apr 28 2008, 06:18
Сообщение #4


Участник
*

Группа: Новичок
Сообщений: 39
Регистрация: 2-09-07
Пользователь №: 30 237



Цитата(tazik @ Apr 26 2008, 12:03) *
Сам не работал (.
Но судя по документации IRQn выдается при приеме очередного бита данных в том случае, если при конфигурации был установлен бит ebs. (В примере он устанавливается - RFXX_WRT_CMD(0xC220)).

Кстати, есть микросхема IA4222 - практически 1 в 1. Даже датащит совпадает

tazik, спасибо за ответ.
Но не совсем понятно, если IRQn выдается при приеме очередного бита данных, то как пройдет самый первый бит?
В приведенном выше фрагменте программа останавливается и ждет первого импульса IRQn.

vank, как все налажу, вышлю.
Go to the top of the page
 
+Quote Post
tazik
сообщение Apr 28 2008, 17:20
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 195
Регистрация: 13-05-07
Из: Норильск
Пользователь №: 27 691



Цитата(wasp @ Apr 28 2008, 14:18) *
Но не совсем понятно, если IRQn выдается при приеме очередного бита данных, то как пройдет самый первый бит?


Микросхема так работает, что при передаче команд, синхронизация осуществляется от сигнала SCK контроллера. А при передаче данных - от IRQn передатчика (при установленном бите ebs).

Еще в RF02.pdf на странице 16 помимо диаграмм есть фраза: "Do not send CLK pulses with TX data bits, otherwise they will be interpreted as commands".

То есть при настройке передатчика импульса IRQ и не должно быть.

Цитата
в приведенной в даташите программе используется кварц на 10МГц, а у меня от внутреннего генератора - 4 МГц. Может от этого сбоит?


Скорее всего, Вы правы и дело именно в этом. Длительность лог. 1 IRQn равна 1,6 мкс. 4МГц + PIC - получаем, что одна команда на asm (например, считывание состояния ножки) выполняется за 1мкс. А здесь программа вообще на Си - трудно гарантировать надежную фиксацию импульса. Видимо, без осциллографа не обойтись. Можно еще попробовать команду чтения статуса 0xCC00, во втором байте передатчик будет передавать свое состояние по линии IRQn, а синхронизация его передачи будет происходить от линии CLK контроллера

Сообщение отредактировал tazik - Apr 28 2008, 18:18
Go to the top of the page
 
+Quote Post
wasp
сообщение Apr 28 2008, 18:38
Сообщение #6


Участник
*

Группа: Новичок
Сообщений: 39
Регистрация: 2-09-07
Пользователь №: 30 237



Цитата(tazik @ Apr 28 2008, 21:20) *
Микросхема так работает, что при передаче команд, синхронизация осуществляется от сигнала SCK контроллера. А при передаче данных - от IRQn передатчика (при установленном бите ebs).

Еще в RF02.pdf на странице 16 помимо диаграмм есть фраза: "Do not send CLK pulses with TX data bits, otherwise they will be interpreted as commands".

То есть при настройке передатчика импульса IRQ и не должно быть.
Скорее всего, Вы правы и дело именно в этом. Длительность лог. 1 IRQn равна 1,6 мкс. 4МГц + PIC - получаем, что одна команда на asm (например, считывание состояния ножки) выполняется за 1мкс. А здесь программа вообще на Си - трудно гарантировать надежную фиксацию импульса. Видимо, без осциллографа не обойтись. Можно еще попробовать команду чтения статуса 0xCC00, во втором байте передатчик будет передавать свое состояние по линии IRQn, а синхронизация его передачи будет происходить от линии CLK контроллера

Все верно 1.6 мкс при 4 МГц - нереально. Для начала надо попробовать с 10 Мгц, если не пойдет, тогда уже искать причину...

и еще раз вопрос по диаграмме.



из нее если я правильно понимаю, следует, что nIRQ включается при ebs=1, Ho после установки бита еа=1.
но какое отношение имеет этот бит к nIRQ - непонятно...
Power Management Command C000h:


Сообщение отредактировал wasp - Apr 28 2008, 18:41
Go to the top of the page
 
+Quote Post
tazik
сообщение Apr 28 2008, 18:57
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 195
Регистрация: 13-05-07
Из: Норильск
Пользователь №: 27 691



Цитата(wasp @ Apr 29 2008, 02:38) *
из нее если я правильно понимаю, следует, что nIRQ включается при ebs=1, Ho после установки бита еа=1.


Давайте, наверное, перепишем следующим образом:
... nIRQ включается при ebs=1, Ho после включения усилителя мощности (бит ea)

Действительно, если усилитель передатчика отключен, то какой смысл передавать данные. По крайней мере мне так кажется. 07.gif

Еще из описания не понятно, в каком случае работает передача по FSK, а в каком - по SDI. Вроде бы, никакого переключения не делается.

Может сделать ход конем? - Поступить грубо и извращенно, удлинив IRQn с помощью интегрирующей RC цепочки? Зависит от степени азарта и нетерпения smile.gif

Сообщение отредактировал tazik - Apr 28 2008, 19:15
Go to the top of the page
 
+Quote Post
wasp
сообщение Apr 28 2008, 19:19
Сообщение #8


Участник
*

Группа: Новичок
Сообщений: 39
Регистрация: 2-09-07
Пользователь №: 30 237



Цитата(tazik @ Apr 28 2008, 22:57) *
Давайте, наверное, перепишем следующим образом:
... nIRQ включается при ebs=1, Ho после включения усилителя мощности (бит ea)

Действительно, если усилитель передатчика отключен, то какой смысл передавать данные. По крайней мере мне так кажется. 07.gif

спасибо, немного прояснилось.
Цитата(tazik @ Apr 28 2008, 22:57) *
Может сделать ход конем? - Поступить грубо и извращенно, удлинив IRQn с помощью интегрирующей RC цепочки? Зависит от степени азарта и нетерпения smile.gif

нетерпение уже притупилось biggrin.gif
попробую с кварцем на 10 МГц - отпишусь smile.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- wasp   Вопрос по Си...   Apr 22 2008, 15:29
- - rezident   Видимо автор таким образом пытался импульс какой-т...   Apr 22 2008, 15:33
|- - wasp   Цитата(rezident @ Apr 22 2008, 19:33) Вид...   Apr 22 2008, 15:46
|- - tazik   Цитата(wasp @ Apr 22 2008, 23:46) спасибо...   Apr 22 2008, 16:02
|- - wasp   Цитата(tazik @ Apr 22 2008, 20:02) Синтак...   Apr 22 2008, 16:08
|- - 2b|!2b?..   Цитата(tazik @ Apr 22 2008, 20:02) Синтак...   Apr 28 2008, 07:12
- - arttab   а nIRQ должны быть объявлены как изменяемые из вне...   Apr 22 2008, 23:46
- - vank   Привет! И мне интересует этая програма. Я поку...   Apr 26 2008, 06:59
- - wasp   мда, до nIRQ, как выяснилось, дело не доходит. раз...   Apr 29 2008, 20:57
|- - Сергей Борщ   Цитата(wasp @ Apr 29 2008, 23:57) вот код...   Apr 29 2008, 23:33
|- - wasp   Цитата(Сергей Борщ @ Apr 30 2008, 03:33) ...   May 1 2008, 10:44
- - vank   Извините, на моя просба никто не можеть помочь?   Apr 30 2008, 04:47
|- - tazik   Цитата(vank @ Apr 30 2008, 12:47) Извинит...   May 1 2008, 09:25
|- - vank   Цитата(tazik @ May 1 2008, 13:25) А почем...   May 1 2008, 12:20
|- - tazik   Цитата(vank @ May 1 2008, 20:20) Но мне н...   May 1 2008, 12:24
- - wasp   поставил тип переменной CMD "unsigned long in...   May 1 2008, 16:04
|- - wasp   никак не получается инициализировать RFM02. по пре...   May 2 2008, 08:50
- - Different   Вот куски кода для модулей HopeRF с немецких сайто...   May 22 2008, 12:13
- - SashaGubov   а эти модули от 5 вольт можно питать?   Sep 12 2008, 10:45


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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 09:04
Рейтинг@Mail.ru


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