ARM STM32F4DISCOVERY board II.

Cortex. ARM3, ARM5, ARM7 magok, mindenféle gyártóktól. Programozás-fejlesztés-tippek.
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3211
Csatlakozott: 2008. augusztus 29. péntek, 6:00
Tartózkodási hely: Újkígyós

ARM STM32F4DISCOVERY board II.

HozzászólásSzerző: kapu48 » 2012. szeptember 13. csütörtök, 9:22

ARM STM32F4_DISCOVERY board II.

Mivel 2 nap alatt nem tudtam rájönni mért nem működik az oldal elődje!?
Próbálom itt folytatni! Hátha?

:?:
Előzmények a hasonló nevű oldalon.

Röviden a névadó fejlesztő laphoz akarok Grafikus kijelzőt illeszteni.

PQG2412A SERIES (240 * 128 DOTS) PIN CONNECTIONS
http://www.palmtech.com.tw/rimages/757/P37-PQG2412A.pdf

Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3211
Csatlakozott: 2008. augusztus 29. péntek, 6:00
Tartózkodási hely: Újkígyós

HozzászólásSzerző: kapu48 » 2012. szeptember 13. csütörtök, 11:55

Eljutottam a szöveges (Text) üzemmód CGRam feltöltés megoldásáig.

Mivel ez a kijelző HW-ból 8*8 pont mátrixot tud kezelni.
És ilyen fontkészlet már van, a beépítet CGROM területen. (Csúnya összenyomót betűk!)

Inkább 16*8-as betűkészletet alkalmazok. ImTilk töl kapott font: http://www.4shared.com/file/HUZZRlhF/en ... efurl=d1ur

T6963C LCD Graphics Controller Chip
http://www.lcd-module.de/eng/pdf/zubehoer/t6963.pdf 23. oldal:
Offset Register (lower 5-bits only) Character Code (00~FF) 0 – 255 karaktert tud megcímezni.
Mi ezt a területet kettéosztjuk, így látszólag lesz 2*128 karakterünknek hely.
CGRAM Első 128*8 Bytebe töltjük a 16 pontsor magas karakterünknek a felső felét.

Amikre a szokásos módon ASCII kódjukkal hivatkozunk.
A CGRAM másik felébe kerül a karakter mátrix alsó fele, amit (ASCII kód + 128)-al címzünk.
És kirakjuk az előző alá.

Így lesz Hardveres 16pont magas, 8 pont széles karakterünk.

Ami legalább jól fog kinézni.
Elférnek a nagybetűk fölé az ékezetek, és a kisbetűk vonal alá nyúló részeit sem kell feltolnunk a szívükbe!


A megoldás majd tesztelés után idekerül. :)

Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3211
Csatlakozott: 2008. augusztus 29. péntek, 6:00
Tartózkodási hely: Újkígyós

HozzászólásSzerző: kapu48 » 2012. szeptember 18. kedd, 14:14

ImTilk-nek!
Itt vannak az Hu16x8-as ékezetes karakterek:

Kód: Egész kijelölése

/**
  ******************************************************************************
  * @file    fonts.h
  * @author  MCD Application Team
  * @version V5.0.2
  * @date    05-March-2012
  * @brief   Header for fonts.c file
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __FONTS0_H
#define __FONTS0_H

#ifdef __cplusplus
 extern "C" {
#endif

/* Includes ------------------------------------------------------------------*/
#include <stdint.h>

/** @defgroup FONTS_Exported_Constants
  * @{
  */
#define HU_A      127      /*"Á",95+32    */
#define HU_E      128      /*"É",96*/
#define HU_I      129      /*"Í",97*/
#define HU_O      130      /*"Ó",98*/
#define HU_OO      131      /*"Ö",99*/
#define HU_EO      132      /*"Ő",100*/
#define HU_U      133      /*"Ú",101*/
#define HU_UU      134      /*"Ü",102*/
#define HU_EU      135      /*"Ű",103*/
#define HU_a      136      /*"á",104+32   */
#define HU_e      137      /*"é",105*/
#define HU_i      138      /*"í",106*/
#define HU_o      139      /*"ó",107*/
#define HU_oo      140      /*"ö",108*/
#define HU_eo      141      /*"ő",109*/
#define HU_u      142      /*"ú",110*/
#define HU_uu      143      /*"ü",111*/
#define HU_eu      144      /*"ű",112*/

#define LINE(x) ((x) * (((sFONT *)LCD_GetFont())->Height))


/** @defgroup FONTS_Exported_Types
  * @{
  */
typedef struct _tFont{
  const uint8_t *table;
  uint8_t Width;      //       szélesség
  uint8_t Height;      //       magasság
  uint8_t  nCHR;      //     n CHR van a tömbben  */
} sFONT;

extern sFONT HU16x8;


#ifdef __cplusplus
}
#endif
 
#endif /* __FONTS_H */
 

Kód: Egész kijelölése

/**
  ******************************************************************************
  * @file    fonts.c
  * @author  MCD Application Team
  * @version V5.0.2
  * @date    05-March-2012
  * @brief   This file provides text fonts for STM32xx-'s LCD driver.
  ******************************************************************************
  */

/* Includes ------------------------------------------------------------------*/
#include "fonts0.h"

// átneveztem
const uint8_t hu16x8_fonts_table[] = {


// Ezt hozzácsapod az English fontok végéhez:
/*      ékezetes betük      */
0x0C,0x18,0x00,0x18,0x3C,0x66,0x66,0x66,0x7E,0x66,0x66,0x66,0x00,0x00,0x00,0x00,/*"Á",95    */
0x0C,0x18,0x00,0x7E,0x60,0x60,0x60,0x7C,0x60,0x60,0x60,0x7E,0x00,0x00,0x00,0x00,/*"É",96*/
0x0C,0x18,0x00,0x3C,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00,/*"Í",97*/
0x0C,0x18,0x00,0x3C,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x3C,0x00,0x00,0x00,0x00,/*"Ó",98*/
0x00,0x66,0x00,0x3C,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x3C,0x00,0x00,0x00,0x00,/*"Ö",99*/
0x33,0x66,0x00,0x3C,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x3C,0x00,0x00,0x00,0x00,/*"Ő",100*/
0x0C,0x18,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x3C,0x00,0x00,0x00,0x00,/*"Ú",101*/
0x00,0x66,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x3C,0x00,0x00,0x00,0x00,/*"Ü",102*/
0x33,0x66,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x3C,0x00,0x00,0x00,0x00,/*"Ű",103*/
0x00,0x00,0x0C,0x18,0x00,0x3C,0x06,0x06,0x3E,0x66,0x66,0x3E,0x00,0x00,0x00,0x00,/*"á",104   */
0x00,0x00,0x0C,0x18,0x00,0x3C,0x66,0x66,0x7E,0x60,0x60,0x3C,0x00,0x00,0x00,0x00,/*"é",105*/
0x00,0x00,0x0C,0x18,0x00,0x78,0x18,0x18,0x18,0x18,0x18,0x7E,0x00,0x00,0x00,0x00,/*"í",106*/
0x00,0x00,0x0C,0x18,0x00,0x3C,0x66,0x66,0x66,0x66,0x66,0x3C,0x00,0x00,0x00,0x00,/*"ó",107*/
0x00,0x00,0x00,0x36,0x00,0x3C,0x66,0x66,0x66,0x66,0x66,0x3C,0x00,0x00,0x00,0x00,/*"ö",108*/
0x00,0x00,0x36,0x6C,0x00,0x3C,0x66,0x66,0x66,0x66,0x66,0x3C,0x00,0x00,0x00,0x00,/*"ő",109*/
0x00,0x00,0x0C,0x18,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x3E,0x00,0x00,0x00,0x00,/*"ú",110*/
0x00,0x00,0x00,0x36,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x3E,0x00,0x00,0x00,0x00,/*"ü",111*/
0x00,0x00,0x36,0x6C,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x3E,0x00,0x00,0x00,0x00,/*"ű",112*/
0x06,0x09,0x09,0x06,0x3C,0x66,0x66,0x60,0x60,0x66,0x66,0x3C,0x00,0x00,0x00,0x00,/*"Cfok",113*/
};


sFONT HU16x8 = {
      hu16x8_fonts_table,   // *table;
      8,          // Width  széles
      16,       // Height magas
      113 + 1,     // nCHR   0 - 113 CHR
};


Végre 1 karakterkészlet, ami jól is néz ki!
És tudom HW-ből kezelni a Text lapon.
:D

Kód: Egész kijelölése

// STRING
  uint8_t hu[2] = {0, 0};
  uint8_t hus[] = {'M', HU_a, 's', 'o', 'd', 'i', 'k', ' ', 's', 'o', 'r', 0};
 //   Á   r   v   í    z       t     ű   r     ő       t    ü    k    ö    r       f    ú   r    ó   g     é  p
  uint8_t huss[] = {HU_A,'r','v',HU_i,'z',' ','t',HU_eu,'r',HU_eo,' ','t',HU_uu,'k',HU_oo,'r',' ','f',HU_u,'r',HU_o,'g',HU_e,'p',0};
A hozzászólást 1 alkalommal szerkesztették, utoljára kapu48 2012. szeptember 21. péntek, 9:41-kor.

Avatar
ImTilk
Újonc
Újonc
Hozzászólások: 14
Csatlakozott: 2010. február 6. szombat, 7:00
Tartózkodási hely: Velence

HozzászólásSzerző: ImTilk » 2012. szeptember 18. kedd, 18:23

Hú de jó köszi ;)
Nagy segítség ...
Tegnap meg ma kevés meló volt, úgyhogy úgy néz ki sikerült megkreálnom az új nyákom terveit... Ellenőrzés van még hátra, remélem szombaton le is tudom "gyártani"...
Hihetetlen, hogy mennyire bonyis a lábkiosztás megtervezése, nagyon oda kell figyelni. Marha érdekesek ezek a mikrokontrollerek, egyes lábaknak sok funkciójuk lehet, és egyes funkciók több lábon is lehetnek, amit szoftverből lehet konfigurálni, hogy éppen melyik lábon van az adott funkció a lehetőségek közül. Ha figyelmetlen az ember, simán ütközhet pl. akár 2 spi busz is. Sose nyomtattam még ki adatlapot, de most a lábkiosztás részt muszáj volt, hogy átlássak mindent rendesen :D
Ha megvagyok mindenképp jelentkezem, szeretnék én is jól bekommentált forrásokkal segíteni másoknak, meg tervezek egy videót is csinálni, mit is tud a kicsikénk...

Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3211
Csatlakozott: 2008. augusztus 29. péntek, 6:00
Tartózkodási hely: Újkígyós

HozzászólásSzerző: kapu48 » 2012. szeptember 18. kedd, 19:22


Avatar
ImTilk
Újonc
Újonc
Hozzászólások: 14
Csatlakozott: 2010. február 6. szombat, 7:00
Tartózkodási hely: Velence

HozzászólásSzerző: ImTilk » 2012. szeptember 18. kedd, 20:07

Nem láthatóak nálam a képeid, ezt írja ki:
You need permission to access this item.
Lehet én vagyok a béna...

Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3211
Csatlakozott: 2008. augusztus 29. péntek, 6:00
Tartózkodási hely: Újkígyós

HozzászólásSzerző: kapu48 » 2012. szeptember 19. szerda, 7:29

Ez az első próbálkozásom a Google Drive könyvtárral.
Még nem igazán ismerem ki magam benne!
Akkor keresek másik tármegosztó helyet.

Google Drive Windows rendszerre:
https://tools.google.com/dlpage/drive/index.html 5 GB ingyenes tárhely
Valamit ír a fájl megosztásról, de akkor a partnernek is kel regisztrálni tárhelyet.
:oops:

Amit te használsz: 4shared.com/
Ez fizetős?
:?:

Kép
Kép

ÁÁ Sikerült kirakni! :lol:

Hát? Ez a fiók meg mindent megmutat, ami benne van!?
8)

Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3211
Csatlakozott: 2008. augusztus 29. péntek, 6:00
Tartózkodási hely: Újkígyós

HozzászólásSzerző: kapu48 » 2012. szeptember 19. szerda, 9:34

Most betöltjük a CGRAM területre a fentebb összerakott : hu16x8_fonts_table karakter táblát.

Kód: Egész kijelölése

/**
 sFONT HU16x8 = {
      hu16x8_fonts_table,   // *table;
      8,       // Width  széles
      16,    // Height magas
      112,     // nCHR   0 - 112 CHR
};
 *      Character GENERATOR RAM Page Upload > fonts_table
 *     if 16*8font, divide 2*(8*8) CGRAM Area
 *     destination cg_ram
 */
void GLCD_Load_CGRAM(sFONT fonts_table, uint8_t cg_ram){
   uint16_t i;
   uint8_t j;
   uint8_t ib;
   uint16_t it = 0;
   if (cg_ram){   // ? 1   CGRAM Bankválasztás
      GLCD_SetOffsetRegister(GLCD_CG_RAM_OFFSET2);
      cgram_home = GLCD_CG_RAM_HOME2;          //0x7800 - 0x7FFF
   }else{         // ? 0
      GLCD_SetOffsetRegister(GLCD_CG_RAM_OFFSET1);
      cgram_home = GLCD_CG_RAM_HOME1;                     //0x7000 - 0x77FF
   }
   // ? Karakter felső 8 Byte
   GLCD_WriteData2(cgram_home, T6963CMD_SET_ADDRESS_POINTER);      // destination address
   glcd_add = CGRM_ADDR;   // Addres P. CGRAMRA mutat
   // Karakter felső 8 Byte
   GLCD_WriteC_D(T6963CMD_SETDataAutoWRITE, GLCD_CMD, STATUSCHECK_MASK3);
   it = fonts_table.nCHR << 4;      // CHR num * 16
   for(i = 0; i < it - 8; i += 16){         //  source address -> nCHR*8-ig
      for(j = 0; j < 8; j++){   // CHR felső 8 Byte
         ib = fonts_table.table[i + j];
         GLCD_WriteC_D(ib, GLCD_DATA, WRCHECK_MASK8);
      }
   }
   GLCD_WriteC_D(T6963CMD_AUTORESET, GLCD_CMD, STATUSCHECK_MASK3);
   
   // Karakter alsó 8 Byte
   if (fonts_table.Height > 8){
      glcd_chr_vmode = 1;   // Character 16*8
      GLCD_WriteData2(cgram_home + CHR_SHIFT, T6963CMD_SET_ADDRESS_POINTER);      // destination address
      glcd_add = CGRM_ADDR;
      GLCD_WriteC_D(T6963CMD_SETDataAutoWRITE, GLCD_CMD, STATUSCHECK_MASK3);

      for(i = 8 ; i < it; i += 16){                        // source address, nCHR*8+1024-ig.
         for(j = 0; j < 8; j++){               // CHR felső 8 Byte
            ib = fonts_table.table[i + j];
            GLCD_WriteC_D(ib, GLCD_DATA, WRCHECK_MASK8);
         }

      }
      GLCD_WriteC_D(T6963CMD_AUTORESET, GLCD_CMD, STATUSCHECK_MASK3);
   }
   if (display_mode < 10){   // Ha kel átállítja CGRAM használatára a kijelzőt
      display_mode += 10;          // Tároljuk Az aktuális display_mode sorszámot
      GLCD_DisplayMode(display_mode);      // CGRAM-ra vált
   }
}


Ezek lesznek a fenti képeken látható karakterek.

Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3211
Csatlakozott: 2008. augusztus 29. péntek, 6:00
Tartózkodási hely: Újkígyós

HozzászólásSzerző: kapu48 » 2012. szeptember 19. szerda, 10:49

Kihasználva az előző képeknek készített tárterületet, bele húztam az egész aktuális project mappát.
http://www.4shared.com/folder/pA5MP9Lt/ ... oggle.html

(Alkalmanként majd frissítem az: scr könyvtár tartalmát)

Akit esetleg mégis érdekelne ez a téma, nézelődhet, ismerkedhet, akár ki is próbálhatja.

De vegye figyelembe, hogy a programírás mindig előrébb van, mint a tesztelés!
Mivel ez még nem kész, hanem fejlődő project.
(Az előkerülő hibák folyamatosan javítva.)
Ezért csak bemutató jelegű, semmi felelősséget nem vállalok a működéséről!

Kérdéseket, tanácsokat, ötleteket szívesen várom!

:)

(Közben észrevette, hogy a: ! -jel, alacsonyabb 1 sorral? ) 8O

Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3211
Csatlakozott: 2008. augusztus 29. péntek, 6:00
Tartózkodási hely: Újkígyós

HozzászólásSzerző: kapu48 » 2012. szeptember 22. szombat, 13:27

Találtam a Hobbi Elektronika oldalán, 1 kezdő Ismertetőt a témámhoz!
(Ez a kisebbik testvére az STM32F4DISCOVERY boardnak.)
De a működése és felépítése nagyon hasonló. Kevesebb kiegészítő HW körítéssel.

STM32 Discovery Kit programozása:
http://www.hobbielektronika.hu/cikkek/s ... .html?pg=1

Nagyon jó!
Az elejéről kezdi a Project építés ismertetését. (Remélem lesz folytatása!)
(Ezek alapján már lehet, hogy érthetőbb lesz az én ügyködésem is! Mivel én bizony belevágtam a sűrűjébe.)
:D

Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3211
Csatlakozott: 2008. augusztus 29. péntek, 6:00
Tartózkodási hely: Újkígyós

HozzászólásSzerző: kapu48 » 2012. szeptember 27. csütörtök, 14:28

Hi ImTilk!

Hátha tudod hasznát venni.

STM32F4 Adapter Board. Version 1. 16 Bites LCD
https://sites.google.com/site/miguelmor ... pter-board
http://www.element14.com/community/grou ... 2d-tft-lcd
8)


Vissza: “Minden, ami ARM”

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 vendég