Как подключить LCD (Winstar WDG0151-TMI) к Arduino по SPI через Serial LCD/GLCD Adapter?
- Войдите на сайт для отправки комментариев
Втр, 08/01/2013 - 19:30
Доброго времени суток.
Имеется:
1. LCD (Winstar WDG0151-TMI)
2. Serial LCD/GLCD Adapter
3. Arduino Uno
Как их подружить, чтобы экран заработал?
Пробовал так http://playground.arduino.cc/Main/LiquidCrystal
Не работает.
А что на микросхеме адаптера написано?
Как следует из вашего описания - он работает по SPI.
То есть наша задача: найти в этом разъеме пины MISO, MOSI, SS, SCK и воткнуть их в пины с таким же названием на уне (возможно MISO/MOSI только инвертнуть прийдется). Где эти пины на Уне - смотрите описание платы http://arduino.ru/Hardware/ArduinoBoardUno ищите по слову SPI. Ну и питание c землей естественно.
Что-бы найти их "на разъеме" - читайте документацию откуда вы взяли скриншот (на нее вы ссылку не дали).
Кстати даже разглядеть, какой у вас разъем 6-ти или 10-ти пиновый не возможно.
Можно сделать предположение, что в положении "как AVR" он будет соотвествовать вот этому разъему
Правда в нем нет SS пина, но можно надеятся что он уже подтянут и его можно не подключать (а может они его на RST вывели).
Ну либо не надеятся на "авось" и гуглить описание этих самых AVR/8051
Или просто откройте свой мануал
http://www.mouser.com/ds/0/mikroElektronika/serial_lcd_glcd_manual_v100-...
(это же он), на странице 4, каритнка 7, называется "... board connection schematic", то есть "как подключать" :)
И там четко видно что где будет на разъеме в зависимости от положения джампера
Только учтите что в #2 картинка описывающая "папу" со стороны платы, а в #3 в документации "мама-кабель". И они друг-другу "зеркальными по вертикали" выходят.
Прежде чем подавать питание - дважды проверте. Возьмите тестер и прозвоните "где у вас земля". Можете еще и CS# пин от чипа прозвонить, что-бы еще и "вращение" не перепутать.
И да, если меня не поправят, то CS# и SS - это синонимы. В разных документациях чуток по разному этот пин обзывают.
Спасибо за отклик. На самом деле распиновку я определил и даже перепаял джамперы на адаптере. Если я не ошибаюсь то именно в мануале на анг. языке это написанно(выше выделенно), что типа для работы с AVR надо перепаять.
Экран загорается, но никакие символы на нем не появляются....
Спасибо за отклик. На самом деле распиновку я определил и даже перепаял джамперы на адаптере. Если я не ошибаюсь то именно в мануале на анг. языке это написанно(выше выделенно), что типа для работы с AVR надо перепаять.
На самом деле я думаю это не обязательно. Раз вы все равно забираете оттуда "проводочками", то разницы нет по PIC-ковски там или по AVR-ровски. Это важно если вы в какой-то готовый разъем тыкаете. Когда ограничены в возможности "подключить по другому".
Экран загорается, но никакие символы на нем не появляются....
Ну значит давайте что куда вы подключили. Будем пытатся найти ошибку.
Для полной веренности "кто где" - искать даташит на микруху. И тестером звонить от ног микрухи куда именно MOSI/MISO выходят.
Там же неплохо посмотреть и что с Reset линей делать нужно куда ее подтягивать. К земле и или к питалову.
Возможно слова под картинкой Note:I had to connect pin 5 on the LCD to gnd (not on diagram) to make it work. в http://playground.arduino.cc/Main/LiquidCrystal именно к этому и относятся.
ну и нужно еще убедится что библиотека поддерживает именно этот контроллер экрана. К тому же я не уверен что этот адаптер и 74HC595 100% идентичны по логике. Попробуйте погуглить еще библиотеки LiquidCrystal. Их разных версий, в инете, как блох. И все называются одинаково :(
Кстати а библиотеку вы проинсталили? Скачали из этой статьи, случайно не ту которая идет "из коробки" используется? Если скачали, то старую "убрали в другой фолдер". Вдруг они конфликтанули (имена-то одинаковые).
М... если верить вот этому,
http://playground.arduino.cc/Main/MCP23S17
То этот MCP23S17 имеет мало общего с 74HC595 из http://playground.arduino.cc/Main/LiquidCrystal
Один из них - сдвиговый регистр. Другой - port expander. Только и общего что "работают через SPI", но логика, скорее всего, вообще разная.
Так что наверное "искать библиотеку" которая будет поддерживать MCP23S17 или делать свою версию библы. Скорее всего базируясь на LiquidCrystal "из коробки".
Лезть в нее и заментья все digitalWrite/pinMode, на onechip.digilWrite (если будете http://playground.arduino.cc/Main/MCP23S17 использовать).
С одной стороны "гиморой", с другой - такой шилд может быть очень удобен не только при работе с экраном. Фактически это "дополнительные ноги". Которы и в обе стороны работать могут и т.д. и т.п.
Вот похожий шилд на подобном же интерефйсном чипе, с примерами и библиотекой.
http://freeduino.ru/arduino/LCD-keypad-shield.html
А зачем вы вообще пытаетесь прикруить либу от буквенно-цифрового дисплея к графическому? вы думаете у него есть встоенная таблица символов? это же просто графический дисплей 128х64 точек.
Спасибо, полностью согласен со всеми замечаниями!
Попробую разобраться с этим http://playground.arduino.cc/Main/MCP23S17 классом, вдруг удасться прикрутить его к либе...)
Maksim, этот экран работает, если его подключить на прямую к ардуине через эти либы. Просто связка экран+тач не оставляет свободных ног для связи....(
Ну "прикрученную либу" для текстовых экранов я уже нашел вам в #8. Так что либо экран поменять на другой типа, либо попытатся найти аналогичную либу для графических.
Если не выйдет - тогда уже самому хачить что-нибудь.
Но, в любом случае. Я вам рекомендую вначале завести этот экран напрямую. Без шилда. Убедится что он работает и у вас есть либа которая точно умеет им рулить. А уж потом, заведомо верную либу - ковырять для работы через MCP23S17.
А то "не работает" и не понятно, то ли сама либа глючная, то ли экран, то ли подключения, то ли через экспандер неправильно работаем.
Maksim, этот экран работает, если его подключить на прямую к ардуине через эти либы. Просто связка экран+тач не оставляет свободных ног для связи....(
Да, ну ладно вам придумывать, вы хотите сказать, что у вас этот дисплей работает с библиотекой LiquidCrystal ?
Не смотря на то, что в этой библиотеке всего лишь некоторый набор команд, а данные передаются кодами АСКИ и дисплей сам вырисовывает символы из своей таблицы символов и невзирая на то, что в даташите на дисплей описывается адресация данных в его памяти.
Ну разве что с этой либой у вас каркозябы на дисплей выводятся.
Maksim, извиняюсь, экран работает через GLCD либу, а не через LiquidCrystall)
На экране не появляются даже пиксели...
Тоесть он и не будет через нее работать, т.к. он не текстовый???
Leshak, напрямую работает все, только через GLCD...
Об этом я вам и говорю, вам нужно прикрутить GLCD через MCP23S17. Это можно попробовать сделать по аналогии с LiquidCrystal_MCP23x17.
Leshak, напрямую работает все, только через GLCD...
Ну значит этот шаг вы прошли :) Но его "нужно было" ;)
Теперь либо искать готовое (у меня не вышло), либо..... "хачить". Благо библиотека, вроде написанно по уму, и работа с пинами вынесенно отдельно (плюс хорошо откоменчено). Не нужно будет "всю логику" перепахивать. Хотя конечно "поработать прийдется" (и для новичка может быть не просто, как минимум что такое #define,#ifdef,#ifndef прийдется разобратся :) ).
Смотрите файлы glcd_io.h - в нем есть макросы верхнего уровня для работы с экраном. Переписать их, либо лезть в avrio.h (сейчас glcd_io.h использует avrio.h) и там поменять их.
Примитивы требующие замены, это avrio_pinMode, avrio_pinMode8Pins, avrio_digitalReadPin, avrio_digitalWrite и подобные.
Вообщем хачим их на работу с экспандером, либо "что луче" пишем их аналоги с именами mcpio_pinMode, mcpio_digitalRead и т.д.
А потом в glcd_io.h делаем секцию для работы через mcpio_digitalRead, а не через avrio_XXX. Благо тут будет просто "ее сделать", просто скопировать avrio_ секцию, и сделать замену avrio_ на mcpio_
Да и "еще". Держите в уме. С вероятностью 90% работа через экспандер это будет "медлено и печально" по сравнению с прямым включением.
Так что возможно проще купить отдельынй камушек и поставить ее отдельно рулить экраном, а ей давать только "высокоуровневые команды" от основной дуины. Но это уже зависит от того "что у вас за задача", как часто вы собираетесь экран обновлять и т.п.
Буду копать )
Буду копать )
Если "докопаете", то очень резко поднимите свой уровень. "Полезть в чужую библиотеку" - не будет вызывать страх. А это очень помогает, даже не для "поменять", а просто "разобратся как использовать, посмотреть как устроено" :) Мне, на заре работы с ардуино, именно подобная задача по пиляканияю IRRemote под свой протокол громадный опыт дала.