Разница при подключении TFT к Leonardo и Mega 2560
- Войдите на сайт для отправки комментариев
Господа специалисты. Подстажите пожалуйста:
Я купил себе Ардуину Леонардо, потом купил TFT 2.8" LCD Touch шилд 240 х 320 , и он не хочет Работать на меге2560 хотя до этого работал на Леонардо. Шилд вот с такой вот распиновкой
На Леонардо она после танцев с бубном и библиотекой UTFT таки стала. Использовал вот такую инициализацию
UTFT myGLCD(ILI9325D_8,A5,A4,A3,A2);
Но потом я понял что памяти катастрофически не хватает для работя леонардо с этим шилдом. Приобрел Мегу 2560. И вот на этой меге этот шилд отказывается работать. Просто показывает белый экан и все. Скажите может кто то знает в чем может быть проблема? Инициализацию я оставлял такой же как и на Леонардо. По документации для управления дисплеем используются только аналогые контакты на сколько я понял.

Да кстати если что то у меня проблема именно с Arduino Mega 2560 rev 3
Ссылочку на описание шилда можно?
arduino-ua.com/index.php
1. По вашей ссылке:
Внимание! Шилд не полностью прилегает к платам Uno, Mega и их репликам с разъемом USB-B (см. рисунок), зато хорошо подходит к плате Arduino Leonardo, которая использует microUSB.
Во вторых ищите обращайте внимание на пины которые вы не указываете при инициализации. Такие как
SD_CS,D11 SD_MOSI,D12 SD_MISO,D13 SD_SCK
Все вместе их можно "обозвать" SPI пины. У меги они имеют другие номера. Лезте в описание плат и сравнивайте где они на меге (где-то в районе 50-тых). Смотрите имеет ли шилд разводку туда (или на ISP коннектор, они еще и туда дублируются).
Если "все подключено правильно", то уж в библиотеку лезть. Смотреть как она работает с пинами (особенно CS, он же Chip Select). Если напрямую через порт и не проверяет "какая плата" - нужно будет править библиотеку (или искать другую).
Хотя SPI пины, скорее всего, на экран не влияют. Они, скорее всего, для работы SD карты. Так что начните проверку с прилегания, того что правиьлно выставлены джамперы и т.п.
Спасибо, буду смотреть.
А по поводу джамперов: какие джампера и где, вы имеете в виду? потому как на самом шилде нет джамперов
>А по поводу джамперов: какие джампера и где, вы имеете в виду? потому как на самом шилде нет джамперов
Описание шилда по вашей ссылке:
На плате есть переключатель 3.3 - 5В, так что шилд совместим не только с оригинальными платами Arduino, но и с клонами работающими на 3.3В
Почитайте его что-ли. Там еще есть полезные ссылки даташиты экрана, модуля, его схематика и т.п. :)
Да , это не джампер это просто переключатель :)
Все доки по этому шилду перешерстил, но надо знать на что обрашать внимание.
А еще такой вопрос: необходимо ли извлекать этот шилд из ардуинки при заливании скетча?
Да , это не джампер это просто переключатель :)
С точки зрения электричества - это одно и тоже. Разница только в цене/размере/удобстве использвоания. Поэтому производители часто заменяют одно другим и пользуются этими словами как синонимами. Особенно на всяких "платах/модулях", а не "потребительских продуктах".
Вообщем в любом случае перепроверте его положение.
А еще такой вопрос: необходимо ли извлекать этот шилд из ардуинки при заливании скетча?
Ну если он ничего не коротит там на землю через разъем - по идее не нужно.
Хотя "может и мешать". Судя по схематие пины D0,D1 (самые важные для заливки), таки подводятся к экрану. Но теоретически экран-то "на вход" работает, значит не должен мешать заливке.
Ну еще и Reset, но уж его-то он точно "занять" никак не должен, хотя... не.. не верю что его проэктировщики были такими дятлами :).
P.S. Да, а даташит на него просто "блещет" обилием технических деталей :(
Просто честно сознаюсь что с Ардуиной знаком не очень давно. Но с програмированием знаком уже давненько. Потому и удивлен что вроде бы ноги у Леонардо и Меги расположенный под шилдом одинаково и одинаково называются а оказывается работают по разному.
Кстати смотрю что Chip select два контакта TFT_CS и SD_CS и они на разных ногах. За что именно отвечают обычно Chip select пины?
Называются - одинаково. И как "просто цифровой вход" - тоже будут работать одинаково. Но вот некоторые ноги, у камня, имеют дополнительные функции, какие-то "аппаратные помогалки" (UART,SPI,I2C). Вот SPI-ю - не повзело. Производитель чипа эту функцию - привесил на другие ноги.
Что-бы там не говорили рекламма, а микроконтроллеры - в любом случае заставляют ознакамливатся с железной составляющией. Слой между "програмой и железом" - очень тонок (хотя, все же еще есть, в ардуине, и это не всегда благо ;)
Хм...
В описании Леонардо сказано
SPI: на разъеме ICSP. Посредством данных выводов осуществляется связь SPI, для чего используется библиотека SPI. Обратите внимание, что в Leonardo выводы SPI не разведены на цифровые вход/выходы как это было в предыдущих версиях Arduino контроллеров.
В описании Меги сказано
SPI: 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS). Посредством данных выводов осуществляется связь SPI, например, используя библиотеку SPI. Также выводы SPI могут быть выведены на блоке ICSP, который совместим с платформами Uno, Duemilanove и Diecimila.
То есть подозреваю что SPI тут не причем поскольку в первом случае их вообще нет на Леонардо (а шилдик то работает) а в Меге они недостают до шилдика...
Думаю что проблема тут:
Из описания Меги:
Связь SPI может осуществляться через блок ICSP, как на платформах Duemilanove / Diecimila, так и на Mega2560. Однако расположение выводов (20 и 21) связи I2C на платформе Mega не соответствуют расположению тех же выводов (аналоговые входы 4 и 5) на Duemilanove / Diecimila.
То есть шилдик юзает как раз аналоговые входи 4,5 у Леонардо он у меги они не работают с I2C :(
Как это можно решить?
>Кстати смотрю что Chip select два контакта TFT_CS и SD_CS и они на разных ногах. За что именно отвечают обычно Chip select пины?
Шина SPI не подразумевает, в отличае от I2C одновременной работы нескольких устройств. У нее нет адресации. Поэтому когда на нее вешается несколько устройств, то у них используется CS-пины. Которые работают как "выключитель". Типа говорят ему - "то что сейчас происходит на SPI - тебя не касается". То есть одновременно, с помощью CS-пина включают какое-то одно устройство, общаются с ним, поэтому "отключают его от шины", активируют другое - общаются с ним.
ICPS разъем - да действительно общий и у уны и меги, но... он дублилирует SPI-пины. А "на своих местах" - они все равно есть. И, честно говоря, я не увидел на картинках что этот ICPS разъем есть у самого шилда и он умеет брать SPI с него. Похоже он, все-таки, пользуется обычными пинами.
Название пинов типа SD_CS - намекает что они не используются для работы с экраном. Типа вроде, в данном шилде, SPI предназначен только для работы с картой. Хотя в даташитах на контроллер экрана и тача упоминается что они тоже умеет работать по SPI, но, похоже, в данном случае этот режим не используется.
I2C - не нашел нигде упоминаний что эта шина используется. Вы где-то нашли? Если нет - то 4,5 в данном случае это "просто цифровые пины". И с ними проблемм нет.
>Как это можно решить?
Самое "лобовое решение" - втыкнуть шилд на беспаячную макетку. И "пробросить" все как удобно. Добится "что-бы работало", а потом уже чухать репу "как это сделать удобным".
Кстати очень полезным в том что-бы разобратся "как правильно подключать", может такое. Пройдите, с той ссылки что вы давали, на страницу библиотеки UTFT. Там ищите раздел "Requirements". В нем - ссылка на PDF-ку, в ней, на второй странице - табличка ардуино пинов куда нужно подключить при использовании этой библиотеки. И для меги, таки, совсем другие пины :( Правда, сильно подозреваю, что в этом PDF-ке указаны пины ног микрухи-экрана, а не самого шилда. То есть прийдется играть в игру. "смотрим пин меги в табличке, смотрим какая нога микрухи соотсвествует, дальше открываем схематику шилда, ищем на какой пин шилда выведена эта нога микрухи" и соединяем. получается нужно соеденить (1) Пин Меги <-->! (2) Пин шилда <--> (3) Пин микросхемы.
Соотвествие (1) к (3) - на странице библиотеки смотрим, соотвествие (2) к (3) - в схематике шилда. А соотвествие (1) к (2) вам нужно найти как уравнение в этом неизвестном и соеденить проводком.
О майн гад...
Ничего не поделаешь, буду пробовать. Хотя никак не могу понять в чем именно тогда разница. Гляжу на код либы, вроде нигре она версию и модель ардуины не смотрит. И в чем проблема тогда если он не I2C не SPI не юзает и при этом не работает (
Кстати вот еще вопрос: я подключал этот шилд на проводах(10-20см) к Леонардо на те же разьемы что и обычно и он тоже не работал. Это из за наводок? Или особая Шилд - Магия? Ну кривизну рук я тоже учел
>Гляжу на код либы, вроде нигре она версию и модель ардуины не смотрит
Проблема может если где-то используется прямая запись в порт, а не digitalWrite(). Тогда тоже получаются "другие ноги" при том же коде.
Зачем-то же, для меги, они указали в рекваирментах другие пины?
Хотя (глянул левым глазом) в библу - вроде используют portOutputRegister и т.п. что должно сводить на нет разницу в платах (по крайней мере для тех пинов что вы передаете в конструкторе).
Использования аппаратных SPI/I2C - не видно.
Кстати, на всякий случай, а вы когда скетч заливаете правильно указали плату? По идее должно конечно, если неправильно, ругнутся и сказать что не соотвествует, но "вдруг"? Поменяли в Tools/Board плату на мегу?
Да конечно меняю. И прога ардуано свежескачанная.
Для меги другие пины потому что есть спец-шилд для меги у него все цепляется к задней панельке а не к боковым как в Леонардо. но мне не нравится шилд для меги так как он перекрывает нормальный доступ почти ко всем пинам, а этот оставляет многие из них доступными
Да конечно меняю. И прога ардуано свежескачанная.
Для меги другие пины потому что есть спец-шилд для меги у него все цепляется к задней панельке а не к боковым как в Леонардо.
А вот это, уже, как раз очень похоже на то что указанно в рекваирментах к библиотеке. D22-D23 и D30-D37
Так что, лично бы, вначале пробовал подключать проводками, снаружи, соплями, лиш бы заработало, а потом искал в либе как поменять эти пины.
Ура товарищи заработало!
Не обошлось правда без паяльника, но по другому я не знаю как.
Методом научного тыка и вкуривания второй страницы доки henningkarlsen.com/electronics/files/UTFT_Requirements.pdf
Удалось выяснить что критично расположение контактов DB8-DB15(смотри схему по ссылке), остальные контакты можно подключать так же как и на Леонардо
Пришлось отпаять на шилдике панельку разьемов D0-D7(смотрите первый рисунок в этой теме) и вместо неё на проводках подцепить 2х рядный 4х сегментный штекер для задней панели Меги с 22 по 29 контакты подключал так D0 -> 22 .... D7 -> 29.
Шилдик потерял совместимость в Леонардо но на меге работает отлично. если не выпаивать разьем с шилдика а припоятся к нему то не работает тачскрин а графика работает(но мы не теряем тогда совместимсть с Леонардо)
Поэтому кто еще не знает как подключить свой 2.8" TFT LCD Touch shield то пусть пробует так.
Строка инициализации осталась такя же как и у леонардо:
Не обошлось правда без паяльника, но по другому я не знаю как.
Теоретически - очень морокливо, но возможно. Жесткая привязка к пинам, как правило означает что библиотека где-то напрямую работает с портами
Вооружаемся http://arduino.cc/en/Hacking/PinMapping2560 и лезем в библиотеку на предмет поиска всяки PORTA, PORTB,PORTC и т.п.
Например в UTFT\HW_AVR.h видим такой кусок кода:
// *** Hardwarespecific functions *** void UTFT::LCD_Writ_Bus(char VH,char VL, byte mode){ ... #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) PORTA = VH; pulse_low(P_WR, B_WR); PORTA = VL; pulse_low(P_WR, B_WR); #else ... }Видим что для меги юзается A-порт. Лезем в http://arduino.cc/en/Hacking/PinMapping2560 и видим, что порт A (ноги название которых начинается на PA[номер], PortA) отвечает за D22-D29
Что-то эти номера (D22-D29) напоминают, неправда ли? :)
А для "не меги" используется PORTD, который, если верить http://arduino.cc/en/Hacking/PinMapping168 отвечает за D0-D7 . Что, опять-таки поразительно похоже на пины написанный в рекваирментах для "просто Arduino" (aka Leonardo/Uno и т.п.)
Вообщем, похоже, что можно его "подружить" с мегой и без паяльника.
Непонятно только, почему этого не сделали авторы библиотеки. Раз, все равно, мегу предусматиривали в ней. Ну, разве что, они пользовались не шилдом, а проводками подключали. И было "без разницы", а PORTA было проще юзать. Так как на него выведены пины "подряд". D0-D7 в меге разбросаны по PORTE, PORTH так что чуть гиморней выводить выходит. Возможно просто "забили", так как "на проводках" им было проще найти свободный порт где имеется 8-м выводов "подряд".
P.S. Если будете править, то смотрите еще для какого switch (mode) - я так понимаю это зависит модели экрана которую вы даете как ILI9325D_8. Проверте как он трасформируюется в mode. Но сильно подозреваю что "наш код" это case 8:
P.S.S. Ну и _set_direction_registers тоже не забыть настроить в соотвесвии. Причем только те биты, которые соотвесвуют именно нужным нам пинам. Остальные - не трогать.
Ну вот теперь и это знать буду ) когда будет время то попробую на проводках переподключить обратно если получится програмно все поменять то припаяю разьем обратно. Спасибо что показали где копать ) В любом случае хочется тоб это можно было чинить без помощи паяльника )
Ну вот теперь и это знать буду ) когда будет время то попробую на проводках переподключить обратно если получится програмно все поменять то припаяю разьем обратно.
Я бы, на вашем месте, подошел к этому так:
Отключил бы нафиг шилд. Через резисторы, на D22-D29 подключил 8-мь светиков. Сделал-бы тестовый скетч. Который мигает ими по очереди, но не через digitalWrite, а прямой записью в порт, как у них в либе.
Примерно так (зажигает, на секунду, по очереди каждый диод)
void setup(){ setPortDirection(); } void loop(){ byte state=1; for(byte i=0;i<8;i++){ setPort(state); delay(1000); state=state<<1; } } void setPortDirection(){ DDRA = 0xFF; } void setPort(byte newState){ PORTA=newState; }Потом-бы перевесил светики на D0-D7 и тренировался изменить setPortDirection() и setPort() что-бы они мигали ими точно так же, но на новых пинах. Когда добился этого - ну тогда и в либу можно ручками лезть. Вносить эти изменения. И шилд подключать.
В любом случае хочется тоб это можно было чинить без помощи паяльника )
А я говорил ;)
Так что, лично бы, вначале пробовал подключать проводками, снаружи, соплями, лиш бы заработало, а потом искал в либе как поменять эти пины.
Ох уж эти Хирурги. Все-бы им резать и резать :)
Ну я собственно сначала проводками нашел нужные контакты, подключил чтоб рабботало потом по возможности подключил к родним гнездам шилда, а те что не удалось перенести те уже хирургически перенес )
Mysterious, ну как получилось подцепить к меге 2560? У меня та же проблема, на уно все хорошо работает, а с ммегой не хочет...
Пока только так как описал выше. Переписывать библиотеку пока не пробовал.
Решил таки попробовать програмно побороть проблему подключения:
Припаял обратно разьемы как были в оригинале. Полез ковырятся в код.
На основе http://arduino.cc/en/Hacking/PinMapping2560 разобрался какие пины куда относятся начал переписывать UTFT\HW_AVR.h
Вот полный листинг файла. Внимание в нем отключена 16 битная версия управления.
// *** Hardwarespecific functions *** void UTFT::LCD_Writ_Bus(char VH,char VL, byte mode) { switch (mode) { case 1: if (display_serial_mode==SERIAL_4PIN) { if (VH==1) sbi(P_SDA, B_SDA); else cbi(P_SDA, B_SDA); pulse_low(P_SCL, B_SCL); } else { if (VH==1) sbi(P_RS, B_RS); else cbi(P_RS, B_RS); } if (VL & 0x80) sbi(P_SDA, B_SDA); else cbi(P_SDA, B_SDA); pulse_low(P_SCL, B_SCL); if (VL & 0x40) sbi(P_SDA, B_SDA); else cbi(P_SDA, B_SDA); pulse_low(P_SCL, B_SCL); if (VL & 0x20) sbi(P_SDA, B_SDA); else cbi(P_SDA, B_SDA); pulse_low(P_SCL, B_SCL); if (VL & 0x10) sbi(P_SDA, B_SDA); else cbi(P_SDA, B_SDA); pulse_low(P_SCL, B_SCL); if (VL & 0x08) sbi(P_SDA, B_SDA); else cbi(P_SDA, B_SDA); pulse_low(P_SCL, B_SCL); if (VL & 0x04) sbi(P_SDA, B_SDA); else cbi(P_SDA, B_SDA); pulse_low(P_SCL, B_SCL); if (VL & 0x02) sbi(P_SDA, B_SDA); else cbi(P_SDA, B_SDA); pulse_low(P_SCL, B_SCL); if (VL & 0x01) sbi(P_SDA, B_SDA); else cbi(P_SDA, B_SDA); pulse_low(P_SCL, B_SCL); break; case 8: #if defined(__AVR_ATmega2560__) /* Pin TFT Mega Uno ------------------- D0 DB8 PE0 PD0 D1 DB9 PE1 PD1 D2 DB10 PE4 PD2 D3 DB11 PE5 PD3 D4 DB12 PG5 PD4 D5 DB13 PE3 PD5 D6 DB14 PH3 PD6 D7 DB15 PH4 PD7 */ if(VH & 0x01) PORTE |= (1<<0); else PORTE &= ~(1<<0); if(VH & 0x02) PORTE |= (1<<1); else PORTE &= ~(1<<1); if (VH & 0x04) PORTE |= (1<<4); else PORTE &= ~(1<<4); if (VH & 0x08) PORTE |= (1<<5); else PORTE &= ~(1<<5); if (VH & 0x10) PORTG |= (1<<5); else PORTG &= ~(1<<5); if (VH & 0x20) PORTE |= (1<<3); else PORTE &= ~(1<<3); if (VH & 0x40) PORTH |= (1<<3); else PORTH &= ~(1<<3); if (VH & 0x80) PORTH |= (1<<4); else PORTH &= ~(1<<4); pulse_low(P_WR, B_WR); if(VL & 0x01) PORTE |= (1<<0); else PORTE &= ~(1<<0); if(VL & 0x02) PORTE |= (1<<1); else PORTE &= ~(1<<1); if (VL & 0x04) PORTE |= (1<<4); else PORTE &= ~(1<<4); if (VL & 0x08) PORTE |= (1<<5); else PORTE &= ~(1<<5); if (VL & 0x10) PORTG |= (1<<5); else PORTG &= ~(1<<5); if (VL & 0x20) PORTE |= (1<<3); else PORTE &= ~(1<<3); if (VL & 0x40) PORTH |= (1<<3); else PORTH &= ~(1<<3); if (VL & 0x80) PORTH |= (1<<4); else PORTH &= ~(1<<4); pulse_low(P_WR, B_WR); #elif defined(__AVR_ATmega32U4__) /* Pin TFT Leo Uno ------------------- D0 DB8 PD2 PD0 D1 DB9 PD3 PD1 D2 DB10 PD1 PD2 D3 DB11 PD0 PD3 D4 DB12 PD4 PD4 D5 DB13 PC6 PD5 D6 DB14 PD7 PD6 D7 DB15 PE6 PD7 */ if(VH & 0x01) PORTD |= (1<<2); else PORTD &= ~(1<<2); if(VH & 0x02) PORTD |= (1<<3); else PORTD &= ~(1<<3); if (VH & 0x04) PORTD |= (1<<1); else PORTD &= ~(1<<1); if (VH & 0x08) PORTD |= (1<<0); else PORTD &= ~(1<<0); if (VH & 0x10) PORTD |= (1<<4); else PORTD &= ~(1<<4); if (VH & 0x20) PORTC |= (1<<6); else PORTC &= ~(1<<6); if (VH & 0x40) PORTD |= (1<<7); else PORTD &= ~(1<<7); if (VH & 0x80) PORTE |= (1<<6); else PORTE &= ~(1<<6); pulse_low(P_WR, B_WR); if(VL & 0x01) PORTD |= (1<<2); else PORTD &= ~(1<<2); if(VL & 0x02) PORTD |= (1<<3); else PORTD &= ~(1<<3); if (VL & 0x04) PORTD |= (1<<1); else PORTD &= ~(1<<1); if (VL & 0x08) PORTD |= (1<<0); else PORTD &= ~(1<<0); if (VL & 0x10) PORTD |= (1<<4); else PORTD &= ~(1<<4); if (VL & 0x20) PORTC |= (1<<6); else PORTC &= ~(1<<6); if (VL & 0x40) PORTD |= (1<<7); else PORTD &= ~(1<<7); if (VL & 0x80) PORTE |= (1<<6); else PORTE &= ~(1<<6); pulse_low(P_WR, B_WR); #else PORTD = VH; pulse_low(P_WR, B_WR); PORTD = VL; pulse_low(P_WR, B_WR); #endif break; } } void UTFT::_set_direction_registers(byte mode){ #if defined(__AVR_ATmega32U4__) || defined(__AVR_ATmega2560__) pinMode(0,OUTPUT); pinMode(1,OUTPUT); pinMode(2,OUTPUT); pinMode(3,OUTPUT); pinMode(4,OUTPUT); pinMode(5,OUTPUT); pinMode(6,OUTPUT); pinMode(7,OUTPUT); #else DDRD = 0xFF; #endif }Пользуйтесь наздоровье :)
Добрый день!
Я взял вашу библиотеку, сама оболочка не ругается.
Закинул на ардуину скетч из примеров библиотеки, все тот же белый экран.
Можете уточнить, какую строку инициализации экрана вы используете и кинуть пример работающего у вас скетча?
Так же хотелось бы уточнить, у вас получилось тач подключить?\
p.s. Вобще странная история, вроде экран есть, а по сути для него работающего ничего нет)))) как так производитель делает)))
Все, пардон, плохо читал посты, строка инициализации UTFT myGLCD(ILI9325D_8,A5,A4,A3,A2);
Про тач, все же, хотелось бы уточнить...
Тач работает и работал.
Производители затачивали эту плату под уно и леонардо. А для меги под этот экран типо нужна плата с разьемами под задний шилд. Для тестирования тача просто запустите демки из набора библиотеки UTFT_Touch
Запускал, не получается, экран черный и все...
При этом, когда пишешь строку инициализации тача от балды (к примеру буттон тест), выводит кнопки, а если оставляешь строку как в примерах, то черный экран.
Какую строку вы пишите для тача?
Вот моя строка инициализации тача ITDB02_Touch myTouch(A1,A2,A0,8,9);
Проверте
У меня почему то ITDB не корректно работала
По этому написал так: UTouch myTouch(A1,A2,A0,8,9);
После калибровки все хорошо работает.
Как бы проблема решена)
разобрался
Будте внимательны, библиотека UTFT обновилась, и все перестало работать. Причем библиотека как ни работала так и не работает, но и заплата тоже перестала работать. Используйте старую версию библиотеки и будет вам счастье...
Подкорректировал обновленную библиотеку, теперь работает с мегой2650
строка инициализации такая: UTFT lcd_tft28(ITDB28,38,39,40,40);
подключать пины tft D0-D7 к меге D22-D29, и пины tft A3-A5 к меге D40-D38
в файле UTFT.cpp строчки в начале привести к следующему виду:
а в папке \Мои документы\Arduino\libraries\UTFT\hardware\avr скопировать файл HW_ATmega1280.h и переименовать его в HW_ATmega2650.h
Ну и чем вы в таком случае решили проблему? Я так уже делал до этого .
Фишка не в том что чтото кудато переподключать хардварно. А просто воткнуть шилд в мегу без лишних проводов и чтоб он завелся ) Вот как раз переписывание либы (как я делал чуть выше) решает эту проблему.
воткнуть в мегу корректно не получится т.к. пины аппаратного I2C находятся на другом порту у 2560 и помешает USB-B на оригинале arduino
Но у меня то получилось и все отлично работает ) да они на другом порту но ноги у шилда там все равно есть. А USB ничуть не мешает, он просто упирается немного в кожух SD картридера но не более.
Доброго времени!!!! Нужна помощь!!!!
подключил экранчик по технологии-через монтажную плату. Инстализация -UTFT myGLCD(ILI9325D_8,A5,A4,A3,A2); Все демо коды из библеотеки UTFT работают нормально.
Проблема со тачем. инстализация UTouch myTouch(A1,A2,A0,8,9); но ни фига не работает -8,9 -на меге что то должно от экрана всуното быть ?
Если не трудно можно фото или просто тупо распиновку из первой схемы в посте -куда что подключать.
Посты прочитал раз пять -уже в распиновки запутался.Работает нормально только сам экран. Нужен ещё что бы тач заработал.
Все разобрался!!!!!!
Вкрации последователям.
1 ВСЕ делаем на макете -библиотеки не меняем.
Инсталлизация
UTFT myGLCD(ILI9325D_8,A5,A4,A3,A2);
UTouch myTouch(A1,A2,A0,8,9);
Что визуально должно получиться:
Пихаем в мегу провода от экрана.Все так же как и шильды окромя по верхней схеме в данном посте D0....D7 их пихаем в мегу в цифровые контакты соответствено 22.....29
Далее запускаем коллибровку -и соответственно если надо (программа сама напишит) меняем данные в файле.
P.S. Яне знаю кто этот девайс выпустил -но руки у него золотые но ростут из ЖОПЫ!!!!!
обратите внимание, что в свежей библиотеке UTFT заложена возможность ставить дисплей на мегу напрямую используя теже контакты что на UNO. Сам промучился пока не запустил. Единственное при этом будет конфдикт Serial с дисплеем
Чтобы подключить напрямую без макетки и дополнительного шилда в файле HW_ATmega1280.h нужно вначале файла вставить #define USE_UNO_SHIELD_ON_MEGA
Ещё одтн вопрос -кто либо SD картой разбирался ? Как заставить её работать ? Куда и что подключать от дисплея к МЕГЕ?
Ещё одтн вопрос -кто либо SD картой разбирался ? Как заставить её работать ? Куда и что подключать от дисплея к МЕГЕ?
не проверял, но теоретически запустить ее можно если найти библиотеку для работы с SD через софтверный SPI
Дело тут в том, что штатная библиотека SD.h работает через SPI.h который чисто железный SPI
В то же время на меге пины 11, 12 и 13 не являются пинами железного SPI, а именно туда шилд подводит MISO, MOSI и SCK от SD карты
поищите библиотеку для работа с SD по софтверному SPI и поделитесь с нами опытом, буду признателен
Я то поищу. Вопрос в другом -что бы это все заработало как должен дисплей подключен быть ? Не совсем с распиновками разобрался.
Вот что в библиотеке нашел с этим дисплеем
http://henningkarlsen.com/electronics/resource/tinyFAT/tinyFAT.pdf
а есть у когото старые библиотеки?