Карма: 4
Рейтинг сообщений: 16
Зарегистрирован: Пн мар 23, 2009 09:25:58 Сообщений: 651 Откуда: Самара
Рейтинг сообщения:0
Man писал(а):
По вашей ссылке нужно пройти регестрацию с одобрение админа=)
..."Для проверки написал программу со счетчиком, значение которого выводится в центре экрана, а по нажатию на кнопку, выводится 4 строки в разных местах."
Chip type : ATmega16 Program type : Application Clock frequency : 14,300000 MHz Memory model : Small External SRAM size : 0 Data Stack size : 256 *****************************************************/
// определение основных цветов // просто для удобства;) #define BLACK 0x0000 #define RED 0xf800 #define GREEN 0x07e0 #define BLUE 0x001f #define WHITE 0xffff
// цвет фона и текста по умолчанию unsigned int textcolor=GREEN; unsigned int bgcolor=0x0000;
// запись одного байта в дисплей void lcd_write8(char dat) { spi(dat); }
// запись двух байт void lcd_write(unsigned int dat) { lcd_write8(dat>>8); lcd_write8 (dat); }
// дергаем выводом CS для обозначения конца передачи данных void lcd_cspulse(void) { CS= 1; #asm("nop") CS= 0; }
// выбор регистра в контроллере дисплея void lcd_reg(char register_name) { lcd_write8(0x74); // стартовый байт на передачу команды lcd_write(register_name); lcd_cspulse(); }
// отправка двух байт в графическую память дисплея void lcd_dat8(char register_dat1, char register_dat2) { lcd_write8(0x76); // стартовый байт на запись данных lcd_write8(register_dat1); lcd_write8(register_dat2); lcd_cspulse();
}
// то же самое, но из 16-и битной переменной void lcd_dat(unsigned int data) { lcd_write8(0x76); // стартовый байт на запись данных lcd_write(data); lcd_cspulse(); }
for (h=0; h<CHAR_H; h++) // every column of the character { if (rot==1) ch=ascii_tab[ c-32 ][h]; else ch=ascii_tab[ c-32 ][CHAR_H-h-1];
mask=0x80; for (p=0; p<CHAR_W; p++) // write the pixels { if (ch&mask) { lcd_write(color); } else { lcd_write(bgcolor); } mask=mask/2; } // for p } CS= 1; // deselect display
}
// записать строку, начиная с координат x, y, цветом color и ориентацией orient // если orient=0, то горизонтально, если =1, то вертикально void put_string(unsigned char x, unsigned char y, char *str, unsigned int color, unsigned char orient) { j=0; while (j<strlen(str)) { put_char(x+j*CHAR_W,y,str[j],orient, color); // 0 deg. rotated j++; } }
interrupt [EXT_INT0] void ext_int0_isr(void) {
}
// прерывание INT1 // запись строк примера в дисплей interrupt [EXT_INT1] void ext_int1_isr(void) {
Здравствуйте гуру сименовых экранчиков!
Назрел такой вопросик экран сименся наш-то может работать с СПИ выше 33 мегагерц?
тогда получится супер скорость обновления и уйдут проблемы с контрастностью!!!
Теперь вопрос! Зачем насиловать микроконтроллер разгоняя его до 20-30 мегагерц? Ради того чтоб СПИ выплёвывался быстро? но ведь это же последовательный интерфейс!
почему бы не применить буферизацию?
собрать на примитивной логике(пару регистров сдвиговых счетчик с дешифратором и наверное пару корпусов логики) которая бы на любой частоте доступной логике(а для НСТ не предел и 60 мегагерц) шмалила б какой-то участочек памяти или вообще просто выгружала б линейку сдвиговых регистров! по окончании выплевывания микроконтроллер парралельно за 4-5 тактов загружает линейку сдвиговиков и снова начинается выгрузка этого потока данных на максимальной частоте СПИ!
Или другой вариант - выпаять из любого сидюка или винта микруху - буффер она обычно статичный рам из себя представляет на 2-8 мегабайт с прямой парралельной адресацией (хотя у меня валяется микруха на 96 килобайт - как раз то что нужно!!!)
далее на логике(ну или на маленькой дешевенькой ПЛИСинке) делаем генератор адреса последовательный от 0 до 72К и те 8 бит что получаем на выходе микрухи памяти выгоняем последовательно одним сдвиговиком с генератором и так по кругу пока не кончатся адреса потом МК уже сам генерируя адрес и данные пишет в память комманды которые необходимо послать в экран(выделение области 132х176) и потом данные о цвете каждой точки последовательно в 8-миьитном формате....заполнили память ПАРРАЛЕЛЬНЫЙ методом - снова запускаем логический выплевыватель этой РАМы в экранчик на максимальной частоте а сами тем временем сигнал оцифровываем и обрабатываем Кто что скажет по этому поводу?
_________________ Что нас не убило сделало нас осторожней Не доверяйте русским лужам - это может быть вход в метро.
Зарегистрирован: Пн мар 02, 2009 12:23:37 Сообщений: 169
Рейтинг сообщения:0
да буфер харошая весч но...
у меня дисплей на частоте spi 12 мгц вроде работал выше уже не хотел запускаться внимательней бы почитали в интрнете что в телефоне етот дисплей работает на 13 мгц
Пробовал я на vs1000 она может без пролемс работать на 48 мгц применить буфер можно при выводе видео а так не выжу смысла усложнять себе жызнь
не ну я имею ввиду то что авр-ке рамы-то маловато для этого экрана будет и скорости тоже....а так-всё решается Как бы на простой логике наверное выйдет очень много корпусов....а это уже помехи и т.д. а на плиске забабахать такое дело было бы очень интересно...
_________________ Что нас не убило сделало нас осторожней Не доверяйте русским лужам - это может быть вход в метро.
Карма: 46
Рейтинг сообщений: 590
Зарегистрирован: Вт май 19, 2009 09:27:30 Сообщений: 3258 Откуда: Украина
Рейтинг сообщения:0
Для ПЛИСки надо генератор тактирующий городить, или покупать готовый кварцевый генератор, или давать клоку с проца. А теперь вопрос $AVR+$ПЛИС=$ARM, или ARM всё таки дешевле?
а что общего имеет арм с плис-кой ?
и вообще плис тут как-бы вообще не особо и нужна - не такая уж и большая сложность - я просто предлагаю соорудить SPI буферизированную пушку с огроменной скоростью выплевывающую в экран тучу данных размером с весь экран а контроллер-то будет только с памятью общяться и снова таки в 8 раз быстрее ибо парралельный режим...в принципе можно подобное организовать парой корпусов программ логики типа gal16v8 и одним аналогом советского сдвиговика - ир 17 .... генератор? неужто с МК нельзя взять частоту? Да или просто напросто выпаять из любого старого компа-телефона-винта - видеокарты и т.д. собственно генераторный модуль с ТТЛ выходом? преимущества-то превалируют! в первую очередь это возможность READ-MODIFY-WRITE ну и в том же духе - МК удобен прост и изучен ему не хватает памяти и частоты СПИ - почему б нам это не модернизировать причем если на плис-ке то в принципе-то до беспредела хоть 400 мегагерц ))
_________________ Что нас не убило сделало нас осторожней Не доверяйте русским лужам - это может быть вход в метро.
clawham идея интересная Моглибы если несложно структурную схему набросать как на логике из паральлки в spi сделать ? логики много в наличии есть смысл попробать,плисин к сожелению нету только типо palce22v10,(pal20v10или8 точно непомню) pal16v8 .
только нужно будет организовать возможность отключения микросхемы памяти от этой схемы и подключения к шине МК - дабы модифицировать её....ну в общем чисто или наипримитивнейшая плисина но с тучей ног или на логике...
_________________ Что нас не убило сделало нас осторожней Не доверяйте русским лужам - это может быть вход в метро.
Карма: 46
Рейтинг сообщений: 590
Зарегистрирован: Вт май 19, 2009 09:27:30 Сообщений: 3258 Откуда: Украина
Рейтинг сообщения:0
Для непонятливых объясняю $AVR+$ПЛИС имелось ввиду суммарная стоимость АВРа и ПЛИСки. Насчёт памяти всего экрана явно будет круто, даже о%ительно, поскольку сама ПЛИСка потянет этак на $60-$80 или около этого. За 400 МГц даже не думай - это будет явно не по карману. Ты сам подумай 132х176х2Б=46464Б=371712б. Вот и посмотри сколько стоит такая ПЛИСина, которая вместит 400килобит. Но и хрен с ним, допустим купишь, а чем ты её BGAшную на плату посадишь? Так не лучше ли взять ARM с 64кБ памяти, который сам тебе в фоновом режиме будет скидывать в экран по прерываниям в то время пока ты на 55МГц чего-нибудь нарисуешь и всего за несчастных каких-нибудь $6-$8
Вы видите мою структурную схемку? видите там есть счетчик сдвиговый регистр делитель на 8, а ещё там надо линейка переключателей шины адреса и шины данных внешней памяти...память то стоит копейки если вообще ни со старых мамок-винтов-видюх выпаять!взять микроплиску на 512 ключиков да и будет счастье....хотя можно и просто обойтись внешним умножителем 16 мегагерц на 2 и сдвиговиком...и выгружать в целый порт сразу 8 мь бит данных(а никто не запрещает и 16(два порта) и потом дать разрешение генератору с сдвиговиком - пусть выпулят этот байт на высокой скорости а по окончании прерывание и новый байт в регистр
можно взять несколько регистров - линейку ...загружать их парралельно а потом выплевывать высокой тактовой - получится спи модулек с палралельной загрузкой но как по мне так лучше уже тогда внешняя память...незачем её организовывать в самой плисине её вентилями..это слишком дорого будет стоить вы правильно заметили!
в общем всёравно это риторика микроконтроллер всёравно слаб многомерно для этого экрана как ни крути с армами мне пока не светит работать...как и с плисинами больший интерес представляет контроллер для ноутбуковских панелей....но тут уже проще на ноутбуке же всё и сделать
_________________ Что нас не убило сделало нас осторожней Не доверяйте русским лужам - это может быть вход в метро.
Вот не пойму, чего вы добиваетесь.
Скорострельности ?
Ну так аппаратный SPI в атмелах работает на Fosc/2, в PIC-ах - на Fosc/4. Т.е. максимальная для этого дисплея скорость (12-13Мбит/с) достижима даже на номинальной для многих МК частоте. Ну, в крайнем случае, МК можно чуть разогнать.
Опять же, подгружать данные во внешнюю память все равно будет сам МК. Но за то время, пока он их "подгрузит", он же сам и сможет их выдать в SPI.
Да и вообще, пишите на асме. Тогда по-настоящему прочувствуете скорость железа )
Частота дисплея спокойно может перевалить за 33 мега! лично видел вживую на vs1101
дальше - частота мк 16 мег / 2 = 8 мег....из этих 8-ми мег только 4 будут результативными....4 мегабита в секунду!
а теперь берем парралельный весь порт а меги 16
полтора такта на изменение состояния, ещё такт на чтение
16/3=5,5 мегаБАЙТ в секунду!
во сколько раз круче?
а если внешнюю память организовать странично....пока выгружается первая половина - вторая рисуется МКшкой...модифицируется...это вполне ему под силу ибо спешить никуда не надо! гораздо больше времени процессорного экономится!
в принципе для армов всё то же самое реально только вот порт у него 32 бита....а следовательно при частоте 55 мегагерц получим 25 мегабит последовательных(3,125 мегабайт) или 55*4 = 220 мегабайт пиковой пропускной способности!!! разница-то есть?
помоему это и не может никак обсуждаться - любому устройству с графическим экраном и 24 битами на пикселю просто необходима внешняя память
конечно это слишком серьёзно для такого экранчика...он только по описаниям мне нравится 24 бита цвет 176х220 но....блин....качество этих цветов....кхм...мне собственно говоря не очень нравится ...
_________________ Что нас не убило сделало нас осторожней Не доверяйте русским лужам - это может быть вход в метро.
конечно это слишком серьёзно для такого экранчика...он только по описаниям мне нравится 24 бита цвет 176х220 но....блин....качество этих цветов....кхм...мне собственно говоря не очень нравится ...
Это вы про какой экранчик?
s65 - 176х132 16бит. хотелось бы поболе - как вы писали 176 на 220
Есть т.н. принцип разумной достаточности.
При 5,5 МБайт/сек на этом дисплее можно (теоретич) получить 100кадров/сек.
Но это напоминает МПХ диаметром в 10см. Круто, но куда его такой присунуть ???
У этого дисплея малая диагональ, большая зернистость и хреновая цветопередача, ничего кроме циферок/буковок/графиков он не способен нормально отобразить. Думаю, достаточно просто поиметь в руках сам телефон, чтобы в этом убедиться.
Да, но ключевая фраза была "нормально отобразить". К дважды пережатому видео при 176х132pix это вряд ли относится...
Согласен, динамика хорошая.
Только вряд ли она получена с помощью скорострельной ПЛИСины. Скорее всего, с SPI и теми же 12-13Мбс.
Или у вас самоцель - непременно забабахать на нем видеомонитор и обставить китайцев, готорые уже готовый 2,5-дюймовый продают за 25$ ? "Это вряд ли" (с)
Все, спорить больше не буду. Занимайтесь маниловщиной сами.
Карма: 46
Рейтинг сообщений: 590
Зарегистрирован: Вт май 19, 2009 09:27:30 Сообщений: 3258 Откуда: Украина
Рейтинг сообщения:0
Не хочу показаться особо навязчивым, но я уже приобрёл AT91SAM7S32 именно для этого экранчика, ибо ИМХО $крутойAVR+$ПЛИС(512macrosells)>>>$ARM. (Для непонятливых ещё раз $=цена)
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения