<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=46&amp;t=4142&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-09-13T16:24:15+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=46&amp;t=4142&amp;mode</id>
<entry>
<author><name><![CDATA[Raven]]></name></author>
<updated>2013-09-13T16:20:18+01:00</updated>
<published>2013-09-13T16:20:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4142&amp;p=49456#p49456</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4142&amp;p=49456#p49456"/>
<title type="html"><![CDATA[Re: [STM32F4 Discovery] Wyświetlacz HY_TFT320_262K + ili9320]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4142&amp;p=49456#p49456"><![CDATA[
Działa! Zrobiłem dzisiaj porządnie na płytce cały układ, a nie jak wcześniej &quot;na pająka&quot; i śmiga pięknie. Nie jestem co prawda super zadowolony z jakości wyświetlacza ( słaby kąt widoczności kolorów ) ale najważniejsze, że działa.<br />Krauser dzięki za pomoc. Leci zasłużone &quot;pomógł&quot; .<br /><br />Kody w pierwszym poście zaktualizowałem , więc proszę się częstować jeśli ktoś jest w potrzebie.<br /><br />Pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=773">Raven</a> — 13 wrz 2013, o 16:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Raven]]></name></author>
<updated>2013-09-12T19:55:23+01:00</updated>
<published>2013-09-12T19:55:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4142&amp;p=49356#p49356</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4142&amp;p=49356#p49356"/>
<title type="html"><![CDATA[Re: [STM32F4 Discovery] Wyświetlacz HY_TFT320_262K + ili9320]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4142&amp;p=49356#p49356"><![CDATA[
To też nie to. Może jednak sprawa bardziej hardware'owa i gdzieś nie styka?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=773">Raven</a> — 12 wrz 2013, o 19:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2013-09-12T19:27:03+01:00</updated>
<published>2013-09-12T19:27:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4142&amp;p=49355#p49355</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4142&amp;p=49355#p49355"/>
<title type="html"><![CDATA[Re: [STM32F4 Discovery] Wyświetlacz HY_TFT320_262K + ili9320]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4142&amp;p=49355#p49355"><![CDATA[
Popraw jeszcze reset. Masz stan wysoki. Ustaw stan wysoki odczekaj, ustaw stan niski odczekaj, stan wysoki i odczekaj.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 12 wrz 2013, o 19:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Raven]]></name></author>
<updated>2013-09-12T08:33:53+01:00</updated>
<published>2013-09-12T08:33:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4142&amp;p=49302#p49302</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4142&amp;p=49302#p49302"/>
<title type="html"><![CDATA[Re: [STM32F4 Discovery] Wyświetlacz HY_TFT320_262K + ili9320]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4142&amp;p=49302#p49302"><![CDATA[
Przede wszystkim dzięki za odpowiedź.<br /><br />Dopisałem to co sugerowałeś ( zedytowałem też kod w pierwszym poście ) , ale niestety to nie to. Objawy dokładnie takie same. Brak odczytu z rejestru 0x0000 a potem lądowanie w Bus Fault.<br /><br />EDIT:<br /><br />Zmieniłem całkowicie inicjalizację FSMC i zaczęło działać - tj. jestem w stanie odczytać rejestr 0x0000 i faktycznie dostaję wartość 0x9320. Ale: nie wiedzieć czemu raz się to udaje , a raz nie . Dwa - inicjalizacja nie daje żadnego efektu. Obraz pozostaje biały mimo wywołania funkcji clear z kolorem 0x001F.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=773">Raven</a> — 12 wrz 2013, o 08:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2013-09-11T19:30:05+01:00</updated>
<published>2013-09-11T19:30:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4142&amp;p=49235#p49235</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4142&amp;p=49235#p49235"/>
<title type="html"><![CDATA[Re: [STM32F4 Discovery] Wyświetlacz HY_TFT320_262K + ili9320]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4142&amp;p=49235#p49235"><![CDATA[
Po resecie odczekaj chwilkę potem zapisz do rejestru 0x0000 liczbę 1 co uruchomi oscylator odczekaj chwilkę i wtedy wykonaj dalsze czynności. Niestety w tym tygodniu nie mogę sprawdzić działania twojego kodu.<br /><br />Na linii PD5 jest LED oraz wyjście /FAULT typu otwarty dren układu załączającego zasilanie USB. Jak nie przeciążysz tego wyjścia USB to nic nie stanie. Ten scalak jest załączany linią PC0. Jak zostawisz ją w spokoju to układ będzie wyłączony.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 11 wrz 2013, o 19:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Raven]]></name></author>
<updated>2013-09-13T16:24:15+01:00</updated>
<published>2013-09-11T16:52:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4142&amp;p=49210#p49210</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4142&amp;p=49210#p49210"/>
<title type="html"><![CDATA[[STM32F4 Discovery] Wyświetlacz HY_TFT320_262K + ili9320]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4142&amp;p=49210#p49210"><![CDATA[
Witam<br />Od kilku dni staram się uruchomić pewien tajwański tani szmelc o nazwie HY_TFT320_262K ze sterownikiem (rzekomo) ili9320. Problem w tym, że cała dokumentacja i przykładowe programy, które do niego dostałem są w krzaczkach lub całkowicie nie dotyczą mojego modelu wyświetlacza. Stąd swoją wiedzę i większość kodu czerpię z odmętów internetu i staram się w ogóle wybudzić drania. Z marnym skutkiem.<br /><br />Zacząłem od najprostszego podłączenia i kodu , ale nijak byłem w stanie nawet odczytać rejestru 0x0000 z numerem sterownika wyświetlacza. Następnie natrafiłem na wynalazek o nazwie FSMC i obecnie próbuje iść w tę stronę.<br /><br />Oto kody:<br /><br />Inicjalizacja portów:<br />[syntax=c]static void LCD_CtrlLinesConfig(void)<br />{<br />GPIO_InitTypeDef GPIO_InitStructure; <br /><br />/* Enable GPIOs clock */<br />RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_GPIOE | RCC_AHB1Periph_GPIOB ,ENABLE );<br /><br />/* Enable FSMC clock */<br />RCC_AHB3PeriphClockCmd(RCC_AHB3Periph_FSMC, ENABLE); <br /><br />/*-- GPIOs Configuration ------------------------------------------------------*/<br />/*<br />+-------------------+--------------------+------------------+------------------+<br />+                       SRAM pins assignment                                   +<br />+-------------------+--------------------+------------------+------------------+<br />| PD0  &lt;-&gt; FSMC_D2  | PE7  &lt;-&gt; FSMC_D4   |<br />| PD1  &lt;-&gt; FSMC_D3  | PE8  &lt;-&gt; FSMC_D5   |<br />| PD4  &lt;-&gt; FSMC_NOE(RD) | PE9  &lt;-&gt; FSMC_D6   |<br />| PD5  &lt;-&gt; FSMC_NWE(WR)| PE10 &lt;-&gt; FSMC_D7   | <br />| PD7  &lt;-&gt; FSMC_NE1(CS) | PE11 &lt;-&gt; FSMC_D8   |<br />| PD8  &lt;-&gt; FSMC_D13 | PE12 &lt;-&gt; FSMC_D9   | <br />| PD9  &lt;-&gt; FSMC_D14 | PE13 &lt;-&gt; FSMC_D10  |  <br />| PD10 &lt;-&gt; FSMC_D15 | PE14 &lt;-&gt; FSMC_D11  | <br />| PD11 &lt;-&gt; FSMC_A16(RS) | PE15 &lt;-&gt; FSMC_D12  | <br />| PD14 &lt;-&gt; FSMC_D0   |    |                   <br />| PD15 &lt;-&gt; FSMC_D1|    |      <br />        PB7  &lt;-&gt; RSET<br />+-------------------+------------------------+<br />*/<br />/* GPIOD configuration */<br />GPIO_PinAFConfig(GPIOD, GPIO_PinSource0, GPIO_AF_FSMC);<br />GPIO_PinAFConfig(GPIOD, GPIO_PinSource1, GPIO_AF_FSMC);<br />GPIO_PinAFConfig(GPIOD, GPIO_PinSource4, GPIO_AF_FSMC);<br />GPIO_PinAFConfig(GPIOD, GPIO_PinSource5, GPIO_AF_FSMC);<br />GPIO_PinAFConfig(GPIOD, GPIO_PinSource7, GPIO_AF_FSMC);<br />GPIO_PinAFConfig(GPIOD, GPIO_PinSource8, GPIO_AF_FSMC);<br />GPIO_PinAFConfig(GPIOD, GPIO_PinSource9, GPIO_AF_FSMC);<br />GPIO_PinAFConfig(GPIOD, GPIO_PinSource10, GPIO_AF_FSMC);<br />GPIO_PinAFConfig(GPIOD, GPIO_PinSource11, GPIO_AF_FSMC);<br />GPIO_PinAFConfig(GPIOD, GPIO_PinSource14, GPIO_AF_FSMC);<br />GPIO_PinAFConfig(GPIOD, GPIO_PinSource15, GPIO_AF_FSMC);<br /><br />GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_7 | <br />                            GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_14 | GPIO_Pin_15;<br />GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;<br />GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;<br />GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;<br />GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_NOPULL;<br /><br />GPIO_Init(GPIOD, &amp;GPIO_InitStructure);<br /><br /><br />/* GPIOE configuration */<br />GPIO_PinAFConfig(GPIOE, GPIO_PinSource7 , GPIO_AF_FSMC);<br />GPIO_PinAFConfig(GPIOE, GPIO_PinSource8 , GPIO_AF_FSMC);<br />GPIO_PinAFConfig(GPIOE, GPIO_PinSource9 , GPIO_AF_FSMC);<br />GPIO_PinAFConfig(GPIOE, GPIO_PinSource10 , GPIO_AF_FSMC);<br />GPIO_PinAFConfig(GPIOE, GPIO_PinSource11 , GPIO_AF_FSMC);<br />GPIO_PinAFConfig(GPIOE, GPIO_PinSource12 , GPIO_AF_FSMC);<br />GPIO_PinAFConfig(GPIOE, GPIO_PinSource13 , GPIO_AF_FSMC);<br />GPIO_PinAFConfig(GPIOE, GPIO_PinSource14 , GPIO_AF_FSMC);<br />GPIO_PinAFConfig(GPIOE, GPIO_PinSource15 , GPIO_AF_FSMC);<br /><br />GPIO_InitStructure.GPIO_Pin =GPIO_Pin_7 | GPIO_Pin_8  | GPIO_Pin_9  | GPIO_Pin_10 |<br />                             GPIO_Pin_11| GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;<br /><br />GPIO_Init(GPIOE, &amp;GPIO_InitStructure);<br /><br />/* Pin PB7 - sygnal RSET  */<br />GPIO_InitStructure.GPIO_Pin =GPIO_Pin_7;<br />GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;<br />GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;<br />GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;<br />GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_NOPULL;<br />GPIO_Init(GPIOB, &amp;GPIO_InitStructure);<br />}[/syntax]<br /><br /><br />Inicjalizacja FSMC:<br />[syntax=c]static void LCD_FSMCConfig(void)<br />{<br />FSMC_Bank1-&gt;BTCR&#91;0&#93; =  FSMC_BCR2_MBKEN | FSMC_BCR2_MWID_0 | FSMC_BCR1_WREN   ;<br />FSMC_Bank1-&gt;BTCR&#91;1&#93; =  0x1404;<br />}[/syntax]<br /><br />Inicjalizacja wyswietlacza:<br />[syntax=c]static void LCD_Configuration(void)<br />{<br />u32 i=0x1fffff;<br />/* Configure the LCD Control pins --------------------------------------------*/<br />LCD_CtrlLinesConfig();<br />while(i--);<br />/* Configure the FSMC Parallel interface -------------------------------------*/<br />LCD_FSMCConfig();<br />/*LCD RESET PIN init*/<br />Set_Rst;<br />        delay_ms(100);<br />Clr_Rst;<br />        delay_ms(100);<br />Set_Rst;<br />        delay_ms(100);<br />LCD_WriteReg(0x0000,0x0001); //uruchomienie oscylatora wywietlacza<br />delay_ms(100);<br /><br />}<br /><br /><br />void LCD_Initializtion(void)<br />{<br /><br /><br />LCD_Configuration();<br /><br />DeviceCode = 0x0000;<br />DeviceCode = LCD_ReadReg(0x0000);/* Read LCD ID*/<br />if( DeviceCode == 0x9320)<br />{<br />    <br />  LCD_WriteReg(0x00,0x0000);<br />LCD_WriteReg(0x01,0x0100);/* Driver Output Contral */<br />LCD_WriteReg(0x02,0x0700);/* LCD Driver Waveform Contral */<br />LCD_WriteReg(0x03,0x1018);/* Entry Mode Set */<br /><br />LCD_WriteReg(0x04,0x0000);/* Scalling Contral */<br />  LCD_WriteReg(0x08,0x0202);/* Display Contral */<br />LCD_WriteReg(0x09,0x0000);/* Display Contral 3.(0x0000) */<br />LCD_WriteReg(0x0a,0x0000);/* Frame Cycle Contal.(0x0000) */<br />  LCD_WriteReg(0x0c,(1&lt;&lt;0));/* Extern Display Interface Contral */<br />LCD_WriteReg(0x0d,0x0000);/* Frame Maker Position */<br />LCD_WriteReg(0x0f,0x0000);/* Extern Display Interface Contral 2. */<br /><br />  delay_ms(100);  /* delay 100 ms */<br />LCD_WriteReg(0x07,0x0101);/* Display Contral */<br />  delay_ms(100);  /* delay 100 ms */<br /><br />LCD_WriteReg(0x10,(1&lt;&lt;12)|(0&lt;&lt;8)|(1&lt;&lt;7)|(1&lt;&lt;6)|(0&lt;&lt;4));/* Power Control 1.(0x16b0)*/<br />LCD_WriteReg(0x11,0x0007);/* Power Control 2 */<br />LCD_WriteReg(0x12,(1&lt;&lt;8)|(1&lt;&lt;4)|(0&lt;&lt;0));/* Power Control 3.(0x0138)*/<br />LCD_WriteReg(0x13,0x0b00);/* Power Control 4 */<br />LCD_WriteReg(0x29,0x0000);/* Power Control 7 */<br /><br />LCD_WriteReg(0x2b,(1&lt;&lt;14)|(1&lt;&lt;4));<br /><br />LCD_WriteReg(0x50,0);       /* Set X Start */<br />LCD_WriteReg(0x51,239);    /* Set X End */<br />LCD_WriteReg(0x52,0);    /* Set Y Start */<br />LCD_WriteReg(0x53,319);    /* Set Y End */<br /><br />LCD_WriteReg(0x60,0x2700);/* Driver Output Control */<br />LCD_WriteReg(0x61,0x0001);/* Driver Output Control */<br />LCD_WriteReg(0x6a,0x0000);/* Vertical Srcoll Control */<br /><br />LCD_WriteReg(0x80,0x0000);/* Display Position? Partial Display 1 */<br />LCD_WriteReg(0x81,0x0000);/* RAM Address Start? Partial Display 1 */<br />LCD_WriteReg(0x82,0x0000);/* RAM Address End-Partial Display 1 */<br />LCD_WriteReg(0x83,0x0000);/* Displsy Position? Partial Display 2 */<br />LCD_WriteReg(0x84,0x0000);/* RAM Address Start? Partial Display 2 */<br />LCD_WriteReg(0x85,0x0000);/* RAM Address End? Partial Display 2 */<br /><br />  LCD_WriteReg(0x90,(0&lt;&lt;7)|(16&lt;&lt;0));/* Frame Cycle Contral.(0x0013)*/<br />LCD_WriteReg(0x92,0x0000);/* Panel Interface Contral 2.(0x0000) */<br />LCD_WriteReg(0x93,0x0001);/* Panel Interface Contral 3. */<br />  LCD_WriteReg(0x95,0x0110);/* Frame Cycle Contral.(0x0110)*/<br />LCD_WriteReg(0x97,(0&lt;&lt;8));<br />LCD_WriteReg(0x98,0x0000);/* Frame Cycle Contral */<br /><br />  LCD_WriteReg(0x07,0x0173);<br />}<br /><br />    delay_ms(50);   /* delay 50 ms */<br />}[/syntax]<br /><br /><br />Funkcje i makra do odczytywania/zapisywania do wyświetlacza:<br />[syntax=c]#define LCD_REG      (*((volatile unsigned short *) 0x60000000)) <br />#define LCD_RAM      (*((volatile unsigned short *) 0x60020000))<br /> <br />#define Set_Rst GPIO_SetBits(GPIOB,GPIO_Pin_7);<br />#define Clr_Rst GPIO_ResetBits(GPIOB,GPIO_Pin_7);<br /><br />void LCD_WriteIndex(uint16_t index)<br />{<br />LCD_REG= index;<br />}<br /><br />void LCD_WriteData(uint16_t data)<br />{<br />LCD_RAM = data;<br />}<br /><br />uint16_t LCD_ReadData(void)<br />{ <br />  return LCD_RAM;<br />}<br /><br />void LCD_WriteReg(uint16_t LCD_Reg,uint16_t LCD_RegValue)<br />{ <br />/* Write 16-bit Index, then Write Reg */  <br />LCD_WriteIndex(LCD_Reg);         <br />/* Write 16-bit Reg */<br />LCD_WriteData(LCD_RegValue);  <br />}<br /><br />uint16_t LCD_ReadReg(uint16_t LCD_Reg)<br />{<br />/* Write 16-bit Index (then Read Reg) */<br />LCD_WriteIndex(LCD_Reg);<br /><br />/* Read 16-bit Reg */<br />return LCD_ReadData();<br />}[/syntax]<br /><br /><br />Piny podpięte jak w komentarzu w inicjalizacji portów.<br />Na podwyższy kod wyświetlacz nie reaguje w ogóle. W debugu widzę , że odczyt rejestru 0x0000 nadal nie działa. Po jakimś czasie program trafia do nieskończonej pętli w &quot;wyjątku&quot; Bus Fault w pliku stm32f4xx_it.c .<br /><br />Czy ktoś ma jakieś doświadczenia w tym temacie i mógłby mi wskazać błąd?<br />Czytałem również gdzieś na jakimś forum , że aby możliwe było w ogóle uruchomienie fsmc na stm32f4 discovery konieczne jest wylutowanie rezystora bodajże r50 na lini obsługującej usb. Czy to prawda? Wolałbym nie ingerować tak bardzo w płytkę.<br /><br /><br />Proszę o pomoc!<br /><br /><span style="color: #FF0000">Proszę wybierać syntax=c z rozwijalnej listy a nie wpisywać ręcznie... Różowy J.</span><br />edit: zgodnie z rozkazem... z tymże różnicy jakby nie widać...<br /><br /><span style="color: #FF0000">Widać różnicę, wpisałeś duże C, a w tym przypadku syntax nie działa - Różowy J.</span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=773">Raven</a> — 11 wrz 2013, o 16:52</p><hr />
]]></content>
</entry>
</feed>