Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
02.03.2013, 20:42
|
|
Прописка
Регистрация: 15.03.2009
Сообщений: 162
Сказал спасибо: 1
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: Проблема с ЖКИ WH1601A
Сообщение от Halex07
|
...а что Вам самому мешает зашиться с внутренним RC на 4 МГц? Выводы при этом перепаивать не надо, но по крайней мере кварц отсечете.
|
Дело в том, что в этом же проекте у меня также есть код связи USART мк с COM-портом ПК. А для устойчивой связи желательно, чтобы частота была стабильная, поэтому поставил кварц, да и менять не стал на внутренний RC-генератор, нужды в этом нет...
Собственно, тов. Halex07, у меня к Вам два вопроса.
Сообщение от Halex07
|
Сообщение от Frensis777
|
Интересно, а то что не вешал кондеры при кварце, проблемы могут быть связаны с этим?
|
Вторая гармоника 4 МГц -го кварца как раз 8. Что будет при 8 МГц тактовой с вашей прошивкой я вам уже наглядно показал.
|
Откуда Вы решили, что если не подсоединять конденсаторы к кварцу, частота будет именно 8 МГц? Это Ваши мнение или научный факт?
Сообщение от Halex07
|
Если бы были попутаны сигналы, то либо ничего, либо полная белиберда. А у него теряются только некоторые символы, причем остальные выводятся нормально. По таким признакам явно байда с более высокой тактовой у МК, чем у контроллера дисплея.
|
Какую максимальную тактовую частоту мк можно выбрать, чтобы не было белиберды?
Сообщение от Halex07
|
To Frensis777, ну в общем вспомнил, что обещал протестировать вашу прошивку, покрутил на Mega8L с вот такими чиновскими дисплеями 1601 на макетке. Прошивка исправная и выводит все как надо, начиная с 0 и т.д.
|
Спасибо большое! Собственно, как я и предполагал...что прошивка нормальная
Сообщение от omercury
|
Отчёт
|
И Вам спасибо большое! Очень убедительно.
Сообщение от Halex07
|
Вот Вам еще контрольная прошивка с проектом CVAVR под 4 МГц.
|
Спасибо, но она не понадобилась, т.к. наконец нашел ошибку .
Дело было в том, что, как я и тов. Halex07, предполагали, в отсутствии конденсаторов при внешнем кварце. Допаял-все заработало.
Поэкспериментировав немного с внутренним знакогенератором, пришел к выводу, что из-за какой-то ничтожной экономии кириллица реализована неудобно в том плане, что русских букв, схожих по написанию с английскими,-нет: приходится использовать символы английского алфавита. Но это фиг с ним. Еще одна проблема в том, что кодировка русских символов по Win1251 не совпадает с их кодировкой в знакогенераторе ЖКИ(ASCII); у английских же букв и ряда символов такой проблемы нет. И поэтому попытки вывести русские символы на ЖКИ заканчиваются выводом всякой абракадабры. Чтобы этого не случилось, я воспользовался подпрограммой, которая переводит код символа (ПК) в код знакогенератора ЖКИ. Привожу код подпрограммы, может кому понадобится.
PHP код:
|
//---------------------------------------------------- // подпрограмма конвертации кодов символов unsigned char conv_char (unsigned char x) {
// '!"#$%&'()*+,-./0123456789:;‹=›?@' 0x21-0x5a // 'ABCD EFGH IJKL MNOP QRST UVWX YZ' 0x41-0x5a // 'abcd efgh ijkl mnop qrst uvwx yz' 0x61-0x7a
// 'АБВГ ДЕЖЗ ИЙКЛМНОП РСТУФХЦЧ ШЩЪЫЬЭЮЯ' 0xc0-0xdf // 'абвг дежз ийклмноп рстуфхцч шщъыьэюя' 0xe0-0xff // буквы Ё и ё стоят особняком
const unsigned char ansi_A0[] = { // А Б В Г Д Е Ж З 0x41,0xa0,0x42,0xa1,0xe0,0x45,0xa3,0xa4, // И Й К Л М Н О П 0xa5,0xa6,0x4b,0xa7,0x4d,0x48,0x4f,0xa8, // Р С Т У Ф Х С Ч 0x50,0x43,0x54,0xa9,0xaa,0x58,0xe1,0xab, // Ш Щ Ъ Ы Ь Э Ю Я 0xac,0xe2,0xad,0xae,0x62,0xaf,0xb0,0xb1, // а б в г д е ж з 0x61,0xb2,0xb3,0xb4,0xe3,0x65,0xb6,0xb7, // и й к л м н о п 0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0x6f,0xbe, // р с т у ф х ц ч 0x70,0x63,0xbf,0x79,0xe4,0x78,0xe5,0xc0, // ш щ ъ ы ь э ю я 0xc1,0xe6,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7};
if (x ‹ 0x80) return x; // английские и символы if (x == 0xA8) return 0xA2; // буква Ё if (x == 0xB8) return 0xB5; // буква ё return ansi_A0[x - 0xc0]; // все остальные русские
} //--------------------------------------------------------------------
|
Последний раз редактировалось Frensis777; 02.03.2013 в 20:47.
|
|
|
|
02.03.2013, 21:10
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Проблема с ЖКИ WH1601A
Сообщение от Frensis777
|
Дело было в том, что, как я и тов. Halex07, предполагали, в отсутствии конденсаторов при внешнем кварце. Допаял-все заработало.
|
Очень странно.
Есть у мну пара девайсов (есть и третий, но его искать надо) с программным USB с кварцом на 12МГц и оба(три) как раз таки без конденсаторов...
Причём один из них программатор. Тот самый, которым шил эту самую Мегу.
И, что самое интересное, никаких ошибок в обмене по USB нету.
Что видно по чтению сигнатуры на скриншоте 6. По ней, собсно, программатор и определяет - с чем и как работать.
Повторного запроса на чтение сигнатуры либо обмена по USB не предусмотрено - просто выдаётся код ошибки. Уверен в этом потому, что и прошивку (на АСМе) и оболочку (в Дельфях) писал сам, да и драйвер (AVR309) колупал и библиотеку интегрировал в оболочку. А если быть точным, библиотеку вообще переделал.
Понятно, что не правильно, но либо мне везёт, либо контроллеры бракованные. Оба - три...
Последний раз редактировалось omercury; 02.03.2013 в 21:25.
|
|
|
|
02.03.2013, 21:34
|
|
Почётный гражданин KAZUS.RU
Регистрация: 29.10.2006
Сообщений: 1,446
Сказал спасибо: 99
Сказали Спасибо 317 раз(а) в 233 сообщении(ях)
|
Re: Проблема с ЖКИ WH1601A
Сообщение от Frensis777
|
Откуда Вы решили, что если не подсоединять конденсаторы к кварцу, частота будет именно 8 МГц? Это Ваши мнение или научный факт?
...
Дело было в том, что, как я и тов. Halex07, предполагали, в отсутствии конденсаторов при внешнем кварце. Допаял-все заработало.
|
Просто без конденсаторов именно ваш кварц скорее всего запускался на второй гармонике. Кварцы всё-таки немного капризные штуки.
Сообщение от Frensis777
|
Какую максимальную тактовую частоту мк можно выбрать, чтобы не было белиберды?
|
Какой ещё билеберды. Если в проекте указана реальная частота, на которой работает МК, то всё будет работать как надо.
Сообщение от Frensis777
|
Еще одна проблема в том, что кодировка русских символов по Win1251 не совпадает с их кодировкой в знакогенераторе ЖКИ(ASCII); у английских же букв и ряда символов такой проблемы нет.
|
Не совпадают по кодировке с 1251 - так это у всех индикаторов так. Вам ещё повезло, что русские буквы вообще есть.
|
|
|
|
03.03.2013, 02:14
|
|
Супер-модератор
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,509 раз(а) в 956 сообщении(ях)
|
Re: Проблема с ЖКИ WH1601A
Сообщение от Frensis777
|
Дело в том, что в этом же проекте у меня также есть код связи USART мк с COM-портом ПК.
|
Во-первых, я не призывал навечно уйти на внутренний RC-генератор, предлагалось для теста, ведь свою тестовую прошивку Вы пробовали на полуфабрикате девайса, так почему и не перепрошить лиший раз?. Тем более, что перепаивать что-то и резать дорожки Вам для этого не надо было. Ну, а во-вторых, для USART с COM кварц 4 МГц катит тоже, мягко сказать не вполне адекватно, если уж хотите "полной стабильности" при хороших скоростях обмена по USART - ищите дробный, например, ближайший Вам "по религии" - 3.6864 MHz. Существуют таковые в природе, однако, и далеко не редкость, а то подозреваю, что следующим Вашим топиком будет именно отсутствие связи (нестабильный обмен) с COM-портом. Да и не было изначально разговора об этом, все упиралось в вывод на LCD, а проявлять экстрасенсорные способности на девайс который Вы ваяете никто и не собирался.
Сообщение от Frensis777
|
Откуда Вы решили, что если не подсоединять конденсаторы к кварцу, частота будет именно 8 МГц?
|
Да если бы в данном случае генератор был чисто синусоидальный, то я бы "молчал в тряпочку", а так, не я это придумал, а какой-то там Фурье, вот уж "не знаю что за гусь", и на каком "форуме" он эту идею выдвинул. Ну а из практики, не надо уповать на кварц, как на панацею, тем более на продукт "из поднебесной", а как правило они сейчас в основном и используются. Возможно он у Вас вообще "молчал", а "играла на рояле" емкость монтажа и внутренний резистор МК. Но, если и он "подыгрывал", то ближайшая гармоника с максимальной амплитудой - это как раз 8МГц. Потому и оговаривался, что осциллограф нужен, тем более, что раскачка кварца была на полную за счет установленного CKOPT.
Сообщение от Frensis777
|
Какую максимальную тактовую частоту мк можно выбрать, чтобы не было белиберды?
|
А она ограничена только производителем МК. Когда Вы задаете тактовую частоту в проекте CVAVR и выбираете при этом использование символьного LCD, например, через тот же встроенный CodeWizard, компилятор автоматом подберет соответствующие выдержки (задержки), чтобы обеспечить обмен с HD44780 (или подобным) контроллером для частоты 250 кГц (это основная рабочая частота HD44780). В последних версиях CVAVR, если Вы задумаете в процессе "творчества" изменить тактовую МК через меню Project-›Configure компилятор "вежливо" предупредит Вас через всплывающее окошко, что будут соответсвенно изменены выдержки времени. Можете попробовать на своем (или моем) проекте, кстати мой изначально был сделан на 8МГц, а правил я его потом под Вас именно через меню Configure.
Сообщение от Frensis777
|
Поэкспериментировав немного с внутренним знакогенератором
|
Не цените Вы свое время, однако, Зачем эксперименты, когда это 101 раз описано не только в документации (в даташитах на контроллеры именно на контроллеры а не на сами индикаторы (еще раз подчеркну, чтоб опять не перепутали) приводятся таблицы знакогенераторов), но и здесь на форуме. И программ перекодировки существует уже такая туева хуча, что у начинающих глаза разбегаются. А с виндозной RUS кодировкой это изначально не совпадало, начиная с родного "Ёпсоновского" HD44780. Только, если нужен русский шрифт не надо заказывать LCD через китайские магазины типа Ebay, AliExpress и т.п. Русский знакогенератор вшивается только на продукты распространяемые "унутри" России, а то тут по соседству в ветке уже есть прецеденты...
Ну, а вообще, рад, что у Вас всё получилось... дерзайте дальше.
Последний раз редактировалось Halex07; 03.03.2013 в 02:18.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 07:14.
|
|