Карма: 1
Рейтинг сообщений: 3
Зарегистрирован: Пн мар 16, 2009 07:37:42 Сообщений: 126 Откуда: Новосибирск
Рейтинг сообщения:0
Да настроек много, но они все необходимы.
В вашем примере кстати всё очень прозрачно: инициализация - RF12_INIT(включаем модуль (передатчик или приёмник, синтезатор, осциллятор и т.д.), задаём ему несущую частоту, полосу, задаём скорость обмена по радиоканалу, синхрокод...)
передача: посылаются несколько байт 0xAA, для синхронизации, потом синхрокод 0x2DD4, после чего идут данные.
приём: например при инициализации задали что работаем через FIFO, при приёме заданного количества битов после синхрокода выставляется ноль на ножке nIRQ --> считываем данные из приёмника, послав последовательность 0xB000, при этом вернётся 0xXXDD, DD - данные. Можно не ждать ноля на ножке nIRQ, а считывать статус посылая на модуль пакет 0x0000, в статусе вообще много полезной информации (см. даташит), в том числе там же есть бит переполнения FIFO буфера (сбрасывается сразу после чтения статуса). Т.о. можно считывать данные после выставления этого бита.
Stepan, спасибо всё стало более понятно.
Ещё вот какие вопросы:
Цитата:
при приёме заданного количества битов после синхрокода выставляется ноль на ножке nIRQ --> считываем данные из приёмника
Если на nIRQ появляется 0 сразу после синхрокода, то как мы будем считывать данные, если они ещё не пришли? То есть, нужно ещё подождать пока наполнится буфер?
Что такое "Set FIFO interrupt level" в "FIFO and Reset Mode Command"?
И в каком даташите есть описание битов статуса? Я нашёл только две доки на модуль эту и эту, в последней только упоминается что существует такая команда "чтение статуса". Но нет описания.
Карма: 1
Рейтинг сообщений: 3
Зарегистрирован: Пн мар 16, 2009 07:37:42 Сообщений: 126 Откуда: Новосибирск
Рейтинг сообщения:0
Нет, nIRQ выставляется в ноль при приеме определённого количества битов пришедших после синхорокода, FIFO interrupt level это по-моему и есть это количество битов (по умолчанию = 8 ).
Даташит: http://www.hoperf.com/upfile/RF12.pdf
Зарегистрирован: Пт май 22, 2009 18:43:25 Сообщений: 24
Рейтинг сообщения:0
Передаю RFM02(rev3)+ATMEGA48, принимаю RFM12B(rev4)+ATMEGA644. Один вроде бы нормально передает пакет из 8 байт, второй как бы принимает эти 8 байт, но принимаются нули. Вроде бы и все настройки правильные (по крайней мере взял из рабочего примера Stepana).
Коды выкладываю, может одним глазком на досуге глянете?
Спасибо!
Зарегистрирован: Пт май 22, 2009 18:43:25 Сообщений: 24
Рейтинг сообщения:0
Все наладилось. Как всегда сам виноват - RFM12B подключена к PORTA, так же использую АЦП, так вот в настройках АЦП запретил цифровые выходы буферов порта, поэтому мой программный SPI вообще не работал. А RFMшка даже без настроек по приему 8 бит выставляла 0 на nIRQ. Такая интересная штука получилась. Пока не попробовал считать из статуса напрямую FFIT, ничего и не мог понять. Разрешил цифровые выходы буферов порта А - все сразу заработало.
Карма: 1
Рейтинг сообщений: 3
Зарегистрирован: Пн мар 16, 2009 07:37:42 Сообщений: 126 Откуда: Новосибирск
Рейтинг сообщения:0
Цитата:
Пробую подключить модуль RF02, на основе вашего исходника TermoOut сделал программу две кнопки включают нагрузку. Собрал на одной плате, работает от БП, от 3-х батареек (4,5В) не работает Решил собрать ещё один, собрал, не работает вообще, переставляю модули, и контроллеры не работает. У меня атини в корпусе DIP может фьюзы другие для него хотя по частоте то же самое, если по питанию BOD. Посмотрел вашу печатку в протеусе и схему, разводка не совпадает, 16 ножка атини висит в воздухе 17,18,19-? по схеме не так.6-я ножка модуля RF02 с 20 выводом атинт? Только питание и 1 ножка RF (DATA) и 9 вывод атини по схеме и печатке совпадает. Я правильно понял, что 1,4,5 ножку атини можно оставить в воздухе.
Плата уличного термометра выложена неверная, схема приведёная в статье правильная (хотя и при вёрстке перемещена почему-то в раздел Внешний терморегулятор). Ножку reset подтягивать считаю не обязательным, согласно даташиту она внутри подтянута к VCC резистором 30-60кОм. XTAL ножки также оставляю свободно висящими, так как используется внутренний генератор.
Незнаю почему у вас работает от блока и не работает от батареек, у меня схема ул. т-тра работает пока батарейки не сядут до 2,9 вольта. Попробуйте после подачи питания вручную временно закоротить reset на землю, мне иногда помогало...
Кстати недавние исследования выявили что в устройствах со спящим режимом лучше не включать BOD - он существенно повышает энергопотребление (о чем и говорится в даташите если приглядеться, с BOD tiny2313 потребляет 20 мкА а без него 0,5 мкА). BOD я включал только для защиты EEPROM от записи при пониженном напряжении питания. В уличном термодатчике EEPROM не используется поэтому BOD я не включаю (ставлю BODLEVEL = 111).
Давно наблюдаю за этим проектом, и честно говоря, меня несколько удивляет критика отдельных товарищей в сторону Автора. Критика, которая, на мой взгляд, выглядит неуместно, а по большому счету, нагло. Критика на предмет того что схема не доработана, прошивка кривая и т.д. Я понимаю, многим, особенно начинающим постигать азы радиоэлектроники, хочется найти, абсолютно, законченный проект. Единственное что сделать, это заказать детали, платы, и, немного попаяв, получить готовое оборудование, которое останется только прошить, не вложив в реализацию, ни сколько, собственного интеллекта, участия и времени. Причем оборудование не простое. Вспомним поговорку про бесплатный сыр. Автор выложил плоды своего ИНТЕЛЕКТУАЛЬНОГО труда, в абсолютно открытых исходниках. Это дорогого стоит. Единственное что остается, это заточить систему под свои нужды и потребности. Грош цена тому радиоэлектронщику, который не знает Закон Ома, не желает учиться, и не способен вычислить схематические баги. Грош цена тому программеру, который не изучает документацию, и единственное на что способен, это написать HELLO WORLD на basic без приставки .net. От себя и от тех людей, которые без критики, но с редкими вопросами к Автору, скажу – СПАСИБО. Stepan - Ты молодец. Ты многим дал толчок для движения, развития, в области радиоэлектроники. Тема автоматизации всегда была очень интересной. Ну а тема автоматизации дома…
а нельзя в пульт д.у прикрутить светодиод который будет показывать включилась нагрузка или выключилась по радиоканалу я в програмировании не силён но хочу попробовать собрать ваш проект только мне бы чтоб видеть отработку включения или отключения нагрузки заранее спасибо
Карма: 1
Рейтинг сообщений: 3
Зарегистрирован: Пн мар 16, 2009 07:37:42 Сообщений: 126 Откуда: Новосибирск
Рейтинг сообщения:0
mr_screw, ankar, спасибо! Очень приятно слышать что проект выполняет поставленную перед ним задачу - приносит пользу .
to vvvvvvvv, а что конкретно вы собираетесь повторить? просто без нормальных знаний ассемблера я повторять весь проект не рекомендую, так что думаю, вы хотите собрать пульт и розетки без настройки с ЦП, т.е. с готовыми EEPROM прошивками (где-то в этой ветке выкладывал такие). Вообще, я уже достаточно далеко ушёл от этого проекта и переписывать эти прошивки не хочу, поэтому могу предложить также выложить схему с прошивкам и EEPROM для нового пульта и розетки (пульт сделан на меге8 всё остальное в схемотехнике без изменений). В ближайшем будущем добавлю туда и мигание светодиодом при подтверждении что пакет дошёл до цели. Новую редакцию проекта я уже выкладывал в другой ветке, а здесь где-то ссылка была.
П.С.: Под нормальными знаниями ассеблера понимается умение прочитать программу, понять и вставить, где нужно, процедурку дрыганья ножкой.
На данном этапе собран пульт и внешний. С ассембдером ,благодаря Вашим комментам, потихоньку разбираюсь. Просто я его изучал для Z80.20 лет тому назад. А вот ссылку на другую ветку шось не бачил. Если можно повтори.
_________________ Профан Ной собрал ковчег, инженер собрал "Титаник"
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения