sasamy 9 3 мая, 2009 Опубликовано 3 мая, 2009 · Жалоба Имеется дисплей LPH88 (Siemens CX65) на мега16 инициализировал нормально. Подключил к АТ91SAM7S32 не удаётся запустить :( в архиве исходник может подскажетев чом ошибка ? Не силен в самах, первое что бросилось в глаза - разве там будет pio переключаться когда вы порт перевели в режим периферии ? AT91F_PIO_CfgPeriph(AT91C_BASE_PIOA, AT91C_PA12_MISO | AT91C_PA13_MOSI | >>>AT91C_PA11_NPCS0<<< | AT91C_PA14_SPCK,0); а потом: void CSpuls(void){ AT91F_PIO_SetOutput( AT91C_BASE_PIOA, AT91C_PIO_PA11); AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, AT91C_PIO_PA11); } Потом под рукой даташита нет - в коментах написано // SPI Init: CS0, Master, >>>16 Bit<<<, Clock/ 0x10 а работаете как с 8-битными данными. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Doniak 0 4 мая, 2009 Опубликовано 4 мая, 2009 (изменено) · Жалоба Не силен в самах, первое что бросилось в глаза - разве там будет pio переключаться когда вы порт перевели в режим периферии ? AT91F_PIO_CfgPeriph(AT91C_BASE_PIOA, AT91C_PA12_MISO | AT91C_PA13_MOSI | >>>AT91C_PA11_NPCS0<<< | AT91C_PA14_SPCK,0); а потом: void CSpuls(void){ AT91F_PIO_SetOutput( AT91C_BASE_PIOA, AT91C_PIO_PA11); AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, AT91C_PIO_PA11); } Потом под рукой даташита нет - в коментах написано // SPI Init: CS0, Master, >>>16 Bit<<<, Clock/ 0x10 а работаете как с 8-битными данными. AT91C_PA11_NPCS0 AT91C_PA11_NPCS0 - пробывал не переводить результата нет Потом под рукой даташита нет - в коментах написано // SPI Init: CS0, Master, >>>16 Bit<<<, Clock/ 0x10 исходник настройки SPI брал с дисплея LS020 коменты сохранились но настройки сделал на 8бит , Clock/4 Шурила спасиба за исходник долго по интернету искал подобное под АТ91. Не разбирался. Но здесь мой код для АТ91SAM7S64 под дисплей LPH88 (IAR 5.2). Может поможет. Схема у меня на сайте. а функцыи как в либе KEILa оО Не могли бы объяснить вот эту функцию что она делает ( её внутренности ) spi_pld (0); Изменено 4 мая, 2009 пользователем Doniak Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
shurila 0 4 мая, 2009 Опубликовано 4 мая, 2009 · Жалоба ... Не могли бы объяснить вот эту функцию что она делает ( её внутренности ) spi_pld (0); spi_pld (0); - это обращение к другому CS SPI (в данном случае CS PLD с которой общение тоже по SPI), соответственно CS дисплея ставится в "1". Как бы понятно из названия функции lcd_cshigh(); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Doniak 0 4 мая, 2009 Опубликовано 4 мая, 2009 · Жалоба spi_pld (0); - это обращение к другому CS SPI (в данном случае CS PLD с которой общение тоже по SPI), соответственно CS дисплея ставится в "1". Как бы понятно из названия функции lcd_cshigh(); Спасиба всё заработало проблема оказалась в том что неправельно дёргал ногой CS. В настройках выбрал переменую переферию и теперь меняю её при вызове функцые CSpuls(); и всё работает :) Немного не ясно какой должна быть фаза синхрон сигнала вродибы в любой работает... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bolt 0 4 мая, 2009 Опубликовано 4 мая, 2009 (изменено) · Жалоба пользуя инфу от Juras Pr. малость перекроил инициализацию для LS020. Хуже не стало, но желательно перепроверить //-- step 1 ------------ send(0xef00);//set bank 00h send(0xee0c); send(0x1b04); send(0xef90);//set bank 90h send(0x4a04); send(0x7f1f);//8 bit color send(0x4306);// del_us(2600);//~7ms //-- step 2 ------------ send(0x0a00);//X start send(0x0800);//Y start send(0x0baf);//X end send(0x0983);//Y end send(0x0500);//vertical send(0x0600);//RAM cursor Y=0 send(0x0700);//X=0 send(0x0080);//? send(0xefb0);//set bank b0h send(0x4902);//positive send(0xef00);//set bank 00h send(0x7f01); send(0xe276); send(0xe183); send(0x8001);// OSC on del_us(1800);//~5ms - end init //-- RAM to TFT -------- send(0xef90);//set bank 90 send(0x0000);// display RAM RS=1, CS распаян на GND, Reset - на RC. После подачи питания задержка 10ms Изменено 4 мая, 2009 пользователем bolt Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
shurila 0 4 мая, 2009 Опубликовано 4 мая, 2009 · Жалоба Немного не ясно какой должна быть фаза синхрон сигнала вродибы в любой работает... Эта инфа есть в Using_the_Siemens_S65_Display.pdf картинка из этого документа. Надо сделать так как на картинке, иначе могут быть казусы, ну например при изменении температуры или питания. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bolt 0 4 мая, 2009 Опубликовано 4 мая, 2009 (изменено) · Жалоба Глупость какая! Всегда CS глухо распаивал на всех LCD. Пока чип на шине один - харчами можно не перебирать. Аналогично и RS - пин считывается на последнем такте, но удобно выставить направление до передачи данных. Или извольте обосновать: ..могут быть казусы, ну например при изменении температуры или питания Изменено 4 мая, 2009 пользователем bolt Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
shurila 0 4 мая, 2009 Опубликовано 4 мая, 2009 · Жалоба Глупость какая! ... Вообще то речь шла о данных и клоке И если эту времянку не соблюсти, то тогда и проявляется "визит эффект" - вчера работало, а сегодня нет. Так что не разобравшись... не стОит... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Doniak 0 4 мая, 2009 Опубликовано 4 мая, 2009 · Жалоба Вообще то речь шла о данных и клоке И если эту времянку не соблюсти, то тогда и проявляется "визит эффект" - вчера работало, а сегодня нет. Так что не разобравшись... не стОит... Не бывало у вас такова что при иницыализацые дисплэй становился серым(тусклым), а при повторном запускался нормально? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
shurila 0 4 мая, 2009 Опубликовано 4 мая, 2009 · Жалоба Не бывало у вас такова что при иницыализацые дисплэй становился серым(тусклым), а при повторном запускался нормально? Да, было, да и к сожалению бывает. Но пока так и не понял где проблема. Т.е. понятно, что в инициализации проблема, но? что где портится не определил. Причем после изменения программы (в общем совсем другом месте, к инициализации не относящимся) дисплей начинает работать правильно или наоборот сбоит. Возможно каким то образом влияет оптимизация. :cranky: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bolt 0 4 мая, 2009 Опубликовано 4 мая, 2009 (изменено) · Жалоба что данные читаются по фронту CLK сообщается практически во всех dsh. С температурной компенсацией неправильная передача данных связи не имеет ;) Не бывало у вас такова что при иницыализацые дисплэй становился серым(тусклым), а при повторном запускался нормально? Если короткие задержки, то так и будет. Для LS020 они все могут быть по 10мс. Еще такой эффект можно получить поставив задержку до send(0xef90);//set bank 90h send(0x4a04); send(0x7f1f);//8 bit color send(0x4306);// хотя банк 90 к питанию, по идее, отношения не имеет. Изменено 4 мая, 2009 пользователем bolt Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Doniak 0 4 мая, 2009 Опубликовано 4 мая, 2009 (изменено) · Жалоба Если короткие задержки, то так и будет. Для LS020 они все могут быть по 10мс. между чем короткие задержки? Может причина в длине проводников от МК к дисплэю. Заметил такую закономерность если перегнуть шлейф дисплэй крайне редко запускается нормально,а если выпрямить то ровно через раз. При этом ево надо выключять програмно : lcd_comtype(0x0D); lcd_comdat(0x05,0x05); lcd_comtype(0x0E); lcd_comdat(0x1D,0x1F); lcd_comtype(0x03); lcd_comdat(0x00,0x00); Изменено 4 мая, 2009 пользователем Doniak Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bolt 0 4 мая, 2009 Опубликовано 4 мая, 2009 (изменено) · Жалоба между чем короткие задержки? Между установкой напряжения и следующей командой. В dsh который к сожалению для LR38826 отсутствует, все это расписано. В моей версии инициализации задержек три - после подачи питания, первого шага и запуска встроенного генератора. У Вас дисплей и так запускается через раз, что свидетельствует о багах программы или монтажа. Гляньте скопом сигналы на CLK & SDA. Изменено 4 мая, 2009 пользователем bolt Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Doniak 0 4 мая, 2009 Опубликовано 4 мая, 2009 (изменено) · Жалоба У Вас дисплей и так запускается через раз, что свидетельствует о багах программы или монтажа. Гляньте скопом сигналы на CLK & SDA. Запускается то он всегда, а вот "нормально" через раз. В тусклых тонах он работает медленно, цветопередача неправильная всё серым кажется. пробивал ставить задержки перед SPCK, между последовательными передачами, без результатно или вообще не запускается. Нужно будит еще попробовать задержку поменять между выбора микросхемы Изменено 4 мая, 2009 пользователем Doniak Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bolt 0 4 мая, 2009 Опубликовано 4 мая, 2009 (изменено) · Жалоба может это поможет send(0xef00);//bank PWR send(0xee0f);//Vlcd (contrast) send(0x1b04);//Boost Level? send(0xef90);//bank DC1 send(0x4a04);//bias (яркость) send(0x7f1f);//8 bit color send(0x4306);//V? del_us(2300);//10ms ...... send(0xef00);//bank PWR send(0x7f01);//Vsinc flag send(0xe276); send(0xe183); send(0x8001);//OSC on del_us(2300);//10ms - end init значения в 1b & 43 регистре как раз здорово влияют на цветопередачу. А CS можешь смело соединять с GND. Изменено 4 мая, 2009 пользователем bolt Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться