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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> HD44780
_Макс
сообщение Jun 8 2010, 22:07
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 691
Регистрация: 24-05-07
Пользователь №: 27 945



После подачи трех посылок 0x30 в 8ми битном режиме по четырем проводам, без проверки BF с выдержкой пауз, BF=1. Что делать? Программа работает правильно, проверено пошагово в отладчике + мультиметр, к сожалению логического анализатора нет.

Сообщение отредактировал _Макс - Jun 8 2010, 22:08
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Jun 9 2010, 07:30
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Код
static void
ws1602_wrcmd_nowait(
    uint_fast8_t v)
{
    enum { as = 0 };
    _delay_ms(20);        // 4.1 ms in examples from ATMEL

    ws1602_to_write(as);

    ws1602_send4_high(v);
    ws1602_pulse_strobe();

    _delay_ms(20);        // 4.1 ms in examples from ATMEL

    ws1602_send4_low(v);
    ws1602_pulse_strobe();

    ws1602_to_read(0);    // as=0: status register will be read - initial state
}


...
    // switch interface to 4-bit wide mode
    ws1602_wrcmd_nowait(0x33);
    ws1602_wrcmd_nowait(0x32);

    ws1602_wrcmd(0x28);        // two lines

    ws1602_wrcmd(0x0c);       // ВКЛ.LCD , КУРСОР ОТКЛ., МИГАНИЕ КУРС. ОТКЛ.
    ws1602_wrcmd(0x06);        // автомат перемещение курсора вправо



Перевожу: в Вашем случае надо переслать три знаяения 0x30 и одно 0x20.
Да, для проверки BF надо читать два ниббла (старшие 4 бита, затем младшие). Потом анализировать.

Сообщение отредактировал Genadi Zawidowski - Jun 9 2010, 07:32
Go to the top of the page
 
+Quote Post
_Макс
сообщение Jun 9 2010, 09:03
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 691
Регистрация: 24-05-07
Пользователь №: 27 945



Цитата(Genadi Zawidowski @ Jun 9 2010, 10:30) *
Перевожу: в Вашем случае надо переслать три значения 0x30 и одно 0x20.
Да, для проверки BF надо читать два ниббла (старшие 4 бита, затем младшие). Потом анализировать.

Пишу под ARM свой драйвер, поэтому приведенный код не особо понятен.
Что значит два ниббла? В даташите говорится только про DB7 он и есть BF, предварительно нужно устанавливать RS=L, RW=H. И для записи 0x20 (четвертым шагом) нужно проверять BF, до этого шага у меня не доходит поскольку BF остается высоким.

Сообщение отредактировал _Макс - Jun 9 2010, 09:45
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Jun 9 2010, 10:28
Сообщение #4


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



[attachment=44896:TC1_Jun_09_2010.zip]Два ниббла - означает, что чтение статуса по четырёхбитной шине возвращает 8 бтит регистра состояния за два приёма - старшие четыре бита и младшие. Кроме BF там ещё данные лежат.

В аттачменте документ, в котором явно про это говорится и приведена инициализационная последовательность, переключающая как раз в четырёхбитный режим интерфейс - 2 это как раз команда переключения в 4-х битный режим. А 33 передаются для того, чтобы при любом предшествующем состоянии контроллера индикатора (8 или 4 бита) он точно воспринял команду.

Код моего проекта для ARM AT91SAM7Sxxx в аттачмете. Работа с дисплеем в файле hd44780.c

Сами представьте себе - идут чтения регистра статуса в 4-х битном режиме. Контроллер дисплея отдаёт по "половинкам". Первое чтение даёт старшую половину и BF. Проверяете и повторяете чтение - а контроллер отдаёт младшую половину - а Вы интерпретируете опть как статус!

Проверил вот такой вариант инициализации:

Код
    ws1602_io_initialize();


    _delay_ms(20);        /* 40 ms needed for Vcc = 2.7 V */
    _delay_ms(20);

    // switch interface to 4-bit wide mode
    ws1602_wrcmd_nowait(0x33);
    ws1602_wrcmd_nowait(0x33);
    //ws1602_wrcmd_nowait(0x32);

    _delay_ms(20);        // 4.1 ms in examples from ATMEL
    ws1602_wrcmd(0x20);

    ws1602_wrcmd(0x28);        // two lines

    ws1602_wrcmd(0x0c);       // ВКЛ.LCD , КУРСОР ОТКЛ., МИГАНИЕ КУРС. ОТКЛ.
    ws1602_wrcmd(0x06);        // автомат перемещение курсора вправо


Работает!

Сообщение отредактировал Genadi Zawidowski - Jun 9 2010, 11:17
Go to the top of the page
 
+Quote Post
_Макс
сообщение Jun 13 2010, 13:22
Сообщение #5


Знающий
****

Группа: Участник
Сообщений: 691
Регистрация: 24-05-07
Пользователь №: 27 945



Взял последовательность инициализации из даташита по дисплею:
Без BF 8-бит:
0x20
Без BF 4-бита:
0x2C
Ждем 1мс
0x0F
Ждем 1ms
0x01
Ждем 2ms
BF 4-бита:
/* Дальше не идет, проверка BF в четырех битном режиме отдает FF */
0x06
0x88 (устанавливаем курсор в надежде что-то увидеть)

Проверял мультиметром пошагово, действительно обе половинки F.

Сообщение отредактировал _Макс - Jun 13 2010, 13:23
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Jun 13 2010, 13:32
Сообщение #6


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



_Макс, выложите сюда Ваш даташит на контроллер. Очень интересно глянуть.
Комментарии к тому даташиту, что я выложил:
Выдача кодов 33 в нчале - гарантированно из любого предшествовавшего состояния и при любой шине (8 или 4) переводит в 8-ми битный режим. Далоее 20- перевод в 4 бита.
Из любого предшествовавшего состояния может произойти например при отладке... Вы же не всегда передёргтиваете питание контроллера?

По вашему коду вопрос - выложите сюда текст программы. Я посмотрю, поправлю если смогу - выложу обратно. данный момент есть плата с подключенным индикатором.

Сообщение отредактировал Genadi Zawidowski - Jun 13 2010, 14:20
Go to the top of the page
 
+Quote Post
_Макс
сообщение Jun 13 2010, 13:51
Сообщение #7


Знающий
****

Группа: Участник
Сообщений: 691
Регистрация: 24-05-07
Пользователь №: 27 945



Спасибо, но я не могу выкладывать программу в публичный доступ, даже если она не работает) К тому же контроллер у меня ARM CM3, вряд ли у вас такой же.

Сообщение отредактировал _Макс - Jun 13 2010, 14:05
Прикрепленные файлы
Прикрепленный файл  WH2004A_YYK_CT.pdf ( 456.65 килобайт ) Кол-во скачиваний: 29
Прикрепленный файл  KS0066.pdf ( 528.54 килобайт ) Кол-во скачиваний: 29
 
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jun 13 2010, 14:04
Сообщение #8


Гуру
******

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



Цитата(_Макс @ Jun 13 2010, 15:51) *
Спасибо, но я не могу выкладывать программу в публичный доступ, даже если она не работает

Ой, а может тогда удалить эту тему, дабы режим секретности не нарушать? Тем более, что тема абсолютно "дежурная" и таких тем на этом форуме уже не менее сотни. Может поиском для начала воспользуетесь? Дабы не разводить гадание на кофейной гуще.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
_Макс
сообщение Jun 13 2010, 14:06
Сообщение #9


Знающий
****

Группа: Участник
Сообщений: 691
Регистрация: 24-05-07
Пользователь №: 27 945



Цитата(zltigo @ Jun 13 2010, 17:04) *
Ой, а может тогда удалить эту тему, дабы секретность не пострадала? Тем более, что тема абсолютно "дежурная" и таких тем на этом форуме уже не менее сотни. Может поиском для начала воспользуетесь? Дабы не разводить гадание на кофейной гуще.

Поиском пользовался, не помогло. Благодарю за понимание.

Сообщение отредактировал _Макс - Jun 13 2010, 14:06
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Jun 13 2010, 14:13
Сообщение #10


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Что с питанием дисплея (3.3 или 5) - по даташтту ли?
Если секретно показать свою - что мешает взять рабочий код (например мой)?
Скорее всего у вас не перепрограммируется на вход шина. Или перепрограммируется всё, включая управляющие биты.
Что за такой поцессор СМ3? Полное имя не секретно?
Мне лично вмё равно, на каком процессоре - язык С вроде не отменяли...

Сообщение отредактировал Genadi Zawidowski - Jun 13 2010, 14:14
Go to the top of the page
 
+Quote Post
_Макс
сообщение Jun 13 2010, 14:34
Сообщение #11


Знающий
****

Группа: Участник
Сообщений: 691
Регистрация: 24-05-07
Пользователь №: 27 945



Цитата(Genadi Zawidowski @ Jun 13 2010, 17:13) *
Что с питанием дисплея (3.3 или 5) - по даташтту ли?
Если секретно показать свою - что мешает взять рабочий код (например мой)?
Скорее всего у вас не перепрограммируется на вход шина. Или перепрограммируется всё, включая управляющие биты.
Что за такой поцессор СМ3? Полное имя не секретно?
Мне лично вмё равно, на каком процессоре - язык С вроде не отменяли...

STM32, питание 5V. Для перепрограммирования на вход вызывается соответствующая функция, в IDR видны единички соответствующие определенным пинам, по мультиметру так и есть. Получается LCD не подтягивает ни одну линию от того 0xFF. Думаю уже может он мертв.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jun 13 2010, 14:35
Сообщение #12


Гуру
******

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



Цитата(_Макс @ Jun 13 2010, 16:06) *
Поиском пользовался, не помогло.

Если пользовались поиском, то нашли, как минимум, родной хитачевский, а не непонятные китаские перепевки, мануал. Если и его прочитав не поняли, то ... либо воспользуйтесь любезным предложением Genadi Zawidowski вычитать Ваш исходник, либо хватит вести беспредметные разговоры на избитую тему.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
_Макс
сообщение Jun 13 2010, 14:59
Сообщение #13


Знающий
****

Группа: Участник
Сообщений: 691
Регистрация: 24-05-07
Пользователь №: 27 945



Рискну. Исходники в приложении. Спасибо!

Сообщение отредактировал _Макс - Jun 13 2010, 15:00
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Jun 13 2010, 15:00
Сообщение #14


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Да, насчёт чтения BF в четырёхбитном режиме в самсунговском файле на странице 19 есть рисунок 5. Там как раз нарисовано чтение регистра состояния за два приёма - по четыре бита.

Полное название STM32 c 5 вольт питанием можно?
Go to the top of the page
 
+Quote Post
_Макс
сообщение Jun 13 2010, 15:03
Сообщение #15


Знающий
****

Группа: Участник
Сообщений: 691
Регистрация: 24-05-07
Пользователь №: 27 945



Цитата(Genadi Zawidowski @ Jun 13 2010, 18:00) *
Да, насчёт чтения BF в четырёхбитном режиме в самсунговском файле на странице 19 есть рисунок 5. Там как раз нарисовано чтение регистра состояния за два приёма - по четыре бита.

Полное название STM32 c 5 вольт питанием можно?

Да, там в два приема при 4х битном режиме все читается. Исходники выложил, посмотрите пожалуйста.
STM32F107 питание у него 3.3V работает с открытым стоком на подтяжки к 5V. Порты five voltage tolerant.
Go to the top of the page
 
+Quote Post

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

 


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


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