Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
25.02.2013, 06:57
|
|
Супер-модератор
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,510 раз(а) в 956 сообщении(ях)
|
Re: Проблема с ЖКИ WH1601A
Сообщение от jump
|
Ув. Halex07,
эт за какой грех мене в террористы зачислили, а? не за пост о протезе?
|
Эх, все же сказались последствия, 23-го, с больной башки не доглядел... Приношу извинения, всем ясно, что такую "лапшу" Вы не напишете, сейчас поправлю.
Frensis777, ну где прошивка то??? Кидай под 8-ку, у меня одна 8L в дипе завалялась и как раз пару китайских 16x1 с ебея подогнало, понадобились тут мне срочно под мелкие "примочки", так что могу вечерком проверить, все равно мне китайские ЖК протестить надо. Только без русского текста, в китайских ЖК с Ebay его сроду не было.
Последний раз редактировалось Halex07; 25.02.2013 в 07:01.
|
|
|
|
25.02.2013, 07:42
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Проблема с ЖКИ WH1601A
Моя тестовая программа http://nixto.comule.com/1602_test.rar
Мега48 и мега8
|
|
|
|
27.02.2013, 00:52
|
|
Прописка
Регистрация: 15.03.2009
Сообщений: 162
Сказал спасибо: 1
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: Проблема с ЖКИ WH1601A
Сообщение от omercury
|
Последовательно от "0" до "FF" вывести туда и посмотреть.
|
Да, вы правы. Сделал программку для вывода символов "0"(0x30) до "z"(0x7A)
Значит, что я обнаружил:
1. Первый символ который выводится--это не "0", а "1". Т.е., если допустим, i-код какого-либо символа, то командой lcd_putchar(i) выводится символ, код которого i+1. Хотя в симуляторе VMLab-все вроде замечательно: выводится символ с кодом i.
2. Не выводятся символы на знакоместа 8 и 16. Даже создал другую программку, которая выводила на 8 и 16 знакоместо по одному символу, тоже не дает результата. В VMlab-все замечательно.
Сообщение от _guardianangel
|
Frensis777, по пробуйте сию прошивку, адаптирована под Вашу разводку.
|
На дисплее ничего нет, ничего не выводится. Пробовал в симуляторе VMlab, тоже ничего. Может вы напутали с разводкой или частотой. У меня кварц 4 Мгц без внешних конденсаторов(я программирую фьюз СКРОТ(т.е. устанавливаю его в 0) для подключения внутренних емкостей)
К сожалению, пока не имею возможности перепаять ЖК индикатор в соответствии с вашей разводкой.
Сообщение от _guardianangel
|
Сообщение от Frensis
|
Если тебя не утруждает процесс программирования, давай проверим на твоем железе?
|
У меня и компилятор другой - avr-gcc, и система тоже. Так что CV поставить не получиться для проверки.
|
Причем здесь компилятор? И зачем его тебе ставить? Я сам скомпилирую тебе код и дам .hex прошивку.
Сообщение от omercury
|
Frensis777, кидай .hex как есть.
Пусть будет Мега8, ДИП. Воткну в макетку.
Такт внутренний, 1-2-4-8 МГц, с делителем или без, только напиши - какой.
WH2002A, но это не принципиально.
|
Хорошо, спасибо. Подключение ЖК-индикатора у меня такое:
RS - PORTC Bit 2
RD - PORTC Bit 1
EN - PORTC Bit 0
D4 - PORTB Bit 5
D5 - PORTB Bit 4
D6 - PORTB Bit 3
D7 - PORTB Bit 2
Частота внутреннего RC-генератора-4Мгц. Это значит что фьюзы CKSEL3...0 такие: 0011. Остальные-по умолчанию.
Программа должна выводить на дисплей символы один за другим с кодами от 0x30("0") до 0x7A("z") согласно таблице ASCII.
Прошивка прикреплена ниже.
Вложения:
|
J.rar (903 байт, 44 просмотров) |
|
|
|
|
27.02.2013, 02:29
|
|
Почётный гражданин KAZUS.RU
Регистрация: 29.10.2006
Сообщений: 1,446
Сказал спасибо: 99
Сказали Спасибо 317 раз(а) в 233 сообщении(ях)
|
Re: Проблема с ЖКИ WH1601A
Сообщение от Frensis777
|
Подключение ЖК-индикатора у меня такое:
RS - PORTC Bit 2
RD - PORTC Bit 1
EN - PORTC Bit 0
D4 - PORTB Bit 5
D5 - PORTB Bit 4
D6 - PORTB Bit 3
D7 - PORTB Bit 2
|
Ну и зачем такие извращения? Собирать полубайт по битикам...
Сделай нормально:
D4 - PORTB Bit 4
D5 - PORTB Bit 5
D6 - PORTB Bit 6
D7 - PORTB Bit 7
Глядишь - и всё заработает...
|
|
|
|
27.02.2013, 07:11
|
|
Супер-модератор
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,510 раз(а) в 956 сообщении(ях)
|
Re: Проблема с ЖКИ WH1601A
Сообщение от Frensis777
|
У меня кварц 4 Мгц без внешних конденсаторов(я программирую фьюз СКРОТ(т.е. устанавливаю его в 0) для подключения внутренних емкостей)
|
Сообщение от Frensis777
|
Частота внутреннего RC-генератора-4Мгц. Это значит что фьюзы CKSEL3...0 такие: 0011. Остальные-по умолчанию.
|
Ну так "кто на ком стоял?"... То Вы контроллеры с дисплеями путали, теперь опять очередная "ересь" вылазит. Вы уж, коллега, определитесь, как говорит лидер ЛДПР, - "однозначно". Вот Вам пиСЧа для размышления:
1. Бит CKOPT (именно так пишется, а не как у Вас) в режиме внешних мегагерцовых кварцев никаких внутренних конденсаторов не включает, а определяет размах сигнала на выходе. Из даташита меги восьмерки rev. 2486T–AVR–05/08 стр. 27.
Цитата:
|
The CKOPT Fuse selects between two different Oscillator amplifier modes. When CKOPT is programmed, the Oscillator output will oscillate a full rail-to-rail swing on the output.
|
Включают его (ставят нулем) только в условиях сильных помех или для кварцев выше 12МГц. А вот для часового кварца он действительно подключает внутренние кондеры:
Цитата:
|
To use a 32.768 kHz watch crystal as the clock source for the device, the Low-frequency Crystal
Oscillator must be selected by setting the CKSEL Fuses to “1001”. The crystal should be connected as shown in Figure 11. By programming the CKOPT Fuse, the user can enable internal capacitors on XTAL1 and XTAL2, thereby removing the need for external capacitors. The internal capacitors have a nominal value of 36 pF.
|
Это уже выдержка с 28-й страницы даташита. Отсюда вывод - а нафига оно Вам???
2. То Вы пишете про внешний кварц 4МГц, то приводите: "CKSEL3...0 такие: 0011" - а это внутренний RC для 4 МГц и кварц тут нужен как рыбе зонтик в дождливую погоду. Чё на самом деле то стоит? Кстати, для внутреннего RC бит CKOPT не программируется, т.е. дожен стоять в единице.
Цитата:
|
The CKOPT Fuse should always be unprogrammed when using this clock option.
|
Это уже стр. 30 даташита, где описывается внутренний RC генератор.
3. Судя по всему из за этой каши с фьюзами Вы и имеете то, что имеете. Вот Вам еще и иллюстрация. Делайте выводы.
|
|
|
|
27.02.2013, 09:43
|
|
Прописка
Регистрация: 15.03.2009
Сообщений: 162
Сказал спасибо: 1
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: Проблема с ЖКИ WH1601A
Сообщение от Halex07
|
Ну так "кто на ком стоял?"... То Вы контроллеры с дисплеями путали, теперь опять очередная "ересь" вылазит. Вы уж, коллега, определитесь, как говорит лидер ЛДПР, - "однозначно". Вот Вам пиСЧа для размышления:
1. Бит CKOPT (именно так пишется, а не как у Вас) в режиме внешних мегагерцовых кварцев никаких внутренних конденсаторов не включает, а определяет размах сигнала на выходе. Из даташита меги восьмерки rev. 2486T–AVR–05/08 стр. 27.
Включают его (ставят нулем) только в условиях сильных помех или для кварцев выше 12МГц. А вот для часового кварца он действительно подключает внутренние кондеры.
Это уже выдержка с 28-й страницы даташита. Отсюда вывод - а нафига оно Вам???
|
Понятно насчет включаемых кондеров, что они включаются только при часовом кварце, а я ведь еще сомневался, думал это на все кварцы распространяется или только на часовой. Оказалось на часовой. Ну что же. СКОРТ обратно сброшу и повешу кондеры. Интересно, а то что не вешал кондеры при кварце, проблемы могут быть связаны с этим?
Сообщение от Halex07
|
2. То Вы пишете про внешний кварц 4МГц, то приводите: "CKSEL3...0 такие: 0011" - а это внутренний RC для 4 МГц и кварц тут нужен как рыбе зонтик в дождливую погоду. Чё на самом деле то стоит? Кстати, для внутреннего RC бит CKOPT не программируется, т.е. дожен стоять в единице.
Это уже стр. 30 даташита, где описывается внутренний RC генератор.
3. Судя по всему из за этой каши с фьюзами Вы и имеете то, что имеете. Вот Вам еще и иллюстрация. Делайте выводы.
|
Нет, я ничего не путаю! У меня внешний кварц и фьюзы CKSEL3...0: 1111.
Фьюзы CKSEL3...0: 0011--это я привел для тов. omercury. Он просил у меня прошивку, чтобы проверить на своем железе. Т.к. у него источник тактового сигнала-внутренний RC генератор 4 Мгц.
|
|
|
|
27.02.2013, 15:22
|
|
Почётный гражданин KAZUS.RU
Регистрация: 29.10.2006
Сообщений: 1,446
Сказал спасибо: 99
Сказали Спасибо 317 раз(а) в 233 сообщении(ях)
|
Re: Проблема с ЖКИ WH1601A
Есть ещё идея, что на сборку полубайта у МК уходит слишком много времени (особенно на 4 МГц) и нарушаются тайминги.
1) После команды очистки экрана сделать паузу в несколько миллисекунд
2) Вывести строку "ABCDEFGH"
я так понял, что не только буква A не выводится, но ещё и буква E пропадает.
Можно целиком ваш проект. С настройками библы. Меня терзают смутные сомнения, что у вас сигналы попутаны.
|
|
|
|
27.02.2013, 16:47
|
|
Супер-модератор
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,510 раз(а) в 956 сообщении(ях)
|
Re: Проблема с ЖКИ WH1601A
Сообщение от Frensis777
|
Интересно, а то что не вешал кондеры при кварце, проблемы могут быть связаны с этим?
|
Вторая гармоника 4 МГц -го кварца как раз 8. Что будет при 8 МГц тактовой с вашей прошивкой я вам уже наглядно показал. И еще, а что Вам самому мешает зашиться с внутренним RC на 4 МГц? Выводы при этом перепаивать не надо, но по крайней мере кварц отсечете.
Сообщение от Godzilla82
|
Есть ещё идея, что на сборку полубайта у МК уходит слишком много времени (особенно на 4 МГц) и нарушаются тайминги.
|
Билиотека в CVAVR построена так, что изменение тактовой касаются и таймингов. Так что тут засады быть не должно, если конечно сам ТС в проекте CVAVR c частотой не накосячил.
Сообщение от Godzilla82
|
Меня терзают смутные сомнения, что у вас сигналы попутаны.
|
Если бы были попутаны сигналы, то либо ничего, либо полная белиберда. А у него теряются только некоторые символы, причем остальные выводятся нормально. По таким признакам явно байда с более высокой тактовой у МК, чем у контроллера дисплея.
|
|
|
|
28.02.2013, 00:25
|
|
Супер-модератор
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,510 раз(а) в 956 сообщении(ях)
|
Re: Проблема с ЖКИ WH1601A
To Frensis777, ну в общем вспомнил, что обещал протестировать вашу прошивку, покрутил на Mega8L с вот такими чиновскими дисплеями 1601 на макетке. Прошивка исправная и выводит все как надо, начиная с 0 и т.д. Крутил ес-но с внутренним RC на 4 МГц. Сделал пару паршивеньких фоток телефоном для убедительности, но шнурок от телефона на работе, завтра утром приаттачу к этому посту. Так что ищите косяки у себя.
ПЫСЫ. Знаю, что у Вас проблема с осциллографом. Так вот, чтобы проверить себя я в таких случаях навешиваю светодиод на свободный порт МК. Вот Вам еще контрольная прошивка с проектом CVAVR под 4 МГц. Светодиод и LCD горят 2 сек, затем 2 сек погашены. Проверил на своей макетке под вашу разводку. Если нужен другой порт для светодиода - поправите в проекте строку в начале и сделаете этот порт выходом через соотвествующий DDRx. По морганию светодиода по крайней мере можно убедиться, что МК работает и нет косяков с фьюзами, т.е. 2 сек в уме отсчитать нетрудно. Если будет моргать чаще или реже - косяк в CKSEL. Уже много раз сталкивался, что шьют с точностью до наоборот, в большинстве программаторов AVR установленная галка - этот бит в 0. Сейчас доеду до конторы, выложу фотку с тестом вашей прошивки.
Последний раз редактировалось Halex07; 28.02.2013 в 18:52.
|
|
|
|
02.03.2013, 00:18
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Проблема с ЖКИ WH1601A
Сообщение от Frensis777
|
Прошивка прикреплена ниже.
|
Отчёт.
И, на всякий случай, фьюзы.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 02:51.
|
|