Самодельный передатчик (часть 2)

RW9UAO

можно запитать мегу от 3,3 вольта, но использовать внешний кварцевый генератор. у меня, кста, проблем не было с набортным кварцевым генератором при 3,3 вольта питании. работали и 12 мгц и 16 мгц кварцы. кварцы, правда индастриал, и процы тоже =)

10 days later
Tigra74

По поводу прошивки для кодера с дисплеем RDX0154-GC
Дисплей купил - сделал под него печатную плату - попробовал изменить под него прошивку - так незнаю с чего начать
(Один маленький плюс -подсветка работает,и всё)

EagleB3
Tigra74:

попробовал изменить под него прошивку - так незнаю с чего начать

А каковы… Ээээ… Глубины незнания?

Я бы начинал так:

  1. в файле coder.c после инициализации MCU и до инициализации дисплея попищал бы бипером или подрыгал какой-нибудь ногой - чтобы убедиться в том, что камень вообще жив, адекватен и работает. А дальше бы не двигался вообще - поставил бы пустой while, скажем.
  2. в файле coder.c переставил вышеупомянутый пустой while (“затычку”) на “сразу после инициализации дисплея”, и в файле LCD_3320.c (?) курочил бы процедуру инициализации дисплея. При этом добавил бы прямо в нее вывод какого-нибудь символа, чтобы убедиться что дисплей жив, адекватен и работает.

Далее - по обстоятельствам.

Aleksey_Gorelikov

Э… Дим, судя по картинке сверху - интерфейс у дисплея И2С. И может курочить надо не лсд3320.с а аналогичную библиотеку для тик-а? 😃 Удивился, что ты не кинул парню ссылку на свой вариант и не тыкнул в пяток строчек по инициализации дисплея. К томуже ты и меню под большее расширение правил. 😃

Aleksey_Gorelikov

Похоже вся инициализация вот:

I2cstart 'rozpoczęcie transmisji
I2cwbyte &H78
I2cwbyte &HAF 'display ON
I2cwbyte &H81 ’ pot.
I2cwbyte &H60 'na pozycje 100
’ I2cwbyte &HA5 'set all pixel ON
’ I2cwbyte &H01 'column adres
’ I2cwbyte &H10 'column adres
I2cwbyte &HC4 'Lcd control
’ I2cwbyte &HB0 'page adres - numer rzędu
I2cstop

тут подробности www.elektroda.pl/rtvforum/topic1533158-0.html

Tigra74
Aleksey_Gorelikov:

Э… Дим, судя по картинке сверху - интерфейс у дисплея И2С. И может курочить надо не лсд3320.с а аналогичную библиотеку для тик-а? 😃 Удивился, что ты не кинул парню ссылку на свой вариант и не тыкнул в пяток строчек по инициализации дисплея. К томуже ты и меню под большее расширение правил. 😃

С сылками этими я ознакомлен-
щас проверяю схему подключения -
проц. рабочий - проверен на дисплее 3120 с соответствующей прошивкой
Вот рабочий ли дисплей -вот в чём вопрос
Наверное спаяю ещё одну плату кодера для экспериментов -поставлю кварц на 8 мГц и запитаю всю схему на 3.3 в -чтоб проверить дисплей -возможно у меня неправильная схема соединения дисплея(намудрил со стабилитронами и резисторами в цепях)
Вот некоторая информация по RDX0154GC
// для работы с I2C
void I2C_Open (void); // настройка MSSP модуля
void i2c_idle (void); // провекра на готовность I2C к работе
void i2c_stop (void); // формирование стоп
char i2c_start (char adres, char C_D, char R_W); // адрес устройства и управление младшими битами
char i2c_restart (char adres, char C_D, char R_W);
char i2c_write (char data); //запись байта
char i2c_read_ack (void); //чтение с подтвеждением
char i2c_read_noack (void); //чтение без подтеждения

// для работы с индикатором
void int_LCD (void); // инициализация
void clear_LCD (void); // очиска всего дисплея
void curcorG_LCD (char X,char Y); // установка курсора

// вывод строк
void String_LCD(const char *str,char inv,char width,char height,char X,char Y); // , char строка, ширина, высота, центрирование (22 символа в строке)
void Stringp_LCD(const char *str,char inv,char width,char height);

// вывод символа или числа
void symbol_LCD (int cod,char tip,char inv,char shi,char vis);

// бегущая строка
void ticker_LCD (const char *str,char start,char ends,char Y); //с ПЗУ
void tickerB_LCD (char dlinok,char start,char Y); // с озу

// для работы с индикатором графические приметивы
void point (int tip, int X, int Y); // точка
void line(int tip, int x0, int y0, int x1, int y1); // линия
void rectangle (int ugl, int tip,int zal,int tipzal, int x0, int y0, int x1, int y1);//прямоугольник
void strip (int ugl,int tip,int tipzal, int x0, int y0, int sh, int vs, char vol);// линейный индикатор

EagleB3
Aleksey_Gorelikov:

Удивился, что ты не кинул парню ссылку на свой вариант

Я почему-то подумал, что он мои исходники и взял… Ибо оно само напрашивается… Там и отличия какие-то смешные, кажется на один ряд и один (или два?) столбца.
Экран калибровки я вообще сделал с автоматическим расчетом координат по константам WidthS и HeightS. Хотел и все остальное так же сделать, но обломался.
Ограничился тем, что все (кажется, все…) координаты вынес в виде #define в модуль display.c.

Aleksey_Gorelikov

И может курочить надо не лсд3320.с а аналогичную библиотеку для тик-а?

А я LCD_init и LCD_refresh положил как раз в лсд3320, с условной компиляцией (#ifdef TIC_154).

Tigra74:

Наверное спаяю ещё одну плату кодера для экспериментов -поставлю кварц на 8 мГц и запитаю всю схему на 3.3 в

Хозяин-барин, но отлаживаться на Меге128… Шоб я так жил!
Отлаживать I2C можно на любом дешевом камне, хоть на тини. Ресурсов надо каплю, и ног интерфейсных всего 3 штуки…

Aleksey_Gorelikov
Tigra74:

Вот рабочий ли дисплей -вот в чём вопрос

Когда-то разбирался с дисплеем от ериксона а1018. Тогда и инфы по нему особо небыло, и протокол снифить у меня было не на чем. А горстка дисплеев была. Искал адрес дисплея перебором по шине и2с. Как дисплей нашелся - мигал светодиодом его адрес. Потом искал даташиты на похожие контроллеры с таким адресом. 😃 Все получилось, правда омрачалось тем, что на дисплее ничерта видно небыло. То-ли он генератора напряжения встроенного не имел, то-ли я так и не разобрался как его запустить… Ну в общем - подал напругу “из вне”. Генерил шим на мк и через удвоитель на диодах и кондюках питал драйвера дисплея. Шимом менял контраст. 😃 Вот с подобной засадой (генератор на драйвера) можно долго ковыряться с неизвестными дисплеями. Но тут проще – есть даташит.

Aleksey_Gorelikov

Я бы не переключал антены… Лучше внедрите в корпус по антене для каждого модуля и не парьтесь. Если с расчетом и изготовлением свч печатных плат у вас проблем нет, то можно сделать антенный коммутатор на базе какого-нибудь коммутатора из старых сотовых телефонов. Но мне кажется это лишний геморой. Шансов что что-то будет не так - достаточно. 2 антены - придадут передатчику стильный внешний вид, соседи будут восхищаться и завидовать!!! В сотовых антенные коммутаторы не славились особой надежностью в то время, когда я их чинил.

msv

Параллелить выходы передатчиков на одну антенну, даже при их поочередной работе, точно не стоит… В лучшем случае будет потеря вых. мощности. В остальном +1 Алексею. Качественный коммутатор можно слепить только при недюжем опыте с СВЧ-техникой…

Tigra74
EagleB3:

Я почему-то подумал, что он мои исходники и взял… Ибо оно само напрашивается… Там и отличия какие-то смешные, кажется на один ряд и один (или два?) столбца.
Экран калибровки я вообще сделал с автоматическим расчетом координат по константам WidthS и HeightS. Хотел и все остальное так же сделать, но обломался.
Ограничился тем, что все (кажется, все…) координаты вынес в виде #define в модуль display.c.

А я LCD_init и LCD_refresh положил как раз в лсд3320, с условной компиляцией (#ifdef TIC_154).

Хозяин-барин, но отлаживаться на Меге128… Шоб я так жил!
Отлаживать I2C можно на любом дешевом камне, хоть на тини. Ресурсов надо каплю, и ног интерфейсных всего 3 штуки…

Обратился за помощью программистов в своём городе:
помогли
дисплей рабочий.но схема подключения -только напрямую без огр.стабилитронов при напряжении 3.5 в и кварце 10 мГц

Aleksey_Gorelikov

Частота кварца тут не причем, а согласовать уровни - дело то вроде бы не хитрое. В крайнем случае - вам уже советовали 3.5 вольта питания и внешний тактовый генератор на 12мгц. Хотя, весьма часто меги на этой частоте и от 3.3 стабильно работают. Кстати, дисплей от нокий тоже штатно от 3 вольт работать должен, однако от 5 с ним ничего не случается. Может рискнуть? 😃 Вполне возможно придется подобрать коэф. для нужного контраста, но в остальном - скорее всего повезет.

EagleB3
Tigra74:

схема подключения -только напрямую без огр.стабилитронов при напряжении 3.5В и кварце 10 мГц

Не догоняю… Единственная проблема, КМК, может быть только в том, что Мега с питанием 5В не различает низкое/высокое при подтяжке SDA/SCL на 3,3В.
Но эта проблема должна проявиться только тогда, когда кто-то соберется читать Мегой данные от дисплея.
А частота вообще не у дел.

Попробуйте подтянуть SDA/SCL на 3,6В (но при этом не забудьте отключить внутреннюю подтяжку соответствующих ног в Меге!).
Если RDX0154 проектировал нормальный схемотехник, то и от подтяжки на 5В ничего сгореть не должно.

Ну и вот еще, на всякий случай: www.gaw.ru/html.cgi/txt/interface/iic/index.htm

EagleB3

Ребята! Кто-нибудь Eagle использует?

Есть архивный файл с проектом (преобразователь PPM RC -> USB, цимес в том, что собран на Mega88; выложен вот на этой странице). Объем архива - меньше 200 Kb. В этом архиве, в поддиректории circuit, лежит файл neRecv.sch

Может кто-нибудь сохранить эту схему в каком-нибудь более народном формате? BMP, JPG, GIF - что угодно!..

Tigra74
EagleB3:

Ребята! Кто-нибудь Eagle использует?

Есть архивный файл с проектом (преобразователь PPM RC -> USB, цимес в том, что собран на Mega88; выложен вот на этой странице). Объем архива - меньше 200 Kb. В этом архиве, в поддиректории circuit, лежит файл neRecv.sch

Может кто-нибудь сохранить эту схему в каком-нибудь более народном формате? BMP, JPG, GIF - что угодно!..

Так подойдёт?

13 days later
11 days later
Denn

Не по теме, но…
Для работы с SMD сделал такой прибор с использованием части этого проекта.
Вот!😁😁😁

Aleksey_Gorelikov

Схем этого прибора - вагон и маленькая тележка по всему интернету в любом поисковике. Собственно схема практически у всех одна. Реализаций - миллион (на атмелах, пиках, с частотомером, с генератором и т.д.) Собственно с програмной точки зрения интереса особого не прдеставляет, с аппаратной - это генератор с переключением эталонных L или C + внешняя измеряемая деталюшка. В некоторых разновидностях приборов есть дополнительный способ измерение больших C - зарядить через ключик и разрядить на эталонный резистор, замеряя время.

МаркАнтоний
Denn:

Не по теме, но…
Для работы с SMD сделал такой прибор с использованием части этого проекта.
Вот!😁😁😁

Денис, создавайте новую тему!!! А там уже будем обсуждать! Вопросов милион!!!

9 days later
Dimbo

Господа! У кого есть первая версия кодера от Focusa, поделитесь пожалуйста. Куда-то задевалась, не могу найти. Заранее благодарен.