Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: AVR и Siemens M55
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26
sonycman
Цитата(_sR_ @ Feb 25 2007, 14:36) *
провода сантиметров 20 с разъемом (програмному SPI не должны быть помехой)
питание 3,1 общее для меги и индикатора
выглядит все так

Провода всё-же длинноваты.
Тут всё зависит от частоты SPI. Попробуйте или сделать короче (до 10 см макс.), или частоту клоков в минимум. Можно посмотреть осциллографом форму сигналов непосредственно на пинах дисплея. Должен быть меандр с минимальными искажениями.
И ещё - что-то не видно работающей подсветки. ЖКИ должен быть белого цвета, а у вас чёрный...
_sR_
Я ж говорю сделал програмный SPI с частотой клоков 50 кГц.
Подсветка есть просто т.к. питание у меня сейчас батарейное я занизил напругу подсветки до 9 В, ну и соглнышко на него светит.
Сегодня попробую Reset дисплейчика на ногу контроллера повесить...
satellite-plus
Цитата(_sR_ @ Feb 26 2007, 08:59) *
Я ж говорю сделал програмный SPI с частотой клоков 50 кГц.
Подсветка есть просто т.к. питание у меня сейчас батарейное я занизил напругу подсветки до 9 В, ну и соглнышко на него светит.
Сегодня попробую Reset дисплейчика на ногу контроллера повесить...

Возьми рабочий текст и сравни.
_sR_
тупик
на всякий случай, может у кого глаз не замылен и есть минутка свободная, привожу тот код который счас работает
инициализирующую последовательность и времена пауз взял из примера, предоставленного satellite-plus
Встречал эту последовательность разбитую на 7 кусков и несколько другими временами, пробовал и так результата нет.
Видимо всетаки трындец индикатору...
CODE

int main()
{
PORTG_PORTG4 = 1;
MCUInit();
Sleep(1);// Sleep(delay_in_ms)
PORTD_PORTD1 = 1; //LCD RESET
Sleep(1);
S65Init();
S65StartBackLite();
return 0;
}
typedef const unsigned short __flash FlashCShortPtr;
// INIT1: ; 24bytes
FlashCShortPtr INIT1[12]={0xFDFD,0xFDFD,0xEF00,0xEE04,
0x1B04,0xFEFE,0xFEFE,0xEF90,0x4A04,
0x7F3F,0xEE04,0x4306};

//INIT2: ; 40bytes
FlashCShortPtr INIT2[20]={0xEF90,0x0983,0x0800,
0x0BAF,0x0A00,0x0500,0x0600,0x0700,0xEF00,
0xEE0C,0xEF90,0x0080,0xEFB0,0x4902,
0xEF00,0x7F01,0xE181,0xE202,0xE276,
0xE183};

//INIT3: ; 2bytes
FlashCShortPtr INIT3[1]={0x8001};

void S65Init()
{
SendSPICommandWords( sizeof(INIT1) >> 1, INIT1 );
Sleep(7);
SendSPICommandWords( sizeof(INIT2) >> 1, INIT2 );
Sleep(50);
SendSPICommandWords( sizeof(INIT3) >> 1, INIT3 );
Sleep(5);
}
void SendSPICommandWords(unsigned char size, FlashCShortPtr* arr)
{
// select command register and select display
PORTB_PORTB0 = 1;//io_set_io( S65_IO_RS );
PORTB_PORTB1 = 0;//io_reset_io( S65_IO_CLK );
PORTD_PORTD5 = 0;//io_reset_io( S65_IO_CS );

//send commands
for(unsigned char word_counter=0; word_counter < size; word_counter++ )
{
s65_driver_send_word( *arr );
++arr;
}
__delay_cycles(24);
// deselect display
PORTD_PORTD5 = 1;//io_set_io( S65_IO_CS );
}

void s65_driver_send_word( unsigned short word )
{
for( unsigned char bit_counter=0; bit_counter<16; bit_counter++ )
{
if( (word &(0x0001<<bit_counter)) == 0x01 )
{
PORTB_PORTB2 = 1;//io_set_io( S65_IO_DATA );
}
else
{
PORTB_PORTB2 = 0;//io_reset_io( S65_IO_DATA );
}
PORTB_PORTB1 = 1;//io_set_io( S65_IO_CLK );
__delay_cycles(24);
PORTB_PORTB1 = 0;//io_reset_io( S65_IO_CLK );
}
}
Nanobyte
А приведите-ка нам распиновку вашего дисплея и как вы его подключаете к МК. Дело в том, что на супернемецком форуме были какие то грабли с распиновкой. Там ещё фотографии были, но контакты чуть-чуть по разному сделаны.
PS. А скорость SPI практически влиять не должна. Что программный, что аппаратный SPI работают одинаково. Пробовал я и 20см шлейф на частоте МК 20 МГц. Всё ОК.
sonycman
Цитата(_sR_ @ Feb 26 2007, 16:07) *
тупик
на всякий случай, может у кого глаз не замылен и есть минутка свободная, привожу тот код который счас работает
инициализирующую последовательность и времена пауз взял из примера, предоставленного satellite-plus
Встречал эту последовательность разбитую на 7 кусков и несколько другими временами, пробовал и так результата нет.
Видимо всетаки трындец индикатору...

По порядку:
1. Данные (и команды) на линию SDATA должны выставляться MSB first (старший (15) бит первый), а у вас наоборот.
2. Сразу после установки линии SDATA (перед установкой CLK в 1) должна следовать пауза длительностью 0,5 периода CLK. У вас никакой паузы нет.
А вы хотите, чтобы дисплей заработал sad.gif
Также важна точность временных пауз во время инициализации. Опять-же цитирую немцев: If the time is too short or too long the display will not work!
Какой у вас контроллер? На какой частоте работает? И можно увидеть код процедуры Sleep()?
Повторюсь - лучший способ увидеть, что творится на пинах ЖКИ - взять двухканальный (хотя-бы) запоминающий осциллограф и посмотреть, всё ли в порядке.
Цитата(Nanobyte @ Feb 26 2007, 17:46) *
PS. А скорость SPI практически влиять не должна. Что программный, что аппаратный SPI работают одинаково. Пробовал я и 20см шлейф на частоте МК 20 МГц. Всё ОК.

То есть при частоте SCLK 10 Мгц? Или даже 5 Мгц?
У меня частота SCLK 12 Мгц, и при перегибе шлейфа (длиной 10 см) дисплей перестаёт реагировать на сигналы, так как искажения формы сигнала CLK (да и других сигналов) становятся велики. Индуктивность проводов на высоких частотах играет свою роль, и об этом немцы сразу предупреждают sad.gif
_sR_
2 Nanobyte
распиновку брал из "Using the Siemens S65.pdf" (PDF by Benjamin Metz, April 18th, 2006) картинка с пинами вот.

2 sonycman
1. самое смешное что в первоначальном варианте на аппаратном SPI так и было, но потом я скачал примерчик у немцев и его воткнул (однако, не все примеры полезны). только что исправил функцию
void s65_driver_send_word( unsigned short word ) на такую
CODE

void s65_driver_send_word( unsigned short word )
{
for( unsigned char bit_counter=0; bit_counter<16; bit_counter++ )
{
if( (word &(0x8000>>bit_counter)) )
{
PORTB_PORTB2 = 1;//io_set_io( S65_IO_DATA );
}
else
{
PORTB_PORTB2 = 0;//io_reset_io( S65_IO_DATA );
}
__delay_cycles(24);
PORTB_PORTB1 = 1;//io_set_io( S65_IO_CLK );
__delay_cycles(24);
PORTB_PORTB1 = 0;//io_reset_io( S65_IO_CLK );
__delay_cycles(24);
}
}

НИФИГА, экран как был так и остался
2. Наверное не в длительности периуда дело (допустим програмный SPI на 1 Гц), а во времени предустановки данных относительно переднего фронта CLK. Контроллер сейчас работает на 8 Мгц
длительность команды установки бита 2 такта (250 нс), что для схемы, работающей с тактовой чатотой 13 МГц не должно представлять проблемы. Да и на осцилле все сигналы вполне "красивые"...
Временные паузы взял из примера satellite-plus. У Вас такие?
код sleep
CODE

__no_init volatile bool DelayComplete;
#pragma vector=TIMER0_OVF_vect
__interrupt void TIMER0_OVF_ISR( void )
{
TCNT0 = 6;
DelayComplete = true;
}
void Sleep(unsigned short delay)
{
TCNT0 = 6;
TIMSK = 1 << TOIE0;
TCCR0 = (1 << CS01) | (1 << CS00);
__enable_interrupt();
while( delay-- )
{
DelayComplete = false;
do
{
__sleep();
}while( !DelayComplete );
}
TCCR0 = 0;
TIMSK = 0;
}


Одна надежда что в распиновке у меня ошибка.
sonycman
Цитата(_sR_ @ Feb 26 2007, 20:10) *
2. Наверное не в длительности периуда дело (допустим програмный SPI на 1 Гц), а во времени предустановки данных относительно переднего фронта CLK. Контроллер сейчас работает на 8 Мгц
длительность команды установки бита 2 такта (250 нс), что для схемы, работающей с тактовой чатотой 13 МГц не должно представлять проблемы. Да и на осцилле все сигналы вполне "красивые"...
Временные паузы взял из примера satellite-plus. У Вас такие?

Одна надежда что в распиновке у меня ошибка.

По пункту 2 - совершенно верно, я говорил про предустановку данных.
250 нс должно хватить.

Распиновка верная.
Временные паузы у меня такие-же.
Насчёт Sleep() - процедура инициализирует таймер на прерывание через 1 миллисекунду, но при частоте MCLK 16 Мгц. Так как у вас 8 - задержки идут в два раза больше, чем надо.
Замените везде строку TCNT0 = 6 на TCNT0 = 131.

ЗЫ: Опять-же, по осциллографу должны быть видны слишком большие задержки. Надо быть внимательнее, иначе проблему не решить smile.gif
_sR_
Цитата(sonycman @ Feb 26 2007, 19:42) *
Насчёт Sleep() - процедура инициализирует таймер на прерывание через 1 миллисекунду, но при частоте MCLK 16 Мгц. Так как у вас 8 - задержки идут в два раза больше, чем надо.
Замените везде строку TCNT0 = 6 на TCNT0 = 131.

ЗЫ: Опять-же, по осциллографу должны быть видны слишком большие задержки. Надо быть внимательнее, иначе проблему не решить smile.gif

ну-у-у-у
во первых осциллографом я смотрел, а во вторых...
смотрим табличку 56 (стр. 103) CS01 = 1; CS00 = 1 коэффициент 32 и того получаем
125 нс * 32 * 250 = 1 мс

но все равно я попробовал Ваш вариант
результат тот же
_sR_
Аллилуйа!
Тупо взял код satellite-plus и скопировал адаптировав ноги и заменив delay на свою Sleep
едрен батон
ЗАРАБОТАЛО!
"ё-мое, чтож я сделал" (С)
счас буду искать отличия
"видишь суслика? и я не вижу... а он есть"

огроменное спасибо satellite-plus за 100% исправный код!
_sR_
удалось запустить свой код програмного SPI
отличие состояло в функции вывода слова по SPI
зацените
код из исходника satellite-plus
CODE

void sendCMD( unsigned short word )
{
rs=1;
cs=0;
sclk=0;if (word & 32768) sdata=1;else sdata=0;sclk=1;
sclk=0;if (word & 16384) sdata=1;else sdata=0;sclk=1;
sclk=0;if (word & 8192) sdata=1;else sdata=0;sclk=1;
sclk=0;if (word & 4096) sdata=1;else sdata=0;sclk=1;
sclk=0;if (word & 2048) sdata=1;else sdata=0;sclk=1;
sclk=0;if (word & 1024) sdata=1;else sdata=0;sclk=1;
sclk=0;if (word & 512) sdata=1;else sdata=0;sclk=1;
sclk=0;if (word & 256) sdata=1;else sdata=0;sclk=1;
sclk=0;if (word & 128) sdata=1;else sdata=0;sclk=1;
sclk=0;if (word & 64) sdata=1;else sdata=0;sclk=1;
sclk=0;if (word & 32) sdata=1;else sdata=0;sclk=1;
sclk=0;if (word & 16) sdata=1;else sdata=0;sclk=1;
sclk=0;if (word & 8) sdata=1;else sdata=0;sclk=1;
sclk=0;if (word & 4) sdata=1;else sdata=0;sclk=1;
sclk=0;if (word & 2) sdata=1;else sdata=0;sclk=1;
sclk=0;if (word & 1) sdata=1;else sdata=0;sclk=1;
cs=1;
}

а теперь мой вариант
CODE

void s65_driver_send_word( unsigned short word )
{
rs=1;
cs=0;
unsigned short mask = 0x8000;
for( unsigned char bit_counter=0; bit_counter<16; bit_counter++ )
{
sclk = 0;
// __no_operation();
if( word & mask )
{
sdata = 1;
}
else
{
sdata = 0;
}
sclk = 1;
mask >>= 1;
// __no_operation();
}
cs=1;
}

т.е. в первом варианте этот цикл просто развернут
обнаружился такой прикол
если раскоментировать одну из строчек (__no_operation()), то все перестанет работать
если раскоментировать обе - работает
такое ощущение, что эта зараза контролирует скважность CLK
но вот зачем - загадка...
Nanobyte
Цитата(_sR_ @ Feb 26 2007, 23:11) *
... ЗАРАБОТАЛО!

Мои поздравления !!! Таки вы его победили. biggrin.gif

Цитата(sonycman @ Feb 26 2007, 16:47) *
...То есть при частоте SCLK 10 Мгц? Или даже 5 Мгц?
У меня частота SCLK 12 Мгц, и при перегибе шлейфа (длиной 10 см) дисплей перестаёт реагировать на сигналы, так как искажения формы сигнала CLK (да и других сигналов) становятся велики. ...

Частота SCK была 10 МГц, шлейф я не перегибал. На осциллографе все сигналы нормальные, без завалов. Пробовал я и низкие частоты SPI, всё работает.
По поводу задержек. Переписал я инициализацию на ASM, задержки варьировал в широких пределах, ничего не изменилось, норма. Может, L2F50xx более толерантный, нежели LS020?
sonycman
Цитата(_sR_ @ Feb 27 2007, 02:02) *
если раскоментировать одну из строчек (__no_operation()), то все перестанет работать
если раскоментировать обе - работает
такое ощущение, что эта зараза контролирует скважность CLK
но вот зачем - загадка...

Вот и прекрасно.
Я же говорил, что всё должно быть "красиво" и ровно, а не бог весть как smile.gif
Успехов.
011119xx
2 sonycman И компрессию не использовал - двухцветным шрифтам это не надо.

Вот это мне не понятно. 2 цвета это цвет букв и фон? Или 2 цвета букв и фон? И что такое padding кто знает? А кто знает как заставить Хагеновский конвертер шрифтов делать шрифт с компрессией?
sonycman
Цитата(011119xx @ Feb 27 2007, 11:54) *
2 sonycman И компрессию не использовал - двухцветным шрифтам это не надо.

Вот это мне не понятно. 2 цвета это цвет букв и фон? Или 2 цвета букв и фон? И что такое padding кто знает? А кто знает как заставить Хагеновский конвертер шрифтов делать шрифт с компрессией?

Да, двухцветным - я имел ввиду монохромные шрифты - 1 bit per pixel.
Просто выразился не правильно smile.gif

Теперь насчёт Padding (как это понял я):
Структура сжатого шрифта у Хагена:
Код
struct _FONT_ {
       uint16_t   font_Size_in_Bytes_over_all_included_Size_it_self;
       uint8_t    font_Width_in_Pixel_for_fixed_drawing;
       uint8_t    font_Height_in_Pixel_for_all_Characters;
       uint8_t    font_Bits_per_Pixels;
       uint8_t    font_First_Char;
       uint8_t    font_Last_Char;
       uint8_t    font_Char_Widths[font_Last_Char - font_First_Char +1];
       uint8_t    font_Byte_Padding;
       uint8_t    font_RLE_Table[3];
       uint8_t    font_Char_Size_in_Bytes[font_Last_Char - font_First_Char +1];
       uint8_t    font_data[];
    }

Как видно, font_Char_Size_in_Bytes[] имеет размер 8 бит, то есть размер (в байтах) каждого символа не может превышать 256 байт. Это может привести к проблеме, если используется шрифт большого размера, у которого символ (даже сжатый) "весит" больше 256 байт.
Это решается с помощью Padding. Вычисление размера символа сводится к: font_Char_Size_in_Bytes[x] * Padding. То есть, если padding=2, то символ может иметь размер до 512 байт и т. д.

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

Видел два варианта редактора шрифтов Хагена: старый - автоматически принимает решение, производить компрессию, или нет; и новый (http://www.mikrocontroller.net/attachment/20837/FontEditor_BitmapConverter.zip) - там добавлен чекбокс для принудительной активации компрессора.
sonycman
Цитата(Nanobyte @ Feb 27 2007, 02:22) *
По поводу задержек. Переписал я инициализацию на ASM, задержки варьировал в широких пределах, ничего не изменилось, норма. Может, L2F50xx более толерантный, нежели LS020?

Наверное, дисплеи, всё-же, разные.
Стартовая последовательность для L2F50:
6.4 RECOMMENDED SEQUENCE
-1) * turn on system power (VDDI,VDDL))
-2) * system reset - XRES="L")
-3) (execute following commands)
* DISCTL
* GCP64
* GCP16
* CASET
* PASET
* ASCSET (P1=0d, P2=175d, P3=175d, P4=3d)
* SCSTART (P1=0d)
* DATCTL
and other commands to be changed
-4) * execute SLPOUT command after more than 100us (TBD) from system reset
-5) * wait around 1ms (TBD)
-6) * transfer display data to the display data RAM
RAMWR (command + required parameters)
-7) * execute DISON command after over 80ms (TBD) from SLPOUT

Интересно, Display On выполняется в последнюю очередь, после полной инициализации контроллера и GRAM.
Значит ли это, что есть возможность избежать появления на экране "цветного мусора" сразу после включения?

ЗЫ: Блин, по-моему, надо изменить название темы на AVR и Siemens S65, так как про M55 давно уже никто слова не сказал smile.gif
011119xx
В каких-то немецких исходниках видел команду на выключение LS020 типа 0x8000. Но у меня ни какого эффекта не имела. Кто что знает про это?
sonycman
Цитата(011119xx @ Feb 28 2007, 12:14) *
В каких-то немецких исходниках видел команду на выключение LS020 типа 0x8000. Но у меня ни какого эффекта не имела. Кто что знает про это?

Меня, честно говоря, меньше всего заботит выключение дисплея.
Обрубил ему питание, да и всё biggrin.gif
Ничего с ним не случится.
А сдохнет - туда ему и дорога. Больше не буду связываться с девайсами без даташитов sad.gif
viael
Цитата(sonycman @ Feb 28 2007, 14:43) *
Цитата(011119xx @ Feb 28 2007, 12:14) *

В каких-то немецких исходниках видел команду на выключение LS020 типа 0x8000. Но у меня ни какого эффекта не имела. Кто что знает про это?

Меня, честно говоря, меньше всего заботит выключение дисплея.
Обрубил ему питание, да и всё biggrin.gif
Ничего с ним не случится.
А сдохнет - туда ему и дорога. Больше не буду связываться с девайсами без даташитов sad.gif

А насколько сильно видна прорисовка? Если делать на нем осцилограф сильно мельтешить будет?
Сколько FPS на нем можно получить?
sonycman
Цитата(viael @ Feb 28 2007, 15:13) *
А насколько сильно видна прорисовка? Если делать на нем осцилограф сильно мельтешить будет?
Сколько FPS на нем можно получить?

Это всё зависит от частоты SPI, по которому вы будете передавать данные.
На частоте, близкой к максимальной - 12 Мгц - никакого "мельтешения" нет, есть только что-то типа "фликера", так как отсутствует вертикальная синхронизация.
При такой частоте получается около 31 полного (176 на 132) кадра в секунду, но это чистая передача, без учёта времени на формирование картинки.

ЗЫ: ИМХО, для осциллографа можно найти дисплеи "полегче" - с меньшим кол-вом цветов, чтобы не тратить кучу времени на передачу 16-битных слов...
viael
Цитата(sonycman @ Feb 28 2007, 16:03) *
Цитата(viael @ Feb 28 2007, 15:13) *

А насколько сильно видна прорисовка? Если делать на нем осцилограф сильно мельтешить будет?
Сколько FPS на нем можно получить?

Это всё зависит от частоты SPI, по которому вы будете передавать данные.
На частоте, близкой к максимальной - 12 Мгц - никакого "мельтешения" нет, есть только что-то типа "фликера", так как отсутствует вертикальная синхронизация.
При такой частоте получается около 31 полного (176 на 132) кадра в секунду, но это чистая передача, без учёта времени на формирование картинки.

ЗЫ: ИМХО, для осциллографа можно найти дисплеи "полегче" - с меньшим кол-вом цветов, чтобы не тратить кучу времени на передачу 16-битных слов...


Полегче в плане цены наврядли, а у меня это пунктик №1. Еще вопрсы:
Какая максимальная частота SPI(у дисплея)?
Почему вы не использовали модуль SPI+DMA(имеется в виду SAM7)?
Дисплей оригинальный или лиценция( говорят что те что по лицензии погано показуют -"мутные")?
Конкретно у вас какой контроллер(LS020.....)?
Nanobyte
Цитата(viael @ Feb 28 2007, 14:13) *
... А насколько сильно видна прорисовка? Если делать на нем осцилограф сильно мельтешить будет? ...

Прорисовка как таковая не видна совсем, только когда сильно меняется фон всего изображения. При выводе осциллограмм (сгенерированных линий) изображение нормальное. В момент вывода по SPI я не заметил никакого срыва развёртки. Если линии выводятся в разные места, то это смотрится как мельтешение на обычном осциллографе.
viael
Цитата(Nanobyte @ Feb 28 2007, 19:56) *
Цитата(viael @ Feb 28 2007, 14:13) *
... А насколько сильно видна прорисовка? Если делать на нем осцилограф сильно мельтешить будет? ...

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


Надежда имеется biggrin.gif
sonycman
Цитата(viael @ Feb 28 2007, 16:16) *
Полегче в плане цены наврядли, а у меня это пунктик №1. Еще вопрсы:
1. Какая максимальная частота SPI(у дисплея)?
2. Почему вы не использовали модуль SPI+DMA(имеется в виду SAM7)?
3. Дисплей оригинальный или лиценция( говорят что те что по лицензии погано показуют -"мутные")?
Конкретно у вас какой контроллер(LS020.....)?

1. По даташиту - 13 Mbit/s, то есть 13 Мгц. Где-то писали, что работает до 16, но не проверено.
2. А почему вы так решили? smile.gif
Действительно, пока не использовал. За ненадобностью. Макс. скорости можно достичь и без DMA.
3. А чёрт его знает. У меня LS020 (конкретно - LS0208UD06). Не нравятся пока только две вещи - невозможность кадровой синхронизации и слегка светловатые цвета. Всё это, возможно, решается, но только при наличии полной документации.
А чёткость картинки превосходная, если вы это имели ввиду под словом "мутные". smile.gif
viael
Цитата(sonycman @ Mar 1 2007, 01:51) *
Цитата(viael @ Feb 28 2007, 16:16) *

Полегче в плане цены наврядли, а у меня это пунктик №1. Еще вопрсы:
1. Какая максимальная частота SPI(у дисплея)?
2. Почему вы не использовали модуль SPI+DMA(имеется в виду SAM7)?
3. Дисплей оригинальный или лиценция( говорят что те что по лицензии погано показуют -"мутные")?
Конкретно у вас какой контроллер(LS020.....)?

1. По даташиту - 13 Mbit/s, то есть 13 Мгц. Где-то писали, что работает до 16, но не проверено.
2. А почему вы так решили? smile.gif
Действительно, пока не использовал. За ненадобностью. Макс. скорости можно достичь и без DMA.
3. А чёрт его знает. У меня LS020 (конкретно - LS0208UD06). Не нравятся пока только две вещи - невозможность кадровой синхронизации и слегка светловатые цвета. Всё это, возможно, решается, но только при наличии полной документации.
А чёткость картинки превосходная, если вы это имели ввиду под словом "мутные". smile.gif

cheers.gif thank
Kenshin
Цитата(011119xx @ Feb 28 2007, 11:14) *
В каких-то немецких исходниках видел команду на выключение LS020 типа 0x8000. Но у меня ни какого эффекта не имела. Кто что знает про это?


0x8001 - Display displaying control register ON ( DIPS ON )
0x8000 - соответственно ( DIPS OFF )
011119xx
Цитата(Kenshin @ Mar 1 2007, 15:14) *
0x8000 - соответственно ( DIPS OFF )

У вас это работает?
aerobus
Господа! А кто нибудь может подсказать чайнику?
Тут шла речь об вот таком экране
http://www.remcomplekt.ru/gsm_info.php?idi...9&abk=53249
На него есть даташит и вроде все с ним понятно.

А вот это что, клон его же, или это чтото китайкорейское и надо на него искать даташит?
http://www.privat-mobile.com/a/index.php?productID=2140
Или на него подходит даташит от верхнего?
А тоя его уже заказал. А счас доглядел, что там маркировка разная совсем sad.gif

А никто с этим экраном не разбирался? может даташит у кого нибудь есть NOKIA 9210
http://www.megaopt.ru/cms-images/mega_good...97_9210_web.jpg
Denisvak
Народ, подскажите. Есть дисплей от старой Nokia Engage, где можно даташит достать на него?

Спасибо
aerobus
Цитата(aerobus @ Mar 3 2007, 23:42) *
http://www.remcomplekt.ru/gsm_info.php?idi...9&abk=53249
На него есть даташит и вроде все с ним понятно.

http://www.privat-mobile.com/a/index.php?productID=2140


Вот такой еще есть..... Это все близнецы братья? Или на каждый свой даташит?
help.gif
http://www.megaopt.ru/cms-images/mega_good...09_7210_web.jpg
dspy
Цитата(aerobus @ Mar 4 2007, 11:37) *
Цитата(aerobus @ Mar 3 2007, 23:42) *

http://www.remcomplekt.ru/gsm_info.php?idi...9&abk=53249
На него есть даташит и вроде все с ним понятно.

http://www.privat-mobile.com/a/index.php?productID=2140


Вот такой еще есть..... Это все близнецы братья? Или на каждый свой даташит?
help.gif
http://www.megaopt.ru/cms-images/mega_good...09_7210_web.jpg


доброе время суток!
на практике все эти дисплей взаимо заменяеми.
но есть еще дисплей с какам то другим контролером (шлейф коричневый, применяются в 2600 и 2650)
и в некоторых случаях и можно заменить, а бывает что и нет (не могу этого объяснить)
так что если шлейф зеленый то эти дисплей взимозаменяеми на 95%
Kenshin
Цитата(011119xx @ Mar 1 2007, 14:56) *
Цитата(Kenshin @ Mar 1 2007, 15:14) *

0x8000 - соответственно ( DIPS OFF )

У вас это работает?

работает как часы
satellite-plus
Цитата(aerobus @ Mar 4 2007, 11:37) *
Цитата(aerobus @ Mar 3 2007, 23:42) *

http://www.remcomplekt.ru/gsm_info.php?idi...9&abk=53249
На него есть даташит и вроде все с ним понятно.

http://www.privat-mobile.com/a/index.php?productID=2140


Вот такой еще есть..... Это все близнецы братья? Или на каждый свой даташит?
help.gif
http://www.megaopt.ru/cms-images/mega_good...09_7210_web.jpg

Запускал с коричневым и зеленым шлейфом. Разные контроллеры. С коричневым есть куда паяться. Информация по ссылке.
http://thomaspfeifer.net/index.htm
sonycman
Цитата(Kenshin @ Mar 5 2007, 11:47) *
работает как часы

И как это выглядит? На дисплее что-то меняется после этой команды?
Kenshin
Цитата(sonycman @ Mar 5 2007, 13:02) *
Цитата(Kenshin @ Mar 5 2007, 11:47) *

работает как часы

И как это выглядит? На дисплее что-то меняется после этой команды?


пропадает изображение. экран становится серым или синеватым...
одно время пытался избавиться от мерцания кадров с помощью этой команды, но время отключения и включения оказалось большим и я отказался от этой идеи. однако мерцание пропадало хоть и получалось всё, пардон, per rectum
aerobus
Цитата(satellite-plus @ Mar 5 2007, 11:34) *
Запускал с коричневым и зеленым шлейфом. Разные контроллеры. С коричневым есть куда паяться. Информация по ссылке.
http://thomaspfeifer.net/index.htm

Дык даташит этот pcf8833 подходит, или надо к каждому свой ?
satellite-plus
Цитата(aerobus @ Mar 5 2007, 17:08) *
Цитата(satellite-plus @ Mar 5 2007, 11:34) *

Запускал с коричневым и зеленым шлейфом. Разные контроллеры. С коричневым есть куда паяться. Информация по ссылке.
http://thomaspfeifer.net/index.htm

Дык даташит этот pcf8833 подходит, или надо к каждому свой ?


Grüne Leiterplatte: Epson S1D15G10 Chipsatz
Orange/Braune Leiterplatte: Philips PCF8833 Chipsatz
aerobus
Цитата(satellite-plus @ Mar 5 2007, 18:30) *
Цитата(aerobus @ Mar 5 2007, 17:08) *

Цитата(satellite-plus @ Mar 5 2007, 11:34) *

Запускал с коричневым и зеленым шлейфом. Разные контроллеры. С коричневым есть куда паяться. Информация по ссылке.
http://thomaspfeifer.net/index.htm

Дык даташит этот pcf8833 подходит, или надо к каждому свой ?


Grüne Leiterplatte: Epson S1D15G10 Chipsatz
Orange/Braune Leiterplatte: Philips PCF8833 Chipsatz

Спасибо! Буду разбираться. smile3046.gif
aerobus
А от цифровых фотиков кто нибудь пробовал дисплеи?
Wano
Хлопцы,прочитал все 16 страниц форума.Сам вожусь с 6610,проблем не знаю.
Но TFT конечно это руль.Что хочу сказать,во первых само посветление картинки
это не так уж страшно и просиходить оно просто обязано,так как теряется часть информации.
Более того я пробовал долго выводить градиенты на нокию,так и не смог разобраться как правильно
конвертить цвет,чтоб не было границ пятнистых в местах переходов цвета.Хотя у 16 бит это незаметно,12-заметно.
Что хочу сказать про вывод картинок,не квадратных так сказать.У меня работает вывод построчно,а данные
делятся на две части,просто данные(цвета пикселей) и данные размещения.Каждый байт в данных размещения указывает
сколько бит идёт заполненных,потом следущий байт указывает сколько незаполненно.Ну и плюс ко всему основные
параметры ширина высота.Этого вполне хватает для отрисовки.Не надо париться с пикселами.Можно выводить отрезками.
Может не ясно написал,скажите я распишу на пальцах.Контроллер вполне выдерживает скорость в 7мбит-максимум SPI на LPC.
Шрифт делаю не так,слишком много лишней инфы.Первыми идут два параметра высота ширина.Далее идёт так
называемое смещение относительно базовой линии,так сказать ascent в виндозовских шрифтах.
Этого хватит для точной ориентации символа.Далее идёт список данных размещения.Из себя он представляет принцип
типа bitperpixel,тока не один а два.Ну тут уже приходится адресовать по пикселам конечно.Ну и так: биты =00-значит пиксель пустой
01-первый цвет,10-второй цвет,11-третий цвет.(это где не хватает одного цвета,а где хватает то один бит).
Ну и конечно для символа или для всего шрифта хранить три байта цвета.Вы же взгляните,почти все буквы на фоне
у цветных мобильников имеют под собой ореол белый или смесь фона и белого.Тогда как чисто чёрный текст
выводить на картинке можно,если она светлая и монотонная,иначе вы получите крайне некрасивый эффект.Всё конечно
относительно,на MPX200 так вообще размытость сделана,ну там уже винда и проц 130мгц.Кто какую перед собой цель ставит.
Может сложно написал,кому интересно напишу более понятно.И так могут за offtopic не простить.
Конечно для конвертации шрифта и картинок написал примитивную прожку,правдо ещё до ума не довёл.

Еслиб щас к предкам не уехал,то сегодня бы побежал покупать экран от S65.Жаль,что с вами не могу поучаствовать.
Но вот совет,может кто разовьёт идею.Раз уж нема там синхроимпульсов,чёрт с ними.Но может попробовать их примерно определить.
Думаю все знают слово стробоскоп. Возьмите не весь экран,а малую часть,чтоб был запас по скорости у ARM-а.И выводите на него
линии чёрые и белые,чередуйте их(меняйте местами).Скорость чередования мееееедленно пусть меняется.Я почти уверен,что картинка
сама скажет вам когда частоты синхронизации и вывода совпадут или будут кратными.
Если частоты совпадут то вообще будет мигание жёсткое.Думаю вычислить частоту обновления не сложно.Единственное как потом
этому следовать.Со временем всё равно собьётся уж больно большие частоты.Можно раз в минуту две производить ресет LCD.
Конечно воторой вариант следить за регистрами которые я так понял никто не знает.
И вообще попробуйте побыстрей слать,ведь SSP до 20 мбит я сам пробовал,на пяти сантиметрах флэшка висела,всё ок.
Вот тут есть от К700-го экранчик,стоит в нём HD66789R,шит на него есть,у него паралельный 8-ми битный интерфейс.Надо
разбираться с ножками экрана.По крайней мере в шите указано как ножки отходят от стекла,а дальше проследить
не сложно.Экран TFT 176x220.
sonycman
Цитата(Wano @ Mar 6 2007, 13:36) *
Хлопцы,прочитал все 16 страниц форума.

Интересный пост, сразу куча информации smile.gif
По шрифтам и картинкам использую утилиты Хагена Редмана (с форума www.mikrocontroller.net), хотя по шрифтам не совсем, не задействовал пока компрессию и многоцветный вариант (за ненадобностью).
Компрессия картинок на уровне GIF и PNG (но цветов до 32768!), а порой и лучше. Так что доволен.
Если считаете, что у вас лучше - плиз, опишите подробнее.

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

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

Макс. скорость у меня получилась 12 Мбит. Так как контроллер (SAM7) работает на 48 Мгц, и дисплей висит на SSC, то следующая частота TK будет равна 24 Мгц, дисплей её не потянет наверняка, так как у него по даташиту только 13 Мгц.
Хотя, при отсутствии синхронизации, всё равно фликер возможен, какая бы скорость передачи не была sad.gif
011119xx
По шрифтам использую редактор шрифтов Хагена Редмана (с форума www.mikrocontroller.net), исползую шрифты высотой символа 7 и 10 пикселей, не задействовал пока компрессию и многоцветный вариант (из-за не понимания как это все работает).
Компрессию картинок не использую. BMP-файлы изображений буду хранить прямо в ММС карте. Память контроллера тратиться не будет.

Градиент тоже сделал - переходы не видны. Это простой градиент. Градиент батареи как в моих картинках выше тоже сделал, но алгоритм под любой цвет не придумал.

Сейчас думаю какой выбрать контроллер толи Silabs, то ли ARM. А все алгоритмы отлаживал на x51.

Пока все устраивает.



А где K700 не вижу. biggrin.gif
Wano
Ну все сразу захотели K700 надо ещё с S65 разобраться smile.gif не стоит выбрасывать полтину зелёных,чтоб потом ломать голову.За эти деньги лучше пошарить 260000 цветный OLED на ближайшей конторе и дейсвительно сделать МАЛО ,прошу заметить,потребляющий плейер.До энергопотребления OLED,LCD ещё как до....

Послушай я спорить не буду,но вродеж там очень плавно наростает скорость на SSP,сегодня погляжу.
Вроде я на 60 мегагерцовом 15 мбит как-то получал и 20 тоже.

На счёт сжатия картинок,я его не использую(пока).Файлы BMP конечно хорошо,ну ето выравнивание по слову ну его.С таблицами вполне приличное сжатие получается.GIF это супер. Где-то у меня даже дока валялась.Его изобрели ещё в 89-м или даже раньше,не ужели щас не разберёмся smile.gif
В общем свой шедевр в кавычках попробую зарелизить через дня два.Сёдня ночьку посижу.
Распишу подробнее на пальцах так сказать.

Кстати товарищи,на счёт стробоскопа я провёл опыт на 6600 ну не сильно но заметно,и вычислить частоту обновления можно,правдо часик другой понапрягать мозги надо будет.Видели же наверно
на старых винил-проигрывателях диск с насечками.
sonycman
Цитата(Wano @ Mar 6 2007, 21:57) *
Послушай я спорить не буду,но вродеж там очень плавно наростает скорость на SSP,сегодня погляжу.
Вроде я на 60 мегагерцовом 15 мбит как-то получал и 20 тоже.

GIF это супер. Где-то у меня даже дока валялась.Его изобрели ещё в 89-м или даже раньше,не ужели щас не разберёмся smile.gif

Насчёт SSC - погляди, если не трудно. Контроллер - AT91SAM7S256.

У GIF есть недостаток - 256 цветов.
А хагеновский компрессор его не имеет smile.gif

ЗЫ Извиняюсь за оффтоп, но кто какую файловую систему использует для карт MMC/SD?
Хотелось-бы с поддержкой длинных имён.
Хочу замутить Mass Storage девайс...
011119xx
Цитата(sonycman @ Mar 7 2007, 02:15) *
ЗЫ Извиняюсь за оффтоп, но кто какую файловую систему использует для карт MMC/SD?
Хотелось-бы с поддержкой длинных имён.
Хочу замутить Mass Storage девайс...


Лично я использую свою собственную файловую систему. Что хочу в ней то и придумываю,
хоть какие имена, хоть что. Это упрощает работу с картой, а то пока разберешься с FAT мозги сломаешь. Но этот способ требует наличия в плейере функции картридера с поддержкой соответствующей файловой системы. Карта с такой системой в обычном картридере видится как не отформатированная.
sonycman
Цитата(011119xx @ Mar 7 2007, 07:27) *
Лично я использую свою собственную файловую систему. Что хочу в ней то и придумываю,
хоть какие имена, хоть что. Это упрощает работу с картой, а то пока разберешься с FAT мозги сломаешь. Но этот способ требует наличия в плейере функции картридера с поддержкой соответствующей файловой системы. Карта с такой системой в обычном картридере видится как не отформатированная.

Это мне не подходит, я же хочу подключать девайс через USB к компу, чтобы он виделся как съёмный диск.
То есть система должна быть FAT16/32...

Кстати, по плейеру - декодирование как будешь делать? С помощью VS10xx?
011119xx
[/quote]
Кстати, по плейеру - декодирование как будешь делать? С помощью VS10xx?
[/quote]
VS1001
011119xx
Цитата(sonycman @ Mar 7 2007, 12:51) *
чтобы он виделся как съёмный диск.

Зачем это нужно?

У меня будет так. Подключаю свой плейер к компу через USB, запускаю специальную программу и она считывает содержимое карты (естественно она понимает файловую систему карты). С помощью этой же программы в карту записываются новые файлы.
sonycman
Цитата(011119xx @ Mar 7 2007, 14:57) *
У меня будет так. Подключаю свой плейер к компу через USB, запускаю специальную программу и она считывает содержимое карты (естественно она понимает файловую систему карты). С помощью этой же программы в карту записываются новые файлы.

Ну, это ведь усложняет процесс.
Здесь же нужно писать свой драйвер для устройства, или нет?
Плюс спец. прогу...
Всё можно сделать проще - Mass Storage Device увидит любая WinXP, и закидать туда файлы можно любым софтом smile.gif
Плюс не надо изобретать велосипед - писать свою файловую систему smile.gif

А какой у вас проц? AVR?

ЗЫ: если вы не против, скиньте ваш и-мэйл или номер аськи мне в приват.
Чтобы пообщаться на интересные нам обоим темы, в случае чего smile.gif
Wano
Кароче облом,на 60мгц после 15мбит идёт 30.А жаль.Если тока делителем частоты проца возиться.

Если форматить виндой флэшку проблем с длинными именами нет. Там fat16 вроде не так уж и сложно.
Самую элементарную функцию инициализации богу кинуть,ну вы вроде до этого бросали ссылку на мр3 проигрыватель оттуда код брал. Могу кинуть также проектик на 2138-й там фат сделан в памяти контроллера и устройство пашет как флэшка на USB. Осталось закипеть и разобраться как объединить то и сё. я так и не смог smile3009.gif низкий поклон тому,кто может.
Всячески буду рад нормальным функциям для работы с FAT а не просто список доморощенного умельца (цитата Гоблина) может кто поделится wink.gif

sonycman а как вы засылаете в LCD данные по SSC или SSP у кого как, тоесть по 8 бит или по 16 ?
у нокии я шлю по 9 бит,первый указывает на данные или команду. В s65 я так понял всё кратно двум байт,логично предположить проще засылать по 16,в два раза сократив число прерываний,если их применять.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.