#2 Re: Апаратні питання » Прошу помощи! Создание эмулятора балласта лампы проектора Epson. » 2016-12-18 15:08:57

JBS

Балласт то включится а материнская плата выдаст ошибку если не будет обмена данных с балластом.
Раз дельнейшие опыты привели к таким данным то ваш проектор примитивен и в нём нет UART.
Как решили проблему с полосами юстировку сделали или нет.

#3 Re: Апаратні питання » Прошу помощи! Создание эмулятора балласта лампы проектора Epson. » 2016-12-13 20:03:11

JBS
RST пише:

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

http://forum.arduino.ua/img/members/1251/Sanyo-XU300-3.jpg

UPD: В таком режиме лампа выключается через кнопку Power спустя 1:30-минуты вместе с вентиляторами.
UPD2: проблема заключалось в том что "вылетел" резистор в цепи BLAST_AC подающий питание +3V  на 2-ю ножку NAND (UART - оказался исправным)

Во первых здравствуй во вторых ты не обманул материнскую плату так как твой балласт живой у тебя когда я тебе помог разобраться в чём проблема оказалось неправильные уровни сигнала uart.
После того как ты установил резисторы чтоб уровни подтянуть балласт запустился только был лишний резистор который стоял на оптроне включения /выключения лампы из за этого у тебя балласт включался сразу а не по сигналу  с материнской платы. Далее выявили что у тебя сигнал на включение /выключение лампы не проходит из за обрыва резистора после того как вы остановили цепь у вас проектор заработал в штатном режиме.
Исходя из всех данных ваша ситуация не подходит для этого форума так как нет никакого обхода материнской платы и не создавался ни какой эмулятор а просто отремонтировали мы с вами ваш проектор.
Хотя в начале вы не хотели его ремонтировать а хотели его сразу как нибудь обмануть но после моих убеждений мы с вами его оживили.

#4 Re: Апаратні питання » Прошу помощи! Создание эмулятора балласта лампы проектора Epson. » 2016-11-22 15:36:57

JBS

Если бы я сам его ковырял давно бы получил нужные данные а так чел живёт в банкоке  и он не очень силён в электронике то приходится получать данные почти в слепую.
Но мы не боимся трудностей и всё получится.

#5 Re: Апаратні питання » Прошу помощи! Создание эмулятора балласта лампы проектора Epson. » 2016-11-22 13:37:31

JBS

Не стоит удалять переделка тема ещё та тут помогаю челу переделать асер dlp но пока данные кривые какие то у него.
Не могу понять почему такие данные но думаю добьем мы его проектор и получим нужный результат.

#6 Re: Апаратні питання » Прошу помощи! Создание эмулятора балласта лампы проектора Epson. » 2016-11-22 11:05:07

JBS

Ух давно я тут не был а народ то с проекторами попёр.
Привет NoName.
Вижу ты тут один отдуваешься за всех.

#7 Re: Апаратні питання » Прошу помощи! Создание эмулятора балласта лампы проектора Epson. » 2016-06-29 19:24:22

JBS
darek пише:

Hello Участник

Respect. Your tag is great.
I want to rebuild my ACER H6510BD on LED.
could you help me?
The circuit almost looks like yours, but it
does not work for the ACER. sad
In a ACER is installed Osram PT VIP 05 Compact.

darek.nassa(@)yandex.com

Hi need usb logic analyzer since each projector communication codes are different.
Well, and connect this pattern to remove data exchange fully working projector with a lamp
schema_20150403-1831.jpg

#8 Re: Апаратні питання » Прошу помощи! Создание эмулятора балласта лампы проектора Epson. » 2016-05-30 18:40:28

JBS
NoName пише:

JBS,  Вы молодцы,  поздравляю

Спасибо.
Я же вам говорил что я электронщик вот нормальный результат изготовления платы всё цивильно.
123.jpg
2.jpg
1_20160530-1805.jpg

Вот тут в ворде всё написал и плата там для лута есть.
https://cloud.mail.ru/public/KmTF/662Nt2THh

Плата получилась маленькая 4x5 сантиметра ардуино сделал чтоб можно было отсоединять на панельке вставляется в плату.
Очень удобно было при отладке снял записал вставил.

Тут видео.
Видео работы эмулятора

#9 Re: Апаратні питання » Прошу помощи! Создание эмулятора балласта лампы проектора Epson. » 2016-05-28 14:41:08

JBS
NoName пише:

JBS, Вы правы, больше никакой демагогии в этой теме.

Чтоб тебе стыдно было выкладываю код рабочий.
Да потратил много времени и нервов плюс знакомые помогли но всё же обошелся без тебя.

int data;
int StatusLamp;
int flag=0;
#define INIT1 1
#define INIT2 2
#define WORK1 3
#define WORK2 4
#define BUTTON 2

void(* resetFunc) (void) = 0; // Reset MC function

void setup() {
StatusLamp = INIT1;
Serial.begin(4800);
pinMode(BUTTON,INPUT);
}

void loop() {
if(flag==1)
{
Serial.end();
delay(5000);
StatusLamp = INIT1;
Serial.begin(4800);
flag=0;
}
}


void func_unique_request( int data )
{
switch ( data )
{
case 0xF2: Serial.write(0x01); break;
default: Serial.write(0x00); break;
}
}

void func_INIT1( int data )
{
switch ( data )
{
case 0x00: Serial.write(0x00); break;
case 0xF2: Serial.write(0x01); break;
case 0xF4: Serial.write(0x1F); break;
case 0x22: Serial.write(0x22); break;
case 0x81: Serial.write(0xDC); break;

default : func_unique_request(data); break; 
}
// code change status lamp to step2 ( example 0x81 ) 
if ( data == 0x81 ) StatusLamp = INIT2;
}


void func_INIT2( int data )
{
switch ( data )
{
case 0x81: Serial.write(0x8C); break;
case 0x10: Serial.write(0x10); break;
default : func_unique_request(data); break; 
}
// code change status lamp to step2 ( example 0x81 ) 
if ( data == 0x81 ) StatusLamp = WORK1;
}


void func_WORK1( int data )
{
if(digitalRead(BUTTON)==0)
{
switch ( data )
{
case 0x81: Serial.write(0x9A); break;
default : func_unique_request(data); break; 
}
}
else 
{
Serial.write(0x18);
delay(100);
Serial.write(0x00);
flag=1;
//resetFunc(); //вызов
}
// code change status lamp to step2 ( example 0x81 ) 
if ( data == 0x81 ) StatusLamp = WORK2;
else StatusLamp = INIT1;
}


void func_WORK2( int data )
{
if(digitalRead(BUTTON)==0)
{
switch ( data )
{
case 0x81: Serial.write(0x99); break;
default : func_unique_request(data); 
}
if ( data == 0x81 ) StatusLamp = WORK1;
else StatusLamp = INIT1;
}
else
{
Serial.write(0x18);
delay(100);
Serial.write(0x00);
flag=1;
//resetFunc(); //вызов
}
}


void serialEvent() 
{
data = Serial.read();

switch ( StatusLamp )
{
case INIT1: func_INIT1(data); break;
case INIT2: func_INIT2(data); break;
case WORK1: func_WORK1 (data); break;
case WORK2: func_WORK2 (data); break;
}

} 

#10 Re: Апаратні питання » Прошу помощи! Создание эмулятора балласта лампы проектора Epson. » 2016-05-16 19:51:43

JBS

Ура заработала.
Осталось сброс сделать а то когда выключаешь проектор ардуино не сбрасывает значения. Как  это сделать помогите я так полагаю завести на какой то вход сигнал о включении лампы который сейчас свободен и по его сигналу делать сброс. а может в коде где ошибка.
Да и интересный факт ардуино должна быть всегда питаться ато не запускается. А питание 3.3 вольта появляются только после инициализации вот ине запускалась она пока я отдельно не запитал её.

int data;
int StatusLamp;

#define  INIT1  1
#define  INIT2  2
#define  WORK1  3
#define  WORK2  4

void setup() {
  StatusLamp = INIT1;
  Serial.begin(4800);
}

void loop() {
}


void func_unique_request( int data )
{
 switch ( data )
 {
  case 0xF2:  Serial.write(0x01); break;
  default:   Serial.write(0x00); break;
 }
 }

void func_INIT1( int data )
{
 switch ( data )
 {
  case 0x00:  Serial.write(0x00); break;
  case 0xF2:  Serial.write(0x01); break;
  case 0xF4:  Serial.write(0x1F); break;
  case 0x22:  Serial.write(0x22); break;
  case 0x81:  Serial.write(0xDC); break;
  
  default  :  func_unique_request(data); break;  
 }
 // code change status lamp to step2 ( example 0x81 ) 
 if ( data ==  0x81 )   StatusLamp = INIT2;
}


void func_INIT2( int data )
{
 switch ( data )
 {
  case 0x81:  Serial.write(0x8C); break;
  case 0x10:  Serial.write(0x10); break;
  default  :  func_unique_request(data); break;   
 }
 // code change status lamp to step2 ( example 0x81 ) 
 if ( data ==  0x81 )   StatusLamp = WORK1;
}

 
void func_WORK1( int data )
{
 switch ( data )
 {
  case 0x81:  Serial.write(0x9A); break;
  default  : func_unique_request(data); break; 
 }
 // code change status lamp to step2 ( example 0x81 ) 
 if ( data ==  0x81 )   StatusLamp = WORK2;
}


void func_WORK2( int data )
{
 switch ( data )
 {
  case 0x81:  Serial.write(0x99); break;
  default  : func_unique_request(data);  
 }
 if ( data ==  0x81 )   StatusLamp = WORK1;
}


void serialEvent() 
{
  data = Serial.read();

switch ( StatusLamp )
{
 case INIT1: func_INIT1(data); break;
 case INIT2: func_INIT2(data); break;
 case WORK1: func_WORK1 (data); break;
 case WORK2: func_WORK2 (data); break;
}

}

#11 Re: Апаратні питання » Прошу помощи! Создание эмулятора балласта лампы проектора Epson. » 2016-05-16 16:07:28

JBS

Сделал инверсию канала как martinways получились немного другие данные.
https://cloud.mail.ru/public/BJRt/EJZ756F3F
Чёт у меня даже инициализация не проходит на ардуино молчит проектор как без балласта.
Замучился уже надо думаю оптроны сменить подозрение на хилые оптроны.
Только плин в радио лавке нет оптронов придётся со старых  блоков питаний выдрать и заново экспериментировать.

Балласт	Материна
ИНИЦЫАЛИЗАЦИЯ	
	0x7F
	0xF2
0x01	0xF4
0x1F	0x22
0x22	
ПОДЖИГ ЛАМПЫ	
	0x81
0x0D	
РАБОТА	
	0x81
0x8E	0x10
0x10	0x81
0x8E	0x81
0x8F	0x81
0x90	0x81
0x91	0x81
0x92	0x81
0x93	0x81
0x94	0x81
0x95	0x81
0x96	0x81
0x97	0x81
0x98	0x81
0x99	0x81
0x9A	

#12 Re: Апаратні питання » Прошу помощи! Создание эмулятора балласта лампы проектора Epson. » 2016-05-14 18:40:36

JBS

Ух блин чуть не очумел отказал чужой балласт аж поплохело малость.
Вскрытие выявило что помер оптрон ответа балласта заменил его и балласт заново заработал.
Уф пронесло не хватало чужой балласт угробить.
Снова снял данные ни чем не отличаются точно такие же.
Пробовал прописать вот так но не работает.

int data;
int StatusLamp;

#define  INIT1  1
#define  INIT2  2
#define  WORK1  3
#define  WORK2  4

void setup() {
  StatusLamp = INIT1;
  Serial.begin(4800, SERIAL_8E1);
}

void loop() {
}


void func_unique_request( int data )
{
 switch ( data )
 {
  case 0x7F:  Serial.write(0x00); break;
  default:   Serial.write(0x00); break;
 }
 }

void func_INIT1( int data )
{
 switch ( data )
 {
  case 0x7F:  Serial.write(0x00); break;
  case 0xF2:  Serial.write(0xF0); break;
  case 0xF4:  Serial.write(0xFF); break;
  case 0x22:  Serial.write(0xFF); break;
  case 0x81:  Serial.write(0xFF); break;
  case 0x10:  Serial.write(0xDC); break;
  
  default  :  func_unique_request(data); break;  
 }
 // code change status lamp to step2 ( example 0x81 ) 
 if ( data ==  0x81 )   StatusLamp = INIT2;
}


void func_INIT2( int data )
{
 switch ( data )
 {
  case 0x81:  Serial.write(0xFE); break;
  
  default  :  func_unique_request(data); break;   
 }
 // code change status lamp to step2 ( example 0x81 ) 
 if ( data ==  0x81 )   StatusLamp = WORK1;
}

 
void func_WORK1( int data )
{
 switch ( data )
 {
  case 0x81:  Serial.write(0xFF); break;
  default  : func_unique_request(data); break; 
 }
 // code change status lamp to step2 ( example 0x81 ) 
 if ( data ==  0x81 )   StatusLamp = WORK2;
}


void func_WORK2( int data )
{
 switch ( data )
 {
  case 0x81:  Serial.write(0xFF); break;
  default  : func_unique_request(data);  
 }
 if ( data ==  0x81 )   StatusLamp = WORK1;
}


void serialEvent() 
{
  data = Serial.read();

switch ( StatusLamp )
{
 case INIT1: func_INIT1(data); break;
 case INIT2: func_INIT2(data); break;
 case WORK1: func_WORK1 (data); break;
 case WORK2: func_WORK2 (data); break;
}

}

#13 Re: Апаратні питання » Прошу помощи! Создание эмулятора балласта лампы проектора Epson. » 2016-05-13 17:00:10

JBS

И ещё балласт включается от другого оптрона по логическому состоянию 1  а выключение тоже происходит по тому же оптрону  логическим состоянием 0. Нет никакого кода от материнки только логическое состояние как в ардуино реализовывать тоже самое. Что касается электроники я могу сделать плату цивильную чтоб можно было присоединять к ардуино  заготовка уже есть а вот код написать самостоятельно не смогу.
1.jpg

#14 Re: Апаратні питання » Прошу помощи! Создание эмулятора балласта лампы проектора Epson. » 2016-05-13 16:30:15

JBS

Не могу понять как первоначальные данные применить ведь вначале балласт даёт код 0x00 на что потом материка отвечает 0x7F и следом материнка запрашивает 0xF2 и пошло поехало дальше .
Почему именно балласт задаёт вначале весь ход или это своеобразная аутентификация типа баласт исправен готов к работе а метерика  говорит хорошо. Или наоборот происходит так балласт  говорит что сброшены настройки по дефолту а мать говорит что сброс принят. Вот что самое интересное как правильно прописать этот момент. Ну и конечно же момент с вторичными запросами когда работает уже.

#15 Re: Апаратні питання » Прошу помощи! Создание эмулятора балласта лампы проектора Epson. » 2016-05-13 11:52:46

JBS
NoName пише:

что то не так в вашем королевстве
если есть возможность, попросите знакомого с осцилографрм посмотреть без каких либо искажений сигнал

martinways тоже делал инверсию так что должно работать правильно.
Только он огород городил с резисторами чтоб инверсию делать  а я проще пошел программно про инвертировал. Инверсия стоит только на ответ от балласта. Запросы материнки не инвертированы пишутся так как есть. Могу подключить два переходника UART и сними данные снять. Но суда по тем данным которые я снимал ранее данные будут такими же.

#16 Re: Апаратні питання » Прошу помощи! Создание эмулятора балласта лампы проектора Epson. » 2016-05-13 11:31:05

JBS

Ошибка вот такая.

Arduino: 1.6.8 (Windows 7), Плата:"Arduino Nano, ATmega328"

\Documents\Arduino\test2\test2.ino: In function 'void serialEvent()':

test2:2: error: 'data' was not declared in this scope

   data = Serial.read();             //set 'data' to input received from ballast

   ^

test2:7: error: 'send' was not declared in this scope

     send++;

     ^

exit status 1
'data' was not declared in this scope

#17 Re: Апаратні питання » Прошу помощи! Создание эмулятора балласта лампы проектора Epson. » 2016-05-13 11:16:59

JBS
NoName пише:

привет,  посмотрел на ваш лог, что то похожее на то что вы в таблице указали, единсвенно что мне не нравится в логе сигнал инвертирован мне помнится в ЮАРт данные нулем передаются, так что тут может быть ошибка



void serialEvent() {

  data = Serial.read();             //set 'data' to input received from ballast
if (data == 0x00)       Serial.write(0x7F);       
if (data == 0x22)       Serial.write(0xFF);       
if (data == 0x81)       
  {
    send++;
    Serial.write(0xFE + ( send & 0x01)  ); //  0xFE or 0xFF
    }   

}

для начала..

А если инверсию не делать то ответ будет только  таким 0x00 .

#18 Re: Апаратні питання » Прошу помощи! Создание эмулятора балласта лампы проектора Epson. » 2016-05-13 08:42:34

JBS

Вот самые первые запросы. Один код балласта 0xF7 меняется на 0xFF  когда уже происходит пуск на не остывшей лампе но я думаю нечего страшного.
Помоги пожалуйста так как в программировании я ноль.
балласт    материнка               
0x00                            Самый первые запросы при включении.
                    0x7F               
                   
                    0xF2        Начинается под жиг лампы.        
0xF0             0xF4               
0xFF             0x22               
0xFF             0x81               
0xF7             0x81               
0xFF             0x10               
0xDC                   
                    0x81        Лампа полностью разожглась.       
0xFE           
                    0x81        Дальнейшие периодические запросы и ответы.       
0xFF

#22 Re: Апаратні питання » Прошу помощи! Создание эмулятора балласта лампы проектора Epson. » 2016-05-08 19:32:09

JBS
NoName пише:

а смысл развязывать?  в ЛА достаточно высокоомный  вход что б нагружать
2. почитайте в документации как развязали ваш ЛА.
там вполне реально могут стоять ADUM ( но тут конечно все от цены зависит , если < 20 баксов то простеньний  буфер стоит ),
в общем развлекайтесь, успеха )

Китаец стоит 500р  вот http://www.ebay.com/itm/New-USB-Logic-A … 1541710029 весь анализатор нет там того что есть у оригинала. уже начитался.

#23 Re: Апаратні питання » Прошу помощи! Создание эмулятора балласта лампы проектора Epson. » 2016-05-08 19:27:52

JBS

Забыл упомянуть сильно экспериментировать не могу ведь балласт не мой и скоро отдавать надо.
Чувак тоже ждёт результаты а тут праздники не могу резисторы купить для подтяжки старьё копать не охота вот и жду когда вторник а там снова  сниму данные надо уже закончить эту эпопею как всё закончу выложу готовый продукт на форумах чтоб люди пользовались и могли повторить и переделать проекторы такие же.

#24 Re: Апаратні питання » Прошу помощи! Создание эмулятора балласта лампы проектора Epson. » 2016-05-08 17:39:52

JBS
NoName пише:

фиксируйте события по шкале времени, когда будете готовить файл для анализа
1. включение
2. поджиг )
3. работа
4 выключение
будет проще разбираться в логе

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

Дело в  том  что я не  в разрыв. Я припаял провода к оптронам и вывил отдельные оптроны и через эти оптроны я читаю данные  поэтому и нужна подтяжка.
Я уже через них прошлый раз данные через юарт переходники читал.

#25 Re: Апаратні питання » Прошу помощи! Создание эмулятора балласта лампы проектора Epson. » 2016-05-08 14:41:19

JBS
NoName пише:

привет,
да, что то не так,  для начала роскажите что происходило  за 60 сек, проектор запустился?   что измеряли
настройки  параметров порта  Async Settring >  Edit Setting > Bit RATES, там точно не должен быть 4200   (как у вас в файле )
но по вышей картинке непонятная скорость
я бы предположил что 4800/9600/115200 нужно ставить , но они (bps) не просматриваются там
напомните что за проектор, и как собрали, фотку дайте что ли, как подключились,

Уже понял что с данными надо подтяжку входов сделать на плюс . Проектор epson eb 92.
А вот проектор включается сразу разжигает лампу и нечего больше не происходит просто переходит в другой режим перестаёт мигать светодиод  начинает гореть  появляется изображение. Как бы всё ничего сверх естественного.

Підвал форуму