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

jonison

все правильно ето на 3410
прошивай должон работать

Aviator73

Коллеги, ткните носом, где можно посмотреть методику настройки ВЧ-модуля, который в этом топике выложен. А то при внедрении кодера внутрь своего Flash-4 случайно коротнул ламели батарейного отсека на ВЧ-часть платы. Вышедшие из строя транзисторы заменил, вроде работает, но сильно греется выходной транзистор ( у меня спиральная антенна, настраивал по Глайдеру).
Пока внутрь не лазил не знал, что транзистор греется - передатчик работал отлично. Может он и раньше грелся, а может после расстройства катушек начал.

Интересует настройка предвыходного каскада и П-фильтра выходного каскада.
Из инструментов есть тестер, осциллограф. Радиолюбительский опыт большой, только с ВЧ-техникой дел до сих пор не имел.

Буду рад любой помощи.
Спасибо!

EagleB3

Я сейчас пытаюсь пристроить к кодеру дисплей TIC154. За основу взял исходники от MSV.

Такое ощущение, что функция displ_head из модуля displ.c работает как-то криво. Вывод строки начинается слишком близко к середине - видимо, некорректное значение возвращает функция LCD_get_char_len из модуля LCD_3320.c.

А знаний не хватает. Не понимаю, как определяется ширина символа через font_norm[ch-32][0].

Расскажите, плиз…

VRV
EagleB3:

Я сейчас пытаюсь пристроить к кодеру дисплей TIC154. За основу взял исходники от MSV.

Такое ощущение, что функция displ_head из модуля displ.c работает как-то криво. Вывод строки начинается слишком близко к середине - видимо, некорректное значение возвращает функция LCD_get_char_len из модуля LCD_3320.c.

А знаний не хватает. Не понимаю, как определяется ширина символа через font_norm[ch-32][0].

Расскажите, плиз…

точно не помню, но в двух словах: тот шрифт что используется имеет разную ширину символов в точках. Ширина указана в 0 злементе массива шрифта. Для вычисления длинны слова в точках берем кол-во символов умноженное на соотв значение длинны каждой буквы шрифта.

СЕРЖЖ

Прошил проц прошивкой которая выше Coder3410(1.8).
Огромное спасибо – работает, но только все равно изображение не на весь экран.
Мелковато как-то.
Можно исправить этот недостаток???
Заранее благодарен.

EagleB3
VRV:

Ширина указана в 0 злементе массива шрифта.

Понятно! Да, у шрифта font_norm описание символа = 9 байт, и в нем да, 0-й элемент сильно похож на ширину.

Но я включил у себя шрифт “font8x8”, а у него описание символа занимает почему-то всего 8 байт. И нулевой элемент на ширину совсем не похож.

И фиг с ним! Не больно-то оно и нужно, это центрирование…

msv

где можно посмотреть методику настройки ВЧ-модуля

Уже отвечал, повторю свое ИМХО: слегка подстроить (выжать максимум) можно по индикатору поля или даже по макс. гулу в комп. колонках (мультипликативная помеха). Серьезно настроить/согласовать АФУ без КСВ-метра (а лучше + антеноскопа) невозможно никакими “народными” средствами. Тем более сильно укороченную антенну… Тем более с суррогатным противовесом…
2EagleB3 displ_head выводит заголовок по центру экрана. Левая координата считается как (width_screen/2)-(width_string/2). Меняйте width_screen и все должно быть ок. font8x8 -рудимент от первых версий. Для его использования необходимо менять функцию LCD_char.
2Серж ждите, может кто-нибудь поправит код для экрана с вашим разрешением. Для моей проги это непростая задачка… 😦 а для полноценного использования большего разрешения вообще полкода прийдется переписывать…
У VRV вроде бы как раз под 3410.

EagleB3
msv:

font8x8 -рудимент от первых версий

На большом дисплее выглядит очень приятно!

msv:

Для его использования необходимо менять функцию LCD_char

Я в ней (и вообще повсюду) поставил условную компиляцию на применяемый шрифт, а цикл не трогал. Все работает. Но я еще до меню не добрался. 😌

Aviator73
msv:

Уже отвечал, повторю свое ИМХО: слегка подстроить (выжать максимум) можно по индикатору поля или даже по макс. гулу в комп. колонках (мультипликативная помеха). Серьезно настроить/согласовать АФУ без КСВ-метра (а лучше + антеноскопа) невозможно никакими “народными” средствами.

Спасибо, я так и сделал. Пользовался индикатором тока антенны. Но не могу понять одну вещь - при вращении сердечников катушек можно найти такое их положение, что индикатор зашкаливает, а ток, потребляемый ВЧ-модулем достигает 2.5А. Т.е. чем больше сигнал в антенне, тем больше потребляемый ток.
Но ведь заводские модули потребляют 160-180 мА. О чем это говорит?

dmitryu

Когда индикатор зашкалил - значит, усилитель самовозбудился и гонит на выход одни помехи (т.е. не ту частоту).

msv

О чем это говорит?

Возбуд тоже возможен. Но и без него индикатор тока (ненаправленный) показывает и прямую волну и отраженку, поэтому его показания не являются прямым свидетельством излучаемой мощности. Я настраивал Пи-контур на эквивалент антены (чисто активное сопротивление) по макс напряжению, а потом только удлинняющей катушкой и длиной антены добивался лучшего КСВ. Точнее компромиса, тк. КСВ очень сильно зависел и от того насколько плотно обхвачу руками и прижму к пузу пульт. Кстати еще показания в поле весьма отличаются от показаний на сухом полу, дома. Вам как мин. надо собрать простейший индикатор поля.
2 EagleB3 Тогда и в LCD_get_char_len можно условной компиляцией поставить return 8; Мда, у меня была проблема как впихнуть все необходимое в мелкий экран. А у Вас будет сложность как максимально эффективно использовать такое замечательное разрешение… 😃

EagleB3
msv:

Тогда и в LCD_get_char_len можно условной компиляцией поставить return 8;

То есть, шрифт 8x8 моноширинный? Не пропорциональный?

… Главное, чтобы в меню словам не тесно было.

Сейчас пытаюсь прикодить джойстик от SonyEricsson для навигации по меню.

Aviator73
msv:

Я настраивал Пи-контур на эквивалент антены (чисто активное сопротивление) по макс напряжению, а потом только удлинняющей катушкой и длиной антены добивался лучшего КСВ.

Подскажите пожалуйста номинал резистора в качестве эквивалента и где смотреть напряжение? Полагаю, что резистор 50 Ом, а напряжение смотреть на выходе П-фильтра?
Пробовал делать индикатора поля, но все равно никак не могу настроить.
Дело в том, что максимальные показания индикатора соответствуют почти 4А потребляемого тока! Хотя нагрев выходного транзистора на ощупь одинаков и при 150 мА и при 4А. Если П-контур влияет на согласование выходного каскада с антенной, то по каким критериям настраивать предвыходной каскад - по максимальному напряжению на коллекторе? Или вольтметр своей входной емкостью на позволить точно настроить каскад?
Спасибо!

Nick_Shl
VRV:

Если данная ветка позволяет-было бы интересно ознакомится.

Значит выложим отдельной темой. Будет полезно всем. Картинок уже наделал, вечером попробую описать и выложить.

VRV:

Ну пожалуй от мк и не стоит требовать возможностей АРМ и х86 архитектур- задачи у них разные. А по сему обектное програмирование реализуется в мк в урезанном виде.

Вообще-то МК и архитектура никак не связана. Есть МК с АРМ внутри. Если переформулировать более научно, то мне не нравится гарвардская архитектура применяемая в АВР, хочу архитектуру Фон Неймана.

VRV:

Наверное повторюсь, но всеже- главной задачей данного проекта (иначе проще купить готовую апу) считаю возможность изменения функциональность (добавить/убрать функции) в зависимости от предпочтений пользователя.

Я тоже так считаю.

Aleksey_Gorelikov:

В таком случае лучше использовать АЦП в диф. режиме.

Про АЦП в диф режиме я уже писал - отстой. Подключается внутренний ОУ - а он шумит. Лучше Aref зарезать, чем использовать диф режим.

EagleB3:

Кажется, нашел я причины фигни с ногой !PEN

И что вы нашли? Это же есть в даташите. Вот только вы понимаете смысл сказанного? Смысл следующий: если программатор не может гарантировать что SCK = 0 при подаче питания на МК, то он должен его сбросить - “отпустить” сброс на время не менее 2-х тактов - МК начнёт инициализироваться, а затем опять его ввести в состояние сброса. Так же можно вместо сброса использовать этот самый !PEN, но тогда SCK всегда должно быть равно 0 на момент подачи питания на МК.
Я бы сказал что у вас проблемы с выводом сброса - при программировании он должен быть на земле. Попробуйте перемычку на сброс вместо !PEN надеть и потом зашить.

msv:

Выложите свою версию с исходниками, и заинтересованных прибавится…

Не прибавится. Проверено - что Фокус выкладывал, что вы… Программистов тут мало. А ещё меньше тех, кому это надо. А теперь псмотрите в свой код, в код Фокуса, в код VRV - сможет в нём разобраться человек не знающий Си, но желающий его выучить, что-бы что-нибудь подправить? Сомневаюсь.
Посмотрите на мой код - что по меню, что для приёмника - форматирование везде одинаковое, откомментирована почти каждая сторока - думаете это мне надо? Я и сам могу разобраться в своём коде. Это нужно для новичков, которые ничего не умеют, но очень хотят. Иначе их желание очень быстро закончится…

msv:

Свое мнение о нецелесообразности коллективного развития столь несложножной поделки, уже неоднократно высказывал. Прийдется подстраиваться к чужим идеям, структурам, интерфейсам, стилю итп. А это требует серьезного менеджмента и займет больше времени, чем все еще раз под себя переписать.

А моё мнение как раз наоборот. Подстройка она уж не так сложна. Под интерфейсы не подстраиваться нужно - их нужно обсуждать, решать, а только потом реализовывать.
Менеджмент много бы не занял(особенно с системой контроля версий) - больше бы заняло обсуждение что и как сделать, а от этого качество только повысилось бы.

msv:

Вот когда перейдем на ARM, начнем писать операционку для него, ну и дальше интерпретатор жавы, мр3-кодер, блюпуп с тачхрином приворачивать, тогда да… в одиночку сложновато справится будет… 😃

Это ничего не изменит - если нет умения вести командно мелкий проект, то крупный не получится тем более.

msv:

у меня была проблема как впихнуть все необходимое в мелкий экран

А у меня была проблема с подсчётом длинны строки в пикселях, поэтому у меня все шрифты моноширинные. Собственно “проблема” это громко сказано, просто решил не грузить МК ещё подпрограммой вычисления длинны строки в пикселях. Хотя, возможно, как-нибудь и реализую…

EagleB3
Nick_Shl:

Так же можно вместо сброса использовать этот самый !PEN

Это будет не совсем то же, насколько я понимаю. Если для входа в режим программирования использовать !PEN, тогда необходимо будет делать горячий перезапуск для выхода из режима программирования.

Проблема у меня была чисто железная (непропай на какой-то из ног XTAL1/XTAL2 или земли рядом с ними); с внешним кварцем камень запускался, но в каком-то чудовищно замедленном темпе - с запуском в тестовый цикл на моргание диодом то ли вообще без задержек, то ли с двумя задержками по 1uS.

😒 Сначала секунд за 35…45 происходила инициализация (обычная от CVAVR), а потом диод моргал с частотой хорошо заметной глазу - герца этак 2…4.

VRV
EagleB3:

Понятно! Да, у шрифта font_norm описание символа = 9 байт, и в нем да, 0-й элемент сильно похож на ширину.

Но я включил у себя шрифт “font8x8”, а у него описание символа занимает почему-то всего 8 байт. И нулевой элемент на ширину совсем не похож.

И фиг с ним! Не больно-то оно и нужно, это центрирование…


 k=strlenf(нечто из флеша)*8;

где к =ширина в точках

Не прибавится. Проверено - что Фокус выкладывал, что вы… Программистов тут мало. А ещё меньше тех, кому это надо. А теперь псмотрите в свой код, в код Фокуса, в код VRV - сможет в нём разобраться человек не знающий Си, но желающий его выучить, что-бы что-нибудь подправить? Сомневаюсь.
Посмотрите на мой код - что по меню, что для приёмника - форматирование везде одинаковое, откомментирована почти каждая сторока - думаете это мне надо? Я и сам могу разобраться в своём коде. Это нужно для новичков, которые ничего не умеют, но очень хотят. Иначе их желание очень быстро закончится…

Человеку, желающему выучит с не стоит пытатся это сделать на примере данного проекта- слишком много кода и особенностей(для этого есть сайт 123авр).
Скажу по себе- спустя месяц даже свой комментированный проект требует времени чтобы вспомнить что к чему.
Хотя коментарии- в определенной степени показатель культуры програмирования😁
Свой проект выкладывал для желающих и умеющих программировать, но не доконца разобравшихся в предидущих версиях:( ( особенности постами выше)

ЗЫ: а кто работал с AT90PWM3B, а еще лучше в связке с IRAMS??? есть такие?

EagleB3

А почему компилятор CVAVR (v.2.03.4) впадает в истерику от вроде бы безобидной команды
if (!(PING.0)) {};? Меняю букву “G” на “D” и тогда все нормально компилируется. 😵

У меня линия “Enter” из разъема на PG0 заведена. И вот такой неожиданный облом…

Nick_Shl
VRV:

Человеку, желающему выучит с не стоит пытатся это сделать на примере данного проекта.

Если читать внимательно тему, то заметите, что есть не те кто просто хочет выучить Си, а те кто хочет выучить его ради этого проекта. И всё моё вышесказанное относилось именно к этим случаям.

EagleB3:

А почему компилятор CVAVR (v.2.03.4) впадает в истерику от вроде бы безобидной команды if (!(PING.0)) {};? Меняю букву “G” на “D” и тогда все нормально компилируется. 😵

Скоро посылать в даташит начну большими буквами. Это связано с тем, что выражение вида PINx.Y означает использовать инструкции CBI, SBI и подобные. Смотрим в даташите карту памяти и видим, что PORTG за пределом доступности этими функциями. То есть побитовая адресация порта G не доступна. Только доступ целиком.

EagleB3:

У меня линия “Enter” из разъема на PG0 заведена. И вот такой неожиданный облом…

Как быть?
А вот так:

#define IsBitSet(x,y) (x&(1 << y))

if( !(IsBitSet(PING, 0)) )
msv

Порт G наверное не поддерживает побитовых операций. Можно if(!(PING & 1)) {}.
о… уже опередили…
2 Teapot сомневаюсь что транзистор выдежит 4A… Может наводки на амперметр?

Под интерфейсы не подстраиваться нужно - их нужно обсуждать, решать, а только потом реализовывать.

Думаю без менедмента весь проект останется на стадии обсуждения интерфейсов и до реализации дело не дойдет… 😃
… Много букв еще написал, но прочитав, все безжалостно стер…