реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Пример для LPC2106, нужен пример для LPC2106
:OveR:
сообщение Jul 19 2006, 07:05
Сообщение #1





Группа: Новичок
Сообщений: 10
Регистрация: 26-02-06
Из: Россия, Москва
Пользователь №: 14 695



Господа, киньте, пожалуйста, примером на lpc2106 (на C или ASM) инициализации и работы с индикатором

Индикатор двухстрочный (типа мэлтовского MT16S2D), режим работы - 4-х битный.
Если что: overthrash (a) mail . ru


--------------------
// OveR
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 19 2006, 08:02
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(:OveR: @ Jul 19 2006, 10:05) *
.. киньте, пожалуйста, примером на lpc2106 (на C или ASM) инициализации и работы с индикатором

Пожалуйста, не сочтите за труд воспользоваться поиском. Даже на данном форуме Вы найдете не менее дюжины примеров подходящих под категорию просимого.
Другое дело, что все просмотренные в свое время мной представляют достаточно печальное зрелище :-(, но в определенных условиях с определенными ограничениями очевидно работоспособны.
Если Вам нужно не для "абы заработало", то рекомендую:
- изучить документацию на контроллер/контроллеры;
- просмотреть найденные исходники;
- попробовать написать свое в меру своего разумения и своих потребностей.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
:OveR:
сообщение Jul 19 2006, 09:50
Сообщение #3





Группа: Новичок
Сообщений: 10
Регистрация: 26-02-06
Из: Россия, Москва
Пользователь №: 14 695



Цитата(zltigo @ Jul 19 2006, 12:02) *
Пожалуйста, не сочтите за труд воспользоваться поиском. Даже на данном форуме Вы найдете не менее дюжины примеров подходящих под категорию просимого.
Другое дело, что все просмотренные в свое время мной представляют достаточно печальное зрелище :-(, но в определенных условиях с определенными ограничениями очевидно работоспособны.
Если Вам нужно не для "абы заработало", то рекомендую:
- изучить документацию на контроллер/контроллеры;
- просмотреть найденные исходники;
- попробовать написать свое в меру своего разумения и своих потребностей.

На данном форуме не нашел (может плохо искал, но комбинаций слов и поисковых фраз было больше двух десятков). Если Вы укажете поисковые фразы/слова, по которым найдутся примеры - буду премного благодарен.
Далее.
Описание индикатора и его контроллера посмотрел. Алгоритм инициализации есть (он и был до обращения сюда).
К сообщению прикрепил исходник. Код неоптимизирован, для простоты расписано как можно подробнее и проще. Буду благодарен, если кто-нибудь укажет в коде на ошибки (может вообще надо по-другому). =)

P.S. А такой же алгоритм (написанный в другом ассемблере, ессно) работает на msp430f149 и с индикатором MT-16S2D. А на lpc2106 индикатор ведет себя так: после включения на индикаторе высвечивается верхняя строка полностью (просто высвечены знакоместа сколько-то на сколько-то пикселей). И все. Перенос вызова подпрограмм в цикл (т.е. постоянное обновление на индикаторе символов в разных местах) результата не дал.
Прикрепленные файлы
Прикрепленный файл  main.txt ( 7.41 килобайт ) Кол-во скачиваний: 93
 


--------------------
// OveR
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 19 2006, 10:26
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(:OveR: @ Jul 19 2006, 12:50) *
Если Вы укажете поисковые фразы/слова, по которым найдутся примеры - буду премного благодарен.

"LCD" - все очень просто.

Кривой под LPC2016 конкретно :-)))) можете посмотреть на olimex.com в образчиках LPC-MT-2106


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jul 19 2006, 10:26
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(:OveR: @ Jul 19 2006, 12:50) *
P.S. А такой же алгоритм (написанный в другом ассемблере, ессно) работает на msp430f149 и с индикатором MT-16S2D. А на lpc2106 индикатор ведет себя так: после включения на индикаторе высвечивается верхняя строка полностью (просто высвечены знакоместа сколько-то на сколько-то пикселей). И все. Перенос вызова подпрограмм в цикл (т.е. постоянное обновление на индикаторе символов в разных местах) результата не дал.
Ой... ассемблер :-(
Ну симптомы явно указывают на неправильную инициализацию. Глянул инициализацию:
Код
    ldr r0,=ioset
    ldr    r2,=D45        // установка D4, D5
    str r2,[r0]

    stmfd    sp!,{r14}
    mov    r2,#0x200        // 43,4 мкс
    bl    pause
    ldmfd    sp!,{r14}

    ldr r0,=ioclr
    ldr    r2,=LCD_IOALL
    str r2,[r0]
Вижу выставление D4, D5, задержку и сброс всех ножек. Не вижу где здесь выставляется E. Вы пробоваали на симуляторе или в железе пошагово проходить и смотреть что ноги выставляются именно так как надо? После команд =D45 задержки есть, после остальных команд инициализации задержек нет. Индикатор не будет успевать.
Задержки 43 мкс при инициализации маловаты. Я делаю (взял в даташите, с тех пор кочуют из проекта в проект): перед началом инициализации 200мс, после первой и второй команд (0x03) по 50мс и после 0x02 200мс. Далее все задержки около 40 мкс.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
:OveR:
сообщение Jul 19 2006, 11:23
Сообщение #6





Группа: Новичок
Сообщений: 10
Регистрация: 26-02-06
Из: Россия, Москва
Пользователь №: 14 695



Цитата(zltigo @ Jul 19 2006, 14:26) *
Цитата(:OveR: @ Jul 19 2006, 12:50) *

Если Вы укажете поисковые фразы/слова, по которым найдутся примеры - буду премного благодарен.

"LCD" - все очень просто.

Кривой под LPC2016 конкретно :-)))) можете посмотреть на olimex.com в образчиках LPC-MT-2106


Спасибо, на олимексе.ком нарыл исходник на Си под IAR. Попробую переделать на ассемблере и под CrossWorks =)

Цитата(Сергей Борщ @ Jul 19 2006, 14:26) *
Вижу выставление D4, D5, задержку и сброс всех ножек. Не вижу где здесь выставляется E. Вы пробоваали на симуляторе или в железе пошагово проходить и смотреть что ноги выставляются именно так как надо? После команд =D45 задержки есть, после остальных команд инициализации задержек нет. Индикатор не будет успевать.
Задержки 43 мкс при инициализации маловаты. Я делаю (взял в даташите, с тех пор кочуют из проекта в проект): перед началом инициализации 200мс, после первой и второй команд (0x03) по 50мс и после 0x02 200мс. Далее все задержки около 40 мкс.


Сигналы на всех ножках есть, устанавливаются и сбрасываются как надо. Смотрел как на процессоре, так и непосредственно на индикаторной плате.
Про задержки понял, увеличу и воткну, где их не хватает biggrin.gif
А по поводу E.. В описании на индикатор не нашел упоминания о том, как себя должна вести ножка E (RW, RS и ноги данных). sad.gif


--------------------
// OveR
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jul 19 2006, 11:27
Сообщение #7


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Если не лень разбираться, то вот мой. На 60 МГц.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jul 19 2006, 12:03
Сообщение #8


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Там кстати ремарки не совпадают с реальной схемой. Это не моя библиотека. Я её под себя переделал. Её вроде бы rezident писал для MSP. А так как я ремарки обычно не пишу, то там остались старые. Но работает вроде идеально. Нужно только чтобы таймер 0 работал. По нему интервалы отсчитываются.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jul 19 2006, 13:54
Сообщение #9


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Забыл ашник добавить.
Никто главное не сказал и не завозмущался.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
Andrew2000
сообщение Jul 19 2006, 14:13
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 421
Регистрация: 25-12-04
Пользователь №: 1 675



Цитата(Сергей Борщ @ Jul 19 2006, 14:26) *
Я делаю (взял в даташите, с тех пор кочуют из проекта в проект): перед началом инициализации 200мс, после первой и второй команд (0x03) по 50мс и после 0x02 200мс. Далее все задержки около 40 мкс.

Я тоже такую информацию с какого-то ксерокса в 2000г выудил (другой документации по HD44780 тогда не было).
Но потом обнаружил, что, например, VFD от Futaba и Noritake (по функционалу полностью идентичные HD44780) вообще такой инициализации при включении не требуют - им тока надо дать "Display On".
А на указанной LCD и Powertip кто-нить проверял - инициализация (ну, кроме, есс-но перевода в 4-bit режим) нужна или так работают ?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jul 19 2006, 15:31
Сообщение #11


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(:OveR: @ Jul 19 2006, 14:23) *
Сигналы на всех ножках есть, устанавливаются и сбрасываются как надо. Смотрел как на процессоре, так и непосредственно на индикаторной плате.
Тогда исходник не весь, я не вижу команд дерганья строба (E). Если он не дергается, значит не на всех ножках сигналы есть.
Цитата(:OveR: @ Jul 19 2006, 14:23) *
А по поводу E.. В описании на индикатор не нашел упоминания о том, как себя должна вести ножка E (RW, RS и ноги данных). sad.gif
Сорри, а как же тогда работал упоминавшийся исходник на MSP430F149? Как это не нашли в описании? А диаграмы смотрели? На E нужно подавать импульс на каждую команду. Как же иначе индикатор поймет, что именно эта комбинация и есть данные индикатору а не кому-то другому или мусор на шине?

Цитата(Andrew2000 @ Jul 19 2006, 17:13) *
А на указанной LCD и Powertip кто-нить проверял - инициализация (ну, кроме, есс-но перевода в 4-bit режим) нужна или так работают ?
Суда по тому, что при подаче питания он высвечивает верхнюю полосу (как и Powertip и вообще все которые попадались алфавитно-цифровые ЖКИ) инициализация все же требуется.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
rezident
сообщение Jul 19 2006, 15:38
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Ну ты, GetSmart, даешь! Хоть бы причесал мои черновики прежде, чем выкладывать на публику. rolleyes.gif Вроде этот исходник вполне рабочий. По крайней мере проверялся на MSP430F149 с WH1602B (WinStar) и VC16X2A (WizeTip).
P.S. еще вспомнил, что проверял его на 4-х строчном PC1604A от PowerTip, правда только на две строки. Тоже работает.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 19 2006, 16:15
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(:OveR: @ Jul 19 2006, 14:23) *
Спасибо, на олимексе.ком нарыл исходник на Си под IAR. Попробую переделать на ассемблере и под CrossWorks =)

1. Он, как я уже писал, совсем не образец для подражания.
2. Писать на ASM для АRMов работу с безмерно тормозными вещами типа помянутого LCD, неумно.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 23:54
Рейтинг@Mail.ru


Страница сгенерированна за 0.01464 секунд с 7
ELECTRONIX ©2004-2016