Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
02.03.2011, 16:37
|
|
Гражданин KAZUS.RU
Регистрация: 12.10.2009
Сообщений: 576
Сказал спасибо: 30
Сказали Спасибо 138 раз(а) в 110 сообщении(ях)
|
Re: Дисплеи от сотовых (схемы подключения, код, datasheet)
Сообщение от Alm604
|
В даташите на драйвер контроллера действительно указано:
SCL clock frequency 400KHz, но, когда я затактовал от заведомо большей частоты прошивку на асме, обновление экрана резко ускорилось.
|
Высокая частота клок дисплеям безразлична, в разумных пределах. Критичым параметром является задержка между командами при инициализации дислея. Вот на это следует обратить особое внимание. Некоторые команды выполняются долго, если следующая команда приходит слишком рано, дисплей не входит в режим или виснет. В первую очередь, надо смотреть время после снятия сигнала сброса до первой команды.
|
|
|
|
02.03.2011, 19:28
|
|
Частый гость
Регистрация: 23.01.2008
Сообщений: 42
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Дисплеи от сотовых (схемы подключения, код, datasheet)
To kison: Насчет ускорения работы - я просто пробовал насколько требователен дисплей к скорости протокола. Также пробовал и понижать частоту, всё работает.
To tanq: Задержки проверял, насколько позволят мой опыт. Увеличить, поставив задержку, - не вопрос. Только вот рассчитать ее точно не могу. Смотрел по даташиту, там ограничения в максимальном времени только на фронты и спады. Руководствуясь этим я значительно увеличивал тайминги задержек, состояний шин. Результат опять отрицательный. Я боюсь, что скоро у подопытной атмега8 закончатся циклы записи/стирания флеша ![Улыбка](images/smilies/icon_smile.gif) Пока работаю дальше. О продвижениях сообщу.
|
|
|
|
02.03.2011, 19:47
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Дисплеи от сотовых (схемы подключения, код, datasheet)
Сообщение от Alm604
|
Насчет ускорения работы - я просто пробовал насколько требователен дисплей к скорости протокола. Также пробовал и понижать частоту, всё работает.
|
Так работает или нет? Если да - в чем вопрос тогда? Или это о ассемблерной программе? Возьмите стандартную встроенную библиотеку в CV, запустите на ней. Когда заработает - исправляйте свою. То, что она работает с еепром не показатель ее безошибочнсти. Если даже Протеус ее не понимает, то в железе точно будет трабл.
|
|
|
|
02.03.2011, 19:59
|
|
Частый гость
Регистрация: 23.01.2008
Сообщений: 42
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Дисплеи от сотовых (схемы подключения, код, datasheet)
Чтоб Вас не мучить ещё раз:
Ассемблерная прошивка работает, причем на любых скоростях. Вообще не удавалось ее убить изменой фьюзов и внешнего тактового генератора. В саму прошивку я не лезу, не особо понимаю ассемблер. Но у меня есть листинг, по нему я смотрел что и когда выдается в шину.
Сделал свою прошивку на Си в кодевижене. Не работает никак. Ни при каких частотах, даже с вставкой задержек при выдаче сигналов на шину. О правильности своей прошивки судил, просмотрев дебаггером в протеусе вывод своей прошивки и ассемблерной. Вывод сигналов на шину был идентичным, то есть протеус не показывает никакой разницы в сигналах. (В данный момент просматриваю временные метки, добиваюсь полного сходства и в этом, но это будет долго). Вот примерно так.
Еще добавлю, что мне необходимо будет реализовать работу памяти и дисплея на одной и той же шине. В памяти будут храниться рисунки используемых символов. Но это в перспективе. Наброски есть, но сначала добьюсь работы дисплея.
Если кому-либо интересны исходники (хотя, кому они на фиг нужны нерабочие), могу раместить здесь.
|
|
|
|
03.03.2011, 00:07
|
|
Частый гость
Регистрация: 23.01.2008
Сообщений: 42
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Дисплеи от сотовых (схемы подключения, код, datasheet)
В общем, мои старания ни к чему не привели(. Решил вот опять воспользоваться советами более опытных людей. Выкладываю три рисунка. На первом схема, при помощи которой я тестировал протокол обмена аврки и дисплея. Здесь хорошо видно, что кроме дебаггера на шине никого нет. Дальше два рисунка с логами дебаггера. Возникли три вопроса:
В нерабочей прошивке ответа от ведомого нет, так как нет ведомого, откуда же ответы ACK от ведомого при использовании рабочей прошивки? Как я понимаю, отсюда:
cbi PORTB,data
sbi PORTB,clock //тактовый импульс
rcall delay_short
rcall delay_short
cbi PORTB,clock
(это кусок ассемблерного кода рабочей прошивки, который выполняется вслед за выдачей байта на шину)
И, судя по стандартам протокола I2C, подтверждение должен давать Slave а не Master. Изменил я свою программу, чтоб она тоже так подтверждала, но безрезультатно. Возможен ли косяк в указанном месте?
Второй вопрос: Тайминги хорошо видны на рисунках. Даташит оговаривает лишь минимальную ширину импульсов и максимальную ширину фронтов и спадов. Уменьшив ТАК сильно скорость мог ли я нарушить нормальную работу дисплея?
Ну и последний вопрос: Есть в кодевижене возможность вставки ассемблерного кода в основной код программы на Си. Может ли кто-нибудь помочь мне с этим делом, чтоб не париться и просто использовать заведомо рабочий код параллельно с моим кодом на Си?
Спасибо за ответы заранее.
|
|
|
|
03.03.2011, 02:51
|
|
Прописка
Регистрация: 21.09.2009
Сообщений: 218
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
|
Re: Дисплеи от сотовых (схемы подключения, код, datasheet)
Сообщение от Alm604
|
Возникли три вопроса:
В нерабочей прошивке ответа от ведомого нет, так как нет ведомого, откуда же ответы ACK от ведомого при использовании рабочей прошивки? Как я понимаю, отсюда:
cbi PORTB,data
sbi PORTB,clock //тактовый импульс
rcall delay_short
rcall delay_short
cbi PORTB,clock
(это кусок ассемблерного кода рабочей прошивки, который выполняется вслед за выдачей байта на шину)
И, судя по стандартам протокола I2C, подтверждение должен давать Slave а не Master
|
1) Увы, этот кусок неправильный. После 8-го строба вы должны освободить шину данных DATA командой "sbi PORTB,data" и выдать строб, а ваш дисплей должен выдать НОЛЬ на эту шину, т.е. ACK - подтверждение приёма. Ну и чтобы ACK посмотреть на шине данных, надо ногу DATA настроить на ввод, так будет правильнее.
Сообщение от Alm604
|
Второй вопрос: Тайминги хорошо видны на рисунках. Даташит оговаривает лишь минимальную ширину импульсов и максимальную ширину фронтов и спадов. Уменьшив ТАК сильно скорость мог ли я нарушить нормальную работу дисплея?
|
Нет, не могли, тут всё в порядке.
Сообщение от Alm604
|
последний вопрос: Есть в кодевижене возможность вставки ассемблерного кода в основной код программы на Си. Может ли кто-нибудь помочь мне с этим делом, чтоб не париться и просто использовать заведомо рабочий код параллельно с моим кодом на Си?
|
Давно не работал с CV, но думаю, что такая возможность имеется. CV немного кривоватый, и не всегда выдерживает стандарт си, поэтому позвольте вам порекомендовать перейти на WINAVR, там это точно есть. Код получается весьма компактный. Я написал некоторое количество ассемблерных подпрограмм и просто их вызываю из программы на си, очень удобно. Вот пример инициализации стандартного дисплея 2х16, подпрограммы command и data написаны на асме. Из флеши выбирается графика спецсимвола и заполняются две строки на экране
Код:
|
command(0x28); //2line x 16
command(0x80); //cursor at 0x00-1st line
command(0x40); //cgram=0
for(BYTE i=0;i‹8;i++)
{
symbol=pgm_read_byte(&square[i]);
data(symbol);
}
command(0x0C); //display on
command(0x80); //cursor at 0x00-1st line
for(BYTE i=0;i‹16;i++)
{
symbol=pgm_read_byte(&string1[i]);
data(symbol);
}
command(0xC0); //cursor at 0x40-2nd line
for(BYTE i=0;i‹16;i++)
{
symbol=pgm_read_byte(&string2[i]);
data(symbol);
} |
|
|
|
|
03.03.2011, 02:51
|
|
Частый гость
Регистрация: 22.06.2010
Сообщений: 14
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Дисплеи от сотовых (схемы подключения, код, datasheet)
Сообщение от Alm604
|
Пока также нифига. Там протокол под C115. И, похоже, контроллер от нее был указан. Попробовал с тем протоколом - 0. Код полистал, нашел, что стопы закомментированы, исправил - 0, протокол на свой поменял - 0, стопы опять убрал - 0. Терпение на исходе. Планирую программку написать, чтоб она по UART принимала код и отправляла на дисплей, сообщала какой участок кода проходит... Вечером займусь.
|
c C115 я давно справлся http://roboforum.ru/forum2/topic8703.html
а картинки выкладывал что и на этот дисплей нашол все что интересовало.... правда пришлось китайский учить и в сц производителя контроллера месаги катать... но главное что все получилось
Последний раз редактировалось skorpionm; 03.03.2011 в 02:57.
|
|
|
|
03.03.2011, 14:15
|
|
Частый гость
Регистрация: 23.01.2008
Сообщений: 42
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Дисплеи от сотовых (схемы подключения, код, datasheet)
Цитата:
|
1) Увы, этот кусок неправильный. После 8-го строба вы должны освободить шину данных DATA командой "sbi PORTB,data" и выдать строб, а ваш дисплей должен выдать НОЛЬ на эту шину, т.е. ACK - подтверждение приёма. Ну и чтобы ACK посмотреть на шине данных, надо ногу DATA настроить на ввод, так будет правильнее.
|
Так вот и я о чем. Я сделал правильно - но не работает. А ассемблерная прошивка делает неправильно - но работает. Вообще непонятно...
Цитата:
|
CV немного кривоватый, и не всегда выдерживает стандарт си, поэтому позвольте вам порекомендовать перейти на WINAVR, там это точно есть.
|
Да, в принципе, можно. Я вот выбрал CV, так как там программатор удобный для меня (железо - AVR910). И прошивается на ура. А hex мне без разницы где делать. Попробую WinAVR, спасибо.
Цитата:
|
правда пришлось китайский учить и в сц производителя контроллера месаги катать... но главное что все получилось
|
![Улыбка](images/smilies/icon_smile.gif) Чему только не приходится учиться, пока с этим ковыряемся. Но игра стоит свеч. Удобный дисплей за такую маленькую цену... Оно бы, в принципе, пофигу с какого телефона. Мне главное разобраться и опыт приобрести. Ну а раз уж есть ЭТА модель, то и буду мучиться с ней. Спасибо всем за советы. Как всегда, при достижении (или недостижении) результатов - отпишусь.
|
|
|
|
03.03.2011, 16:15
|
|
Прописка
Регистрация: 21.09.2009
Сообщений: 218
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
|
Re: Дисплеи от сотовых (схемы подключения, код, datasheet)
Сообщение от Alm604
|
Я вот выбрал CV, так как там программатор удобный для меня (железо - AVR910). И прошивается на ура. А hex мне без разницы где делать. Попробую WinAVR, спасибо.
|
В WinAVR с этим нет проблем, можно подключить произвольный внешний программатор.
Вы бы свой код (якобы неработающий) и ассемблерный (якобы работающий) показали, может что и подскажем.
|
|
|
|
03.03.2011, 16:42
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Дисплеи от сотовых (схемы подключения, код, datasheet)
Сообщение от Alm604
|
Так вот и я о чем. Я сделал правильно - но не работает. А ассемблерная прошивка делает неправильно - но работает. Вообще непонятно...
|
Снизьте скорость. Или продолжайте биться лбом о стену. ![Улыбка](images/smilies/icon_smile.gif) В ассемблерном варианте скорость в 8 раз ниже.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 20:15.
|
|