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

Tigra74

На одном сайте видел пример универсальной прошивки устройства под разные дисплеи

#include “hardware.h”

#include “display.h”
#include <stdint.h>

#if WITHDISPLAYDISABLE
static uint_fast8_t display_disabled;
#endif

void display_initialize(void)
{
#if LCDMODE_HD44780
hd44780_initialize();
#elif LCDMODE_UC1601
uc1601s_initialize();
#elif LCDMODE_LS020
ls020_initialize();
#elif LCDMODE_PCF8535
uc1601s_initialize();
#elif LCDMODE_S1D13781
s1d13781_initialize();
#elif LCDMODE_ILI9320
ili9320_initialize();
#endif /* LCDMODE_ILI9320 */
}

void display_set_contrast(uint_fast8_t v)
{
#if WITHDISPLAYDISABLE
if (display_disabled != 0)
return;
#endif
#if LCDMODE_UC1601
uc1601s_set_contrast(v);
#elif LCDMODE_LS020
ls020_set_contrast(v);
#elif LCDMODE_PCF8535
uc1601s_set_contrast(v);
#endif /* LCDMODE_PCF8535 */

Реально сделать подобное для этого кодера?

EagleB3

В “стандарте” так оно и сделано (примерно). Но насколько глубоко и корректно - не скажу.
См. файл LCD_3320.c :

// Driver for LCD Nokia 3320 (NXP PCF8511).
#define NOK_3310
//------------------------------------------------
#include <mega128.h>
#include <spi.h>
#include <delay.h>
#include <stdio.h>
#include <LCD_3320.h>

unsigned char buff[6][84];
unsigned char posx, posy;

//------------------------------------------------------
#ifdef NOK_3310
#define LCD_RESET PORTC.4
#define LCD_DC PORTC.5
//------------------------------------------------------

Я использовал TIC, сделал в том же духе:

//----------------------------------------------------------------------------------------------------
// TIC_154
// Driver for LCD TIC154 (NXP PCF8535).
// Использование драйвера включается в модуле Display.h строкой: #define TIC_154
// Использование шрифта 8x8 включается в модуле Display.h строкой: #define Use_Font_8x8
//----------------------------------------------------------------------------------------------------
#ifdef TIC_154
#define str_row 8 //У MSV 6 для Nokia 3320
#define str_col 133 //У MSV 84 для Nokia 3320
unsigned char buff[str_row][str_col];
unsigned char posx, posy;

… и далее…

alexva

Здравствуйте. Уменя вопрос в моем передатчике доноре на стиках резисторы на 50ком, как по влияет это на работу?

sasas

Никак не повлияет, однозначно.

Там просто делитель и номинал роли не играет.

gorbln

Уважаемые читатели и знатоки данной темы!!!
Прошу помощи в таком вопросе:
Сделал кодер, установил его в аппаратуру HobbyKing T6A по инструкции dollop. Прошивка бралась также с сайта samocoder. Прошивал Codevision-ом, фьюзы были установлены: CKOPT, BODEN, BODLEVEL (на этих фьюзах стояли галочки, на остальных - нет). Кодер был откалиброван, правда, одинаковое минимальное значение со стиков я не устанавливал. Откалибровался кодер нормально. Датчик температуры прошит, но сам пока не куплен - выходы контроллера висят в воздухе.
После запуска, корректность работы проверялась посредством конфигурационной программы Multiwii, подключенной к контроллеру копера, который был подключен к приёмнику.
Собственно, суть проблемы: через некоторое, весьма короткое, время после запуска - значения по всем настроенным каналам начинают хаотично прыгать в диапазоне 20…80%. При этом видна реакция на стики (что она есть), но общая картина пугает. В меню “Monitor” кодера - никакого прыгания и т.п, индикаторы ходят гладко.

Ткнул осциллографом. Сравнил с родным ХКшным кодером. В родном кодере импульсы формируются провалами, а в здешнем - пиками. Инвертировал это дело путем исключения транзистора VT5. По началу, значение каналов прыгало только при приближении стика к минимальному значению, но потом (в течение пары минут) - значения опять стали прыгать во всём диапазоне. После примерно минут 3-4 работы в таком режиме, приёмник то ли зависает, то ли вырубается, и при последующем включении пульта не видит его.

Было ли такое у кого-нибудь? Куда можно копнуть? Что проверить? Вечером попробую подключить к передающему модулю родной кодер, чтобы исключить неисправность приёмника.

Tigra74
gorbln:

Кодер был откалиброван, правда, одинаковое минимальное значение со стиков я не устанавливал. Откалибровался кодер нормально

Возможно всё таки не совсем корректно откалиброван-было подобное установил минимум на стиках максимально к нулю - где-то 0,1 вольт по вольтметру,потом выставил стики так-чтоб при среднем положении показания были одинаковы,и напряжение на AREF было больше на 20 процентов от максимального на стиках
Та это и на сайте написано,и в руководстве

gorbln:

Инвертировал это дело путем исключения транзистора VT5

В меню есть возможность инвертировать сигнал
И количество каналов в меню на пульте какое установлено?
Например Corona при 7 каналах “сходит с ума”,при 6 и 8 -работает нормально
Стабилизатор греется?
Причина может быть и в малом-плата тщательно промыта от остатков флюса?-Цепи контроллёра достаточно высокоомны-и любое загрязнение(под СМД компонентами не видное) может быть помехой-я окончательно плату промывал проточно под наклоном ацетоном со шприца(не чем больше было)

EagleB3
gorbln:

Собственно, суть проблемы: через некоторое, весьма короткое, время после запуска - значения по всем настроенным каналам начинают хаотично прыгать в диапазоне 20…80%.

…По началу, значение каналов прыгало только при приближении стика к минимальному значению, но потом (в течение пары минут) - значения опять стали прыгать во всём диапазоне.

От чего питаются кодер и передатчик? Есть высокочастотные преобразователи (StepUp, StepDown)?
Две минуты?.. Что-то где-то должно нагреваться…
Какой длины провода между кодером и передатчиком?
Как разведены и распаяны земли на плате? Не проходят ли цифровые земли по аналоговой земле? А земля питания - в стороне от них?

gorbln
Tigra74:

Возможно всё таки не совсем корректно откалиброван

Возможно. Однако, в таком случае, положение стиков дрягалось бы и в меню кодера. А стики на экране стоят как вкопанные, никакого джиттера.

Tigra74:

И количество каналов в меню на пульте какое установлено?

Хм. Установлено 6. Но на осциллографе, почему-то, 7 провалов.
Стабилизатор не греется, стабилизатор - обычный 78М05.

Tigra74:

плата тщательно промыта от остатков флюса?

Не промывал, флюс безотмывочный. Но если уж совсем всё плохо, попробую помыть спиртом.

EagleB3:

т чего питаются кодер и передатчик? Есть высокочастотные преобразователи (StepUp, StepDown)?

От обычных стабилизаторов 7805.
Заметил, кстати, такую фигню, не знаю, связано это с глюками или нет - на дисплее дрожат несколько строчек. Не всегда, но бывает, и заметил я это именно в момент, когда всё колбасилось. Возможно, где-то что-то садит питалово. Насчёт нагреваться и 2 минуты - потрогаю все компоненты платы передатчика.
Провода между кодером и передатчиком остались со старого пульта - сантиметров 6-8 максимум. Скручены вместе.
Насчёт землей на плате - тут я не присматривался даже. Просто взял топологию готовую, переразвёл заливку земли (сделал сеточкой, рисунок не менял). Но судя по тому, что до меня по этой топологии народ уже делал платы, и таких глюков не было - дело не в топологии.
Щас попробую снять видео, как это всё происходит.

EagleB3
gorbln:

От обычных стабилизаторов 7805

7805 конденсаторами обвязаны?
Источник питания что? Аккумулятор? Если нет - запитайся от аккумулятора. И будешь щупать - не забудь электролиты-бочки потрогать.

Посмотри как питался передатчик в заводском варианте.
Можно даже попробовать запитать передатчик от заводской платы кодера (штатно), и дотянуть до самокодера только PPM. И землю, естественно. Хорошую землю. Желательно в точку соединения цифровой земли и питания.

Да! И шлейф программатора от кодера отсоединить не забудь!

gorbln
EagleB3:

7805 конденсаторами обвязаны?
Источник питания что? Аккумулятор? И будешь щупать - не забудь электролиты-бочки потрогать.

Посмотри как питался передатчик в заводском варианте.

7805 обвязаны только танталами, на передатчике стоит как раз стабилизатор из родного кодера. Щас его потрогал - горячий. Солидно горячий, градусов 55-60. Но вроде бы это не должно приводить к таким последствиям. По осциллографу судя - кренка не пищит. Насколько она была горячей в родном кодере - не могу сказать.
питаю всё от аккума 3S.
бочки отсутствуют, только танталы и местами керамика.
в оригинале на кренке на входе висела маленькая керамика, и больше ничего. заметил, что если держать кренку пальцем - вроде как стабильность возрастает. Но вполне вероятно, что я выдаю желаемое за действительное. Щас напаяю керамику на 0.1 мкф на вход кренки, посмотрю.

gorbln

UPD:
Напайка керамики никак не помогла.
С родным кодером всё работает прекрасно, держал минут 15 - “ни единого разрыва”. Кренка в родном кодере тоже греется. По всему, проблема в новой плате кодера. Осталось попробовать, как советовал EagleB3 - запитать передатчик от родной платы, а ППМ подать от нового кодера. Не пробовал пока, но думаю, результат будет как раньше - борода.
(кстати, заметил: после напайки в разные места керамики - дрожание строчек на экранчике убралось)

Ещё думаю выпилить напрочь тренерскую схему, повесить ППМ почти на ногу проца (через инвертор и делитель). Если и это не поможет - ну тут уж я прям не знаю…

sashok17

После кренки питание не просело? Если говорите что когда кренку пальцем прижали дрожание стало меньше, вполне может быть что палец просто как теплоотвод подействовал

СашаЖ

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

EagleB3

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

Попробуй запитаться от 2S.
Попробуй отключить дисплей (если он не на разъеме - отпаяй шлейф от кодера).
Выгрызать тренерскую часть - КМК, достаточно только выпаять некоторые компоненты.

И попробуй поиграть с количеством каналов в настройке модели.
Ну и если приемник работает с инверсным PPM, и если включение IPPM в меню не отсушено - то попробовать все же работать со штатной схемой, включив IPPM.

Да!

После примерно минут 3-4 работы в таком режиме, приёмник то ли зависает, то ли вырубается

А точно зависает именно приемник?
В этот момент кодер нормально реагирует на стики-триммера-кнопки? PPM на его выходе регулируется? Потребление тока передатчиком не меняется?

Tigra74

А каким напряжением питалось ВЧ до переделки и после?

gorbln
EagleB3:

Все эти дрожания - наводят на прочную мысль о самовозбуждении. Горячие детали - могут быть следствием самовозбуждений , а могут быть “просто” из-за больших токов.

Попробуй запитаться от 2S.
Попробуй отключить дисплей (если он не на разъеме - отпаяй шлейф от кодера).
Выгрызать тренерскую часть - КМК, достаточно только выпаять некоторые компоненты.
И попробуй поиграть с количеством каналов в настройке модели.
Ну и если приемник работает с инверсным PPM, и если включение IPPM в меню не отсушено - то попробовать все же работать со штатной схемой, включив IPPM.

Наводят, да. Я думал, может проблема в нагреве - присобачил на кренку небольшой радиатор (около 10см2) - теперь кренка совсем холодная, а всё так же глючит. Но возбудов не видать, кренка - она свистит вольта на 2, видно бы было осциллографом.
От 2S - попробую обязательно (только с дачи приеду).
Дисплей - отключу.
Из тренерской части выпаяю релюшку (4066), VT1-VT2, стабилитрон.

Насчёт каналов - ставил 6 и 8 - не помогает.
Насчёт IPPM - попробую, не думал, что всё так просто =) я сразу - паяльником =)

EagleB3:

А точно зависает именно приемник?
В этот момент кодер нормально реагирует на стики-триммера-кнопки? PPM на его выходе регулируется? Потребление тока передатчиком не меняется?

Не знаю, что зависает. Походу, всё-таки приёмник. Кодер реагирует на стики и кнопки. Потребление тока, судя по нагреву кренки, не меняется. Да и вайфай рядом глушится - то есть передатчик явно что-то передаёт. Как посмотреть PPM - я не знаю, у меня на работе старинный осциллограф, который не держит синхру %).

Напряжение питания ВЧ блока FlySky - 5 вольт через кренку. Что в родном кодере, что в самодельном.

СашаЖ
СашаЖ:

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

Извиняюсь тормознул, в мануале есть.

gorbln

Победил!!!
Проблема со скачущими каналами решилась после выпаивания всей тренерской части подчистую. Что именно было - затрудняюсь сказать, но вроде как всё заработало как надо. Спасибо всем, кто помогал советами, я их все проверил =)

Mininc

Доброе время суток. Переделал свою аппу еще года 2 назад. Все хорошо и прекрасно работает. Но вот появился вопрос: как настроить дифференциальное управление элеронами ? Подключены в 1й и 6й каналы. Переклацал уже все что только знал, инструкцию почитал. Не получается 😦 😦 😦 . Посоветуйте, пожалуйста, кто знает.

EagleB3

…А что такое “дифференциальное управление элеронами”? Что должно получиться в идеале?

Если это то, про что я думаю, то:
Настройки -> Model -> Channels -> Channel 6 -> Mixer,
Поставить:

  1. Switch 2 = 0 (по дефаулту он = 100. Это мы полностью отключили влияние тумблера S2 на 6-й канал передатчика)
  2. Ailerons = 100 (по дефаулту он = 0. Это мы подключили 100% влияние стика элеронов на 6-й канал передатчика). Или поставить значение “-100”, если нужна инверсия направления поворота качалки сервы.

В разделе 10.3.3 инструкции (версия 1.9. от 11 мая 2010г) это расписано в Примере 1.

gorbln:

Проблема со скачущими каналами решилась после выпаивания всей тренерской части подчистую. Что именно было - затрудняюсь сказать, но вроде как всё заработало как надо

Высокоомные входы в воздухе с длинными дорожками/проводами? Какая именно микросхема стояла? Некачественные помехоподавляющие конденсаторы На входах или цепях переключения?