| Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
ARM7MODA - Запуск LCD в 4-bit mode на AT91SAM7S
31.01.2011, 12:40
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,613
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: ARM7MODA - Запуск LCD в 4-bit mode на AT91SAM7S
Сообщение от projects.org.ua
|
|
Люди, а какие вы используете значения посылаеммык данных комманд в инициализации, приведите плиз свои примеры?
|
Всю жизнь согласно даташитов.
|
|
|
|
31.01.2011, 14:35
|
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,102
Сказал спасибо: 113
Сказали Спасибо 860 раз(а) в 610 сообщении(ях)
|
Re: ARM7MODA - Запуск LCD в 4-bit mode на AT91SAM7S
Сообщение от projects.org.ua
|
|
Но в данном случае чтото похоже не так толи с инициализацией толи с функцией отправки даннык или команд
|
Такая разница во времянках навевает мысль, что причиной могут быть "висячие" неиспользуемые линии шины данных. Попробуйте подтянуть через сопротивления, фиг его знает что там с подтяжками в LCD при борьбе за "низкое потребление".
|
|
|
|
31.01.2011, 15:27
|
|
|
Заблокирован
Регистрация: 15.10.2010
Адрес: Kiev/Kharkov
Сообщений: 133
Сказал спасибо: 15
Сказали Спасибо 21 раз(а) в 21 сообщении(ях)
|
Re: ARM7MODA - Запуск LCD в 4-bit mode на AT91SAM7S
Сообщение от st_1
|
|
Такая разница во времянках навевает мысль, что причиной могут быть "висячие" неиспользуемые линии шины данных. Попробуйте подтянуть через сопротивления, фиг его знает что там с подтяжками в LCD при борьбе за "низкое потребление".
|
ага, такого я еще на этом индикаторе не пробовал, попробую, спасибо
хотя до этого, на болиминах, я их оставлял висеть в воздухе, все было ОК.
|
|
|
|
31.01.2011, 15:42
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
|
Re: ARM7MODA - Запуск LCD в 4-bit mode на AT91SAM7S
Очень странная инициализация. Обычно вначале пауза›=30 миллисекунд, затем выдается код работы с 4-х битной шиной 0x20, причем индикатор в это время работает еще с 8-ми битной, так что число строк и матрицу 5х8 надо задавать повторно, уже в 4-х битном режиме. Соответственно 0x20 стробируется один раз. У Вас тут не так - после команды Вы пытаетесь передать младшую тетраду. Делать этого не надо.
После паузы ›=250мкс нужно повторить эту команду уже с установленными битами кол-ва строк и типа матрицы ( 0x28 - 4-х битный режим, 2 строки, 5х8 ). Уже в 4-х битном режиме!
Дальше инициализация не отличается от 8-ми битного подключения(0x38,0x0C,0x06) Передаем 0x0C,0x06. Затем "по вкусу" - 0x01,0x02
Вообще программа непонятная. Что такое tick и udelay?
Последний раз редактировалось kison; 31.01.2011 в 15:48.
|
|
|
|
31.01.2011, 16:39
|
|
|
Заблокирован
Регистрация: 15.10.2010
Адрес: Kiev/Kharkov
Сообщений: 133
Сказал спасибо: 15
Сказали Спасибо 21 раз(а) в 21 сообщении(ях)
|
Re: ARM7MODA - Запуск LCD в 4-bit mode на AT91SAM7S
Сообщение от kison
|
Очень странная инициализация. Обычно вначале пауза›=30 миллисекунд, затем выдается код работы с 4-х битной шиной 0x20, причем индикатор в это время работает еще с 8-ми битной, так что число строк и матрицу 5х8 надо задавать повторно, уже в 4-х битном режиме. Соответственно 0x20 стробируется один раз. У Вас тут не так - после команды Вы пытаетесь передать младшую тетраду. Делать этого не надо.
После паузы ›=250мкс нужно повторить эту команду уже с установленными битами кол-ва строк и типа матрицы ( 0x28 - 4-х битный режим, 2 строки, 5х8 ). Уже в 4-х битном режиме!
Дальше инициализация не отличается от 8-ми битного подключения(0x38,0x0C,0x06) Передаем 0x0C,0x06. Затем "по вкусу" - 0x01,0x02
Вообще программа непонятная. Что такое tick и udelay?
|
перед инициализацие стоит задержка в пол секунды гдето, так что пауза там есть. Этот прикол я четко помню всегда.
kison, Вы не поверите возможно, но такая последовательность взята с даташита, именно с него родимого.
›› после команды Вы пытаетесь передать младшую тетраду
нет, передаю старшую.
››Вообще программа непонятная. Что такое tick и udelay?
tick - это задержка в тактах.
udelay - задержка в 0xffff тактов.
delay - задержка если верно помню в в 0xffffff тактов.
|
|
|
|
31.01.2011, 18:06
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
|
Re: ARM7MODA - Запуск LCD в 4-bit mode на AT91SAM7S
Сообщение от projects.org.ua
|
|
kison, Вы не поверите возможно, но такая последовательность взята с даташита, именно с него родимого.
|
C какого даташита? У производителя документации на модуль 1 страничка с размерами и распиновкой. Там же есть пример инициализации, ничего общего с Вашими действиями он не имеет - http://www.newtec.com.tw/technical/ks0066.txt
Он правда для 8-ми битной шины.
Вот возьмите старый добрый документ. Ему сто лет в обед, как впрочем и таким индикаторам. Однако пользуясь им у меня запускались ВСЕ дисплеи на hd44780/ks0066.
Почитайте про инициализацию 13стр.
|
|
|
|
31.01.2011, 18:12
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
|
Re: ARM7MODA - Запуск LCD в 4-bit mode на AT91SAM7S
Сообщение от projects.org.ua
|
|
нет, передаю старшую.
|
Можете откоментировать следующие строки:
|
Код:
|
delay();
tick(60*LCD_TIME); regs-›PIOA_ODSR |=_E; // E=1;
tick(60*LCD_TIME); regs-›PIOA_ODSR &= 0xffffff0f;
tick(1); regs-›PIOA_ODSR |= (0x20);
tick(60*LCD_TIME); regs-›PIOA_ODSR &=~_E; // E=0;
udelay();
tick(60*LCD_TIME); regs-›PIOA_ODSR |=_E; // E=1;
tick(60*LCD_TIME); regs-›PIOA_ODSR &= 0xffffff0f;
tick(1); regs-›PIOA_ODSR |= (0x80);
tick(60*LCD_TIME); regs-›PIOA_ODSR &=~_E; // E=0;
delay(); |
Что тут 0x20 и что тут 0x80.
С учетом того, что в момент записи 0x20 дисплей еще работает с 8-ми битной шиной.
И еще - почитайте про регистры PIO_SODR, PIO_CODR. А то все эти логические операции с портами выглядят забавно.
Последний раз редактировалось kison; 31.01.2011 в 18:30.
|
|
|
|
31.01.2011, 19:39
|
|
|
Заблокирован
Регистрация: 15.10.2010
Адрес: Kiev/Kharkov
Сообщений: 133
Сказал спасибо: 15
Сказали Спасибо 21 раз(а) в 21 сообщении(ях)
|
Re: ARM7MODA - Запуск LCD в 4-bit mode на AT91SAM7S
Сообщение от kison
|
Можете откоментировать следующие строки:
|
Код:
|
delay();
tick(60*LCD_TIME); regs-›PIOA_ODSR |=_E; // E=1;
tick(60*LCD_TIME); regs-›PIOA_ODSR &= 0xffffff0f;
tick(1); regs-›PIOA_ODSR |= (0x20);
tick(60*LCD_TIME); regs-›PIOA_ODSR &=~_E; // E=0;
udelay();
tick(60*LCD_TIME); regs-›PIOA_ODSR |=_E; // E=1;
tick(60*LCD_TIME); regs-›PIOA_ODSR &= 0xffffff0f;
tick(1); regs-›PIOA_ODSR |= (0x80);
tick(60*LCD_TIME); regs-›PIOA_ODSR &=~_E; // E=0;
delay(); |
Что тут 0x20 и что тут 0x80.
С учетом того, что в момент записи 0x20 дисплей еще работает с 8-ми битной шиной.
И еще - почитайте про регистры PIO_SODR, PIO_CODR. А то все эти логические операции с портами выглядят забавно.
|
Да kison, Возможно Вы правы - Спасибо!
попробую покапать в эту сторону.
про PIO_SODR, PIO_CODR я знаю прекрасно - я без них обхожусь что бы не создавать путаницу. И за скоростью не гонюсь в данном месте, то этому всякого рода оптимизации я отодвинул на второй план.
Последний раз редактировалось projects.org.ua; 01.02.2011 в 11:45.
|
|
|
|
01.02.2011, 11:59
|
|
|
Заблокирован
Регистрация: 15.10.2010
Адрес: Kiev/Kharkov
Сообщений: 133
Сказал спасибо: 15
Сказали Спасибо 21 раз(а) в 21 сообщении(ях)
|
Re: ARM7MODA - Запуск LCD в 4-bit mode на AT91SAM7S
Сообщение от kison
|
C какого даташита? У производителя документации на модуль 1 страничка с размерами и распиновкой. Там же есть пример инициализации, ничего общего с Вашими действиями он не имеет - http://www.newtec.com.tw/technical/ks0066.txt
Он правда для 8-ми битной шины.
Вот возьмите старый добрый документ. Ему сто лет в обед, как впрочем и таким индикаторам. Однако пользуясь им у меня запускались ВСЕ дисплеи на hd44780/ks0066.
Почитайте про инициализацию 13стр.
|
Угу, а вот и расхождение в этом документе нашлось, прежде всего между текстом и временной диаграммой, но главное не это
Главное, сразу увидил разницу.  
У меня в данном моем коде код для 4 битного режима был написан, согласно временной диаграмме для 8 битного. Это лажа, согласен. Сигнал E нужно передгивать на каждой тетраде.
И по сути то что у меня написано, это не решим записи, а решим стения...
А вот что тут написано словами - приатачил картинку, может кому пригодится...
ЁКЛМН, я этого не видел в родном даташите
буду исправлять как доберусь снова ))
Спасибо.
Последний раз редактировалось projects.org.ua; 01.02.2011 в 12:09.
|
|
|
|
09.02.2011, 14:13
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
|
Re: ARM7MODA - Запуск LCD в 4-bit mode на AT91SAM7S
Сообщение от projects.org.ua
|
|
Угу, а вот и расхождение в этом документе нашлось, прежде всего между текстом и временной диаграммой, но главное не это
|
Там просто опечатка. Установить Е=1, а сбросить У. Наверно пунтосвитчер шалил.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 22:14.
|
|