Diskuze: Arduino - problém s TFT
Člen
Zobrazeno 16 zpráv z 16.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
Nejprve standardní pošli kód.
Jsi si na 200% jistý se zapojením, a že nemáš poškozený nějaký
jumper wire?
Vyzkoušej i další tutorialy.
Take bych jeste zkusil tohle https://www.arduino.cc/…TDisplayText
Zapojením si jistý jsem, když místo displaye zapojím jiné zařízení, které komunikuje pomocí HW_SPI tak to funguje. Vyzkouším ještě ten odkaz co ji mi poslal a uvidíme. Doufám, že to bude chyby na mé straně a ne v display
A jsi si jistý, že máš správné knihovny - nestačí jen správný
řadič (ILI9341), ale taky musí pro to SPI - běžnější bývá pro 16(8)
bitovou sběrnici.
Dál je taky možné, že je tam ani ILI9341 není, oni si stím číňani moc
hlavu nelámou - ti slušnější ten typ aspoň napíšou na desku.
Ale máš - li displej opravdu z Arduino Shopu, pak by ti měl jet na knihovnu,
která je součástí Arduino IDE po instalaci.
Pokud máš knihovnu odsud
pak by měla být OK, ale pozor - v těch příkladech nemají definované
některé piny pro komunikaci
// For the Adafruit shield, these are the default.
// Same pinout, no need to declare.
// SD Chip Select = Pin 8
// #define TFT_DC 9
// #define TFT_CS 10
// TFT display and SD card will share the hardware SPI interface.
// Hardware SPI pins are specific to the Arduino board type and
// cannot be remapped to alternate pins. For Arduino Uno,
// Duemilanove, etc., pin 11 = MOSI, pin 12 = MISO, pin 13 = SCK.
// MEGA pin 51 = MOSI, pin 50 = MISO, pin 52 = SCK.
to si musíš definovat sám
Udělal jsem jednoduchou ukázku abych vyzkoušel funkčnost a pořád nic. Začínám to tipovat na špatný display. Jen na ukázku kód. Snad tam nemám nějakou botu.
#include <Adafruit_GFX.h> // grafická knihovna
#include <Adafruit_ILI9341.h> // ovladač displeje
#include <SPI.h> // SPI
#define sclk 13 // nastavení, kde co máme připojeno
#define mosi 11
#define miso 9
#define cs 10
#define dc 12
#define rst 8 // není zapojeno
Adafruit_ILI9341 tft = Adafruit_ILI9341(cs, dc, rst);
void setup(void)
{
tft.begin();
tft.fillScreen(ILI9341_RED);
}
void loop(void)
{
}
po nahrání display svítí pořád bíle a nedělá nic. Používám Arduino MEGA a HW SPI (MOSI - 51, MISO - 50, SCK - 52)
nějak tomu nerozumím - používáš HW SPI na pinech 50-52, ale definované v kódu máš 9,11,13 - možná to nevadí, ale radši to smaž
špatný displej být nemusí - jak jsem už psal - může mít jiný řadič - a každý má jinou sekvenci příkazů pro inicializaci
V některých knihovnách jsou testovací prográmky pro zjištění typu řadiče - třeba Mcufriend - mimochodem jedná se jen o přečtení hodnoty na adrese (myslím) 0
Ta definice 9,11,13 určitě nevadí tam záleží jaký použiji konstruktor. Zkoušel jsem totiž i SW SPI. Ale ja jsem display kupoval z arduino-shopu tak počítám, že řadič bude ILI9341 ale radši to ověřím. Díky za radu. A COM normálně funguje. Funguje všechno kromě toho displaje. A originální knihovnu jsem zkoušel a taky nic. A zkusím teda ještě ten radič ale když to nefunguje tak si nejsem jistli půjde číst z paměti.
Ahoj, již delší dobu mám stejný problém, funguje mi jen podsvícení. Párkrát, v neurčitých intervalech, se mi displej rozsvítil a fungoval asi 2 sekundy. Našel jsem tento článek http://joysfera.blogspot.cz/…ruznych.html . V diskuzi lidi píšou, že jim nechtěl displej fungovat na 5V logice. Ještě jsem neměl čas vyzkoušet.
COM funguje, ale píše ti to co má?
V tom příkladu by to mělo vypsat nějaké parametry toho displeje na
terminál.
Pokud ty údaje vypadají normálně, pak je problém právě v té inicializaci
displeje.
Číst z paměti jde i bez ní.
Díky za článek zajímavý ale můj problém to bohužel nevyřešilo.
Hodnoty na COMu jsou divné, takže to asi bude ta inicializace. Zjistím jaký tam je ten řadič.
Já bych to spíš viděl na problém SPI (na straně displeje).
Zkus ještě dát na tu linku (MOSI,SCK,RST - na MISO nemusíš, to je vstup)
dát nějaký ten level shifter(odporový dělič) pro sražení napětí na
3,3V. Je možné, že chip v desce displeje si nastavuje SPI vstupy do
Hi-Z(vysoké impedance) a to může být problém, že pokud je chip napájený
3,3V a na vstupy přivádíš 5V tak má potom bordel v napěťových úrovních
logických stavů. Krajní možností je, že vstupy těma 5V odpálíš, ale to
si nemyslím.
Taky si zkus pohrát s CPOL a CPHA nastaveni pro ten Arduinový SPI.
Display jedu na 3,3V aby kdyby náhodou to 5V netolerovalo tak abych to právě neodpálil. Včera jsem to hodil na digitální analizátor a SPI do displaye posílá co má. Zkoušel jsem taky vyčítat ID a tam jsem narazil na problém. Vyčítalo to 0x000, takže to podle mě vypadá, že driver je nějaký špatný. Zkusím si nechat poslat jiný a pokud se to bude chovat stejně tak budu muset zabrousit dál ale myslím, že to bude tím displayem. SNAD díky za rady I když jsem teď uspěch moc neměl tak se mi Arduino začíná hodně líbit do teď jsem dělal s PIC ale pro tohle Arduino je hodně věcí dost ulehčených a hodně to zrychlí práci při sestavování HW což je paráda
Jestli uvažuješ o novém a nějak na to nekvaltuješ, tak být tebou
hledám na ebay apod.
Pokud chceš vyloženě 2.4 tak osobně doporučuji "tohle ":http://m.ebay.com/…322079526361?…
Zabere to sice víc vývodů (u UNA všechny), ale já mám tyto odzkoušené -
knihovny k nim poskytuje přímo výrobce.
A ještě mně napadlo, že jestli napájíš z 3,3V,tak bys měl propojit
jumper u stabilizátoru, aby to nešlo přes něj.
Jinak jenom napájení 3,3V nestačí - ještě musíš (pokud nemáš) srazit
ty 5V signály z arduina.
Zobrazeno 16 zpráv z 16.