|
|
  |
LPC2478 подлючение TFT |
|
|
|
Oct 13 2010, 15:13
|
Местный
  
Группа: Свой
Сообщений: 231
Регистрация: 7-12-06
Из: Киев
Пользователь №: 23 248

|
Цитата(yarunt @ Oct 13 2010, 17:59)  Есть LPC2478 но пока нет дисплея, после инициализации железа, на цвет 565 и 320*240 пытаюсь померить хоть какие нибудь импульсы строчные и кадровые, полный ноль . Вот сам вопрос ,может дисплей должен генерировать сам синхронизацию для контроллера,если да то на какие входы LPC их подавать? дисплей это полностью ведомое устройство и не генерит никаких сигналов Вы порты настроили для работы с TFT?
|
|
|
|
|
Oct 13 2010, 17:31
|
Частый гость
 
Группа: Участник
Сообщений: 161
Регистрация: 22-06-09
Из: Москва
Пользователь №: 50 531

|
1. А память внешняя есть? И сколько? Если есть пишите в личку скину рабочий HEX c инициализацией. Наверное и без внешней памяти импульсы будут. Кейл не использую. 2. А так самое тяжелое распаять разъем для шлейфа. КТЦ-МК продавала ТФТ со своим шлейфом шагом 2.5мм. Я не покупал.
--------------------
Ты можешь знать все что угодно, но пока ты не доказал это на практике, ты не знаешь ничего!© Ричард Бах
|
|
|
|
|
Oct 14 2010, 04:50
|
Частый гость
 
Группа: Участник
Сообщений: 161
Регистрация: 22-06-09
Из: Москва
Пользователь №: 50 531

|
Цитата(yarunt @ Oct 13 2010, 22:39)  закоментил включая стартап Стартап нельзя комментить, там инициализация стеков, запуск прерываний, без PLL Ваш процессор работает на частоте 12 МГц ни один дисплей не запустится. Я работаю в Rowley CrossWorks, у Кейла другие имена каждого регистра и другой вход в прерывания. Выбор среды программирования не очень важен, разница в пределах наглости рекламы, но если уже что-то написано менять среду неприятно. Вам надо найти любой рабочий проект в любой среде программирования и постепенно модифицировать его под себя. Сначала напишите обмен через COM чтобы через терминал управлять процессором и чтобы он сообщал Вам о своих проблемах. Не бойтесь убить процессор - он очень живучий.
--------------------
Ты можешь знать все что угодно, но пока ты не доказал это на практике, ты не знаешь ничего!© Ричард Бах
|
|
|
|
|
Oct 14 2010, 11:32
|

Местный
  
Группа: Участник
Сообщений: 215
Регистрация: 13-12-06
Из: fghgfh
Пользователь №: 23 476

|
Цитата(SPACUM @ Oct 14 2010, 07:50)  Стартап нельзя комментить, там инициализация стеков, запуск прерываний, без PLL Ваш процессор работает на частоте 12 МГц ни один дисплей не запустится. Я работаю в Rowley CrossWorks, у Кейла другие имена каждого регистра и другой вход в прерывания. Выбор среды программирования не очень важен, разница в пределах наглости рекламы, но если уже что-то написано менять среду неприятно. Вам надо найти любой рабочий проект в любой среде программирования и постепенно модифицировать его под себя. Сначала напишите обмен через COM чтобы через терминал управлять процессором и чтобы он сообщал Вам о своих проблемах. Не бойтесь убить процессор - он очень живучий. Разобрался в чем проблема,почему то не стартует мк после прошивки. Когда передергиваю питание запускается тактирование пикселей ,строчной и кадровой развертки нет. Нашел хекс с отладочной TE-LCD5.6 и он работает. А код нет,может еще что-то нужно добавить? Код void LCD_Initialize(){
#define LCD_BUFFER0_BASE_ADDR 0x1000 long i=0; static long _lcd_buffer = LCD_BUFFER0_BASE_ADDR;
LCD_CFG = 0 << LCD_CFG_CLKDIV; LCD_TIMH = (134 << LCD_TIMH_HBP) | (16 << LCD_TIMH_HFP) | (10 << LCD_TIMH_HSW) | ((640 / 16 - 1) << LCD_TIMH_PPL); LCD_TIMV = (11 << LCD_TIMV_VBP) | (32 << LCD_TIMV_VFP) | (2 << LCD_TIMV_VSW) | (480 << LCD_TIMV_LPP); LCD_POL = (0 << LCD_POL_PCD_HI) | (0 << LCD_POL_BCD) | ((640 / 1 - 1) << LCD_POL_CPL) | (0 << LCD_POL_IOE) | (0 << LCD_POL_IPC) | (1 << LCD_POL_IHS) | (1 << LCD_POL_IVS) | (0 << LCD_POL_ACB) | (0 << LCD_POL_CLKSEL) | (2 << LCD_POL_PCD_LO); LCD_CTRL = (0 << LCD_CTRL_WATERMARK) | (0 << LCD_CTRL_LcdVComp) | (0 << LCD_CTRL_LcdPwr) | (0 << LCD_CTRL_BEPO) | (0 << LCD_CTRL_BEBO) | (1 << LCD_CTRL_BGR) | (0 << LCD_CTRL_LcdDual) | (0 << LCD_CTRL_LcdMono8) | (1 << LCD_CTRL_LcdTFT) | (0 << LCD_CTRL_LcdBW) | (6 << LCD_CTRL_LcdBpp) | (0 << LCD_CTRL_LcdEn); LCD_UPBASE = _lcd_buffer; LCD_LPBASE = _lcd_buffer;
for(i = 0; i < 100000; i++); LCD_CTRL |= (1 << LCD_CTRL_LcdEn); for(i = 0; i < 100000; i++); LCD_CTRL |= (1 << LCD_CTRL_LcdPwr);
}
--------------------
|
|
|
|
|
Oct 14 2010, 16:14
|
Частый гость
 
Группа: Участник
Сообщений: 161
Регистрация: 22-06-09
Из: Москва
Пользователь №: 50 531

|
Цитата(yarunt @ Oct 14 2010, 15:32)  может еще что-то нужно добавить? 1. В моем стартапе есть строки reset_handler_address: #ifdef STARTUP_FROM_RESET .word reset_handler #else .word reset_wait #endif Так нужно вставить в начале строку #define STARTUP_FROM_RESET 2, Нужно проверить, что после инициализации запускается main 3. А чем прошиваете? Устройство производит сброс после прошивки? Мне как-то пришлось заменить резисторы в JTAGе чтобы сбрасывающий транзистор лучше открывался. "#define LCD_BUFFER0_BASE_ADDR 0x1000" - ??? Наверное SRAM начинается с 0x40000000 и кончается 0x40005FFF, кроме экрана там еще должны быть переменные, стеки....
Сообщение отредактировал SPACUM - Oct 14 2010, 16:33
--------------------
Ты можешь знать все что угодно, но пока ты не доказал это на практике, ты не знаешь ничего!© Ричард Бах
|
|
|
|
|
Oct 14 2010, 16:55
|

Местный
  
Группа: Участник
Сообщений: 215
Регистрация: 13-12-06
Из: fghgfh
Пользователь №: 23 476

|
Цитата(SPACUM @ Oct 14 2010, 19:14)  "#define LCD_BUFFER0_BASE_ADDR 0x1000" - ??? Наверное SRAM начинается с 0x40000000 и кончается 0x40005FFF, кроме экрана там еще должны быть переменные, стеки.... Я понимаю просто думал мусор в порт дисплея таким методом выводить. Во общем заработало, просто взял проект перелопатил в Кейл. Кадры и строки появились теперь разбираюсь с форматом развертки. LCD_TIMH_HBP я так понял прямая длительность прорисовки строки, LCD_TIMH_HFP сдвигает картинку влево право, LCD_TIMH_HSW импульс синхронизации? По поводу запуска, отлаживаю мт-линком, пошагово отладчик шагает , но на ножках ничего не происходит. Отладка получается невозможной так-как отладчик ругается на передернутое питание.
--------------------
|
|
|
|
|
Oct 14 2010, 17:53
|
Частый гость
 
Группа: Участник
Сообщений: 161
Регистрация: 22-06-09
Из: Москва
Пользователь №: 50 531

|
Цитата(yarunt @ Oct 14 2010, 20:55)  отладчик ругается на передернутое питание. Мне помогла строчка #define STARTUP_FROM_RESET тоже с выключения работал а с ресета от JTAGa нет. Я использую JTAG через порт принтера и быстро и никаких проблем. А с выходом на дисплей никаких проблем не было, устанавливал требуемый формат и все работало, чем выше частота кадров тем меньше дрожит картинка.
Сообщение отредактировал SPACUM - Oct 14 2010, 18:05
--------------------
Ты можешь знать все что угодно, но пока ты не доказал это на практике, ты не знаешь ничего!© Ричард Бах
|
|
|
|
|
Oct 15 2010, 19:15
|

Местный
  
Группа: Участник
Сообщений: 215
Регистрация: 13-12-06
Из: fghgfh
Пользователь №: 23 476

|
Цитата(SPACUM @ Oct 14 2010, 20:53)  Мне помогла строчка #define STARTUP_FROM_RESET тоже с выключения работал а с ресета от JTAGa нет.
Я использую JTAG через порт принтера и быстро и никаких проблем.
А с выходом на дисплей никаких проблем не было, устанавливал требуемый формат и все работало, чем выше частота кадров тем меньше дрожит картинка. Разобрался почему не работает развертка, если адрес картинки ниже 0х80000000 то развертка уходит в ступор. А с подвисанием процессора была проблема в том что пин DBGEN не подтянул на землю. Спасибо за помощь!
--------------------
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|