|
SED1335,PIC18F4550 и LCD320x240, разбираем по косточкам модуль SED1335.c |
|
|
|
Jan 25 2008, 21:00
|

Знающий
   
Группа: Свой
Сообщений: 507
Регистрация: 15-04-06
Из: Германия
Пользователь №: 16 143

|
Привет народ.Вот решил я слепить себе нечто из указанных в теме компонентов.Нарисовал и изготовил макетку, красиво всё распаял и написал из надёрганных в сети кусков маленькую програмку для управления ЖКИ. Вначале, после нудного изучения даташитов никак не мог инициализировать ЖКИ, но потом разобрался что к чему и наконец он начал подавать признаки жизни и засветился. Компилятор, который я пользую - CCS, имеет в своём составе файл SED1335.C , но как я не пытался приспособить его, так и не смог.Порывшись в сети,я нашёл другой файл с таким же названием, но вроде бы не для ПИКов, а для чего-то другого.Однако , слегка подшаманив его, я смог встроить его в прогу и он заставил таки выдавать на экран символы в текстовом режиме(даже с возможностью размещения в заданое место) и переключаться в графический режим. И на этом всё и закончилось. Все попытки нарисовать линию или круг или просто точку,несмотря на множество примеров, я так и не смог. Позаимствовав из старого файла процедуру
void glcd_pixel(int16 x, int16 y, int1 color) { int8 data; int16 addr; // Calculate the byte address containing the pixel addr = GLCD_GRAPHICS_ADDR + (GLCD_WIDTH/8 * y + x/8); // Read the byte of data at the address data = getData(addr); // Turn the pixel on or off if(color == ON) bit_set(data, 7 - x%8); else bit_clear(data, 7 - x%8); // Write the new data byte to display memory setData(addr, data); }
я попробовал нарисовать на экране пиксель, но он вроде как нарисовался но разместился не в тех координатах, которые я указывал.Как я понимаю, за размещение отвечает строка //GLCD_GRAPHICS_ADDR- нач. адрес- 1200, GLCD_WIDTH- кол во символов в строке- 320 addr = GLCD_GRAPHICS_ADDR + (GLCD_WIDTH/8 * y + x/8); Может кто из вас раскомментирует эту странную формулу и подправит её, если она неправильная.
Сообщение отредактировал andreichk - Jan 25 2008, 21:03
--------------------
|
|
|
|
|
 |
Ответов
(390 - 404)
|
Feb 1 2011, 04:55
|

Местный
  
Группа: Свой
Сообщений: 354
Регистрация: 11-02-10
Из: Ирбит
Пользователь №: 55 416

|
Цитата(andreichk @ Jan 20 2011, 15:45)  понятия не имею, в чём там проблема, полярность кондёров на микрухе не попутали? Сами ОУ может дохлые ? ПИК прошился? Экран светится, хоть что-нибудь на нём показывает? Опишите конкретнее, в чём проблемы? На -3 вольта , вместо -5, пока можно забить. Так, теперь всё по порядку. Долго молчал так как ждал когда мне почтой придёт новый дисплей. Осциллограф заработал. Для нормального получения отрицательного напряжения пришлось применить схему такую же как на сайте www.ulrichradig.de, там есть такой осциллограф AVR DSO, убрал с платы 7812 и 7660, но не знаю почему но прибор не работал до тех пор, пока я не ликвидировал с платы все 24C65. Также причиной того что ничего не было на дисплее это то, что я не на тот вывод подавал тактовую частоту на Микроконтроллер, но я чтото решил сделать как мне привычнее- применил кварцевый резонатор на 40 мгц, изменив чуть чуть конфигурацию перед прошивкой. Но я не знаю вот что: почему при работе довольно прилично греются АЦП?
--------------------
Нео, есть два способа попасть в матрицу...Либо интерфейсный кабель в затылок, либо силовой в жопу... (NO ® monitor.net.ru)
|
|
|
|
|
Feb 7 2011, 16:25
|
Частый гость
 
Группа: Свой
Сообщений: 166
Регистрация: 1-12-05
Из: Иркутск
Пользователь №: 11 630

|
Цитата(atmicandr1 @ Feb 1 2011, 12:55)  Но я не знаю вот что: почему при работе довольно прилично греются АЦП? таку нее потреблние 300мВт. Если нет хорошего теплоотвода по дорожкам и в комнате не +15 градусов, то ощущения тепла от нее должно быть я думаю
|
|
|
|
|
Feb 19 2011, 15:55
|
Группа: Новичок
Сообщений: 2
Регистрация: 19-02-11
Из: Украина
Пользователь №: 63 095

|
|
|
|
|
|
Feb 28 2011, 14:03
|
Группа: Новичок
Сообщений: 2
Регистрация: 19-02-11
Из: Украина
Пользователь №: 63 095

|
Спасибо за подсказку BG320240F из России везти сильно дорого  Попробую заменить его WG320240C0-TML-TZ#(контроллер подходит - клон 1335) О результатах обязательно отпишусь  , только вот значительные результаты будут не раньше лета
|
|
|
|
|
Mar 26 2011, 12:17
|

Знающий
   
Группа: Свой
Сообщений: 507
Регистрация: 15-04-06
Из: Германия
Пользователь №: 16 143

|
Немного обновил схему и печатную плату. Убрал лишние разьёмы, обозначил номиналы деталей, переразвёл разьём програмирования ПИКа под стандартный програматор. Надеюсь , всё правильно сделал. На схеме не рисовал разводку ICL7660, так как использовано стандартное подключение из даташитов, а также подключение собственно ЖКИ, так как возможны варианты, 1. со встроенным контроллером SED1335 и без него. В первом случае соеденение можно сделать, подпаяв разьём ЖКИ прямо к портам ПИКа. Во втором случае смотрите разводку на ваш дисплей и соеденяйте его, сравнивая с выводами SED1335 на ПП. Клавиатуру распаивайте как кому удобней.
--------------------
|
|
|
|
|
Mar 28 2011, 12:56
|
Группа: Новичок
Сообщений: 2
Регистрация: 28-03-11
Пользователь №: 63 938

|
Цитата(andreichk @ Mar 26 2011, 16:17)  1. со встроенным контроллером SED1335 и без него. Здраствуйте! Помогите! Подобрать LCD 320*240 Просто Я незнаю в чем разница: WB320240C0-FML-T#P WB320240C0-TFH-T#P WB320240C0-YGH-T#P WB320240D-YGH-T#P WG320240B0-TFH-TZ# WG320240C0-AFK-TZ# WG320240C0-TFH-TZ# WG320240C0-TML-TZ# WX320240A-NFG-NS WX320240A-NFH-NZS WX320240A-WFH-NZS# Datasheet смотрел! Спасибо! P.S к автору - а какой Вы использовали?
|
|
|
|
|
Mar 29 2011, 07:34
|

Знающий
   
Группа: Свой
Сообщений: 507
Регистрация: 15-04-06
Из: Германия
Пользователь №: 16 143

|
ссылки на даташиты в студию. или лень разобраться самому? расшифровка обозначений на стр.4 http://catalog.compel.ru/file/lcm/WINSTAR/...0C0-FML-T-P.pdfWB320240C0-FML-T#P , WB320240C0-FNL-T#P лучше всего подойдут или WB320240C0-WML-T#P , WB320240C0-WNL-T#P Ещё раз немного изменил топологию ПП и исходник для ПИКа, в основном по мелочи разные красявости.
--------------------
|
|
|
|
|
Apr 11 2011, 06:40
|
Группа: Новичок
Сообщений: 3
Регистрация: 28-08-06
Пользователь №: 19 893

|
Возникло несколько вопросов по структуре программы для МК: 1.цикл MAIN повторяется постояно? т.е. иницилизация всех портов и перефирии. Цитата void main() { setup_adc_ports(NO_ANALOGS|VSS_VDD); //setup_adc(ADC_OFF|ADC_TAD_MUL_0); setup_psp(PSP_DISABLED); setup_spi(SPI_SS_DISABLED); setup_wdt(WDT_OFF); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_8); //setup_timer_1(T1_INTERNAL|T1_DIV_BY_8); setup_timer_1(T1_DISABLED|T1_DIV_BY_1); //setup_timer_2(T2_DISABLED,0,1); setup_timer_3(T3_DISABLED|T3_DIV_BY_1); setup_comparator(NC_NC_NC_NC); setup_vref(FALSE); enable_interrupts(INT_RTCC); //enable_interrupts(INT_TIMER2); enable_interrupts(GLOBAL); //Setup_Oscillator parameter not selected from Intr Oscillotar Config tab oszillograf(); } 2. Не могу разобраться с фазой сигнала. Зачем она перевертывается на 180 и почему фронт рисуется на уменьшение, а спад на увиличение? 3. Процедура записи в ФИФО никак не контролируется. ФИФО ресетится перед чтением и подразумевается что перед чтением данных в буфере будет достаточно. Т.е. если захочется наблюдать частоту в единицы герц то это надо взять под контроль?
|
|
|
|
|
Apr 11 2011, 23:30
|

Знающий
   
Группа: Свой
Сообщений: 507
Регистрация: 15-04-06
Из: Германия
Пользователь №: 16 143

|
Решил вплотную заняться осциллографом и кардинально переделал весь проект. Поскольку никакими програмными ухищрениями так и не удалось добиться чёткой синхронизации сигнала, было принято решение применить аппаратную . Для этого в схему были внесены соответствующие изменения, а именно ,добавлен блок внешней синхронизации с отдельной регулировкой по каждому каналу. Я сам удивился, как чётко теперь стал синхронизироваться сигнал.С кодом как всегда помог Илья. Ему очередной  и Выкладываю исправленную печатную плату, схемы, код для ПИКа и прошивку для ПЛИС. Кстати диапазон частот расширился вниз и теперь он составляет от 13.1 миллисек на клетку до 0.4 микросек на клетку. То есть вместо прежних 8-и диапазонов, теперь 16. Код будет ещё модернизироваться, возможны ещё изменения или дополнения. ЗЫ. На новой ПП по моей ошибке произошло изменение назначения портов разрешения чтения ФИФО. Поэтому у кого старая ПП, то вам нужно либо исправить этот момент в коде либо поменять местами соответствующие провода , соеденяющие аналоговую плату с цифровой. Больше ошибок не замечено, скоп работает отлично. Приведенные в схеме номиналы резисторов и конденсаторов нормируют сигнал на один вольт на большую клетку. Поскольку на момент изготовления осн. ПП аппаратная синхронизация ещё не существовала в проекте, то этой части на ней нет. Думаю в ближайшее время нарисовать небольшую ПП( там всего-то три ОУ и несколько резисторов и конденсаторов.) Впрочем , каждый сможет это сделать и сам. Цитата(vovan_zh @ Apr 11 2011, 08:40)  Возникло несколько вопросов по структуре программы для МК: 1.цикл MAIN повторяется постояно? т.е. иницилизация всех портов и перефирии.
2. Не могу разобраться с фазой сигнала. Зачем она перевертывается на 180 и почему фронт рисуется на уменьшение, а спад на увиличение? 3. Процедура записи в ФИФО никак не контролируется. ФИФО ресетится перед чтением и подразумевается что перед чтением данных в буфере будет достаточно. Т.е. если захочется наблюдать частоту в единицы герц то это надо взять под контроль? 1. сами подумайте, зачем это делать? Там же другие процедуры и в них свои циклы. Вот в них и крутится всё постоянно. 2.потому что счёт координат в дисплее начинается с верхнего левого угла. вот и пришлось всё переворачивать, чтобы сигнал выглядел нормально, а не вверх тормашками. 3.да , именно так. ФИФО ёмкая и в неё всё успеет записаться. зызызыз. в новой схеме два раза обозначены входы синхр В. Разумеется, один из них синхр А.для компиляции файла ПЛИСки использовался Xilinx ISE Design Suite 13.1_1 . Скачать можно на тамошнем ФТП сервере.
--------------------
|
|
|
|
|
Apr 12 2011, 08:01
|

Местный
  
Группа: Свой
Сообщений: 354
Регистрация: 11-02-10
Из: Ирбит
Пользователь №: 55 416

|
Простите за то что переспрашиваю, но есть вопрос: если старая плата это та, которая была с кучей разъёмов, то из новых какая более правильная? Которая в топике 400 или 402? К старой плате подходят новые прошивки из 402 топика? Никаких дорожек не надо резать? Схема точно одинаковая для старой платы и для новой из топика 402, естественно без узла аппаратной синхронизации?, кстати без этого узла с прошивкой из топика 402 прибор будет работать? Просто я заказал ещё две платы и попасть впросак с новыми прошивками совсем не хочется. Ну и на последок, я очень рад что Вы отступились от своего принципа, когда Вы доработав файл старой печатной платы, сказали что типа всё надоело и не будете к этому прибору возвращаться, а по факту Вы с ним дальше решили работать. Две платы я заказал вот для чего: одну другу в подарок, вторую для радиокружка. Я в поросячем восторге от вашего решения о продолжении этого проекта.
Сообщение отредактировал atmicandr1 - Apr 12 2011, 08:27
--------------------
Нео, есть два способа попасть в матрицу...Либо интерфейсный кабель в затылок, либо силовой в жопу... (NO ® monitor.net.ru)
|
|
|
|
|
Apr 12 2011, 10:14
|

Знающий
   
Группа: Свой
Сообщений: 507
Регистрация: 15-04-06
Из: Германия
Пользователь №: 16 143

|
Цитата(atmicandr1 @ Apr 12 2011, 10:01)  Простите за то что переспрашиваю, но есть вопрос: если старая плата это та, которая была с кучей разъёмов, то из новых какая более правильная? Которая в топике 400 или 402? К старой плате подходят новые прошивки из 402 топика? Никаких дорожек не надо резать? Схема точно одинаковая для старой платы и для новой из топика 402, естественно без узла аппаратной синхронизации?, кстати без этого узла с прошивкой из топика 402 прибор будет работать? Просто я заказал ещё две платы и попасть впросак с новыми прошивками совсем не хочется. Ну и на последок, я очень рад что Вы отступились от своего принципа, когда Вы доработав файл старой печатной платы, сказали что типа всё надоело и не будете к этому прибору возвращаться, а по факту Вы с ним дальше решили работать. Две платы я заказал вот для чего: одну другу в подарок, вторую для радиокружка. Я в поросячем восторге от вашего решения о продолжении этого проекта. Старая, это та, которая с кучей разьёмов, а та , что в посте 400 и 402, совершенно одинаковые, то есть новые. К старой новая прошивка как раз не подойдёт, но адаптировать её к старой плате пара пустяков, надо будет только поменять местами порты READ ФИФО на это Код //-------------------------- #ifndef READ_FIFO_A #define READ_FIFO_A PIN_C2//чтение ФИФО. от пин36 к 18 ножке IDT7205 канал В #endif //-------------------------- #ifndef READ_FIFO_B #define READ_FIFO_B PIN_C1//чтение ФИФО. от пин35 к 18 ножке IDT7205 канал А #endif и в процедурах SCOP_A и SCOP_B также поменять вот эти части местами Код #asm BCF 0x0F8B,0//Output_bit(FIFO_RES ,0); //PIN_C0// сброс FIFO в "0" BSF 0x0F8B,0//Output_bit(FIFO_RES ,1); //PIN_C0// и разрешение на считывание BSF 0x0F8B,1//Output_bit(READ_FIFO_A ,1); //PIN_C1 запрет канала A #endasm
setCursorAddress(0x2581);// встанем в правильную позу0x2581 clear_graphic(); // и очистимся от грехов for(ever){ #asm BCF 0x0F8B,2//LATC2=0;//Output_bit(READ_FIFO_B ,0);//PIN_C2. разрешить #endasm y=240-input_b(); //чтение порта RВ и разворот на 180° по вертикали #asm BSF 0x0F8B,2//LATC2=1;//Output_bit(READ_FIFO_B ,1);//PIN_C2.запретить #endasm //.......................................................... и Код #asm BCF 0x0F8B,0 //Output_bit(FIFO_RES,0);//PIN_C0 сброс FIFO в "0" BSF 0x0F8B,0 //Output_bit(FIFO_RES,1);//PIN_C0 и разрешение на считывание BSF 0x0F8B,2 //Output_bit(READ_FIFO_B,1);//PIN_C2 запрет канала B #endasm if(res){ setCursorAddress(0x2581);// встанем в правильную позу clear_graphic();} // и очистимся от грехов for(ever){ #asm BCF 0x0F8B,1//LATC2=0;//Output_bit(READ_FIFO_A ,0);//PIN_C1. разрешить #endasm y=240-input_b(); //чтение порта В и разворот на 180° по вертикали #asm BSF 0x0F8B,1//LATC2=1;//Output_bit(READ_FIFO_A ,1);//PIN_C1.запретить #endasm //..........................................................
--------------------
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|