RA8876 / RA8876M TFT LCD vehicle status display

精選

 

RA8876 / RA8876M 為提供RGB interface TFT LCD 一種簡易且低成本的驅動方案,Host 可以是8051、arm、avr、PIC MCU或是其他CPU,透過並列8080、6800或串列SPI、IIC等介面連接到RA8876/RA8876M,透過簡單的初始化命令與控制命令操作,即可實現TFT LCD顯示。

RA8876/RA8876M/RA8873M/RA8871M 提供多圖層的控制應用,非常適合取代SSD1963、SSD1906 、RA8875、RA8870、RA8872等同類型的TFT LCD控制器。

本文使用RA8876M TFT LCD 控制器驅動 4 inch 480×800 TFT LCD,利用RA8876M 外部圖庫DMA、BTE、多圖層應用等功能完成一個簡單的車輛狀態顯示應用的演示;

 

硬件:

MCU: STM32F103VET6

TFT LCD 控制器: RA8876 / RA8876M

LCD:  KD040FM-1A 4.0 inch 480×800 resolution with ILI9806E controller IC

 

軟件:

STM32F103  –> stdlib

RA8876 –> RA8876,RA8877_API_Demo_V1.1_m

 

轉圖軟件:

Image_Tool_SPI_NAND_v1.0.0.3

SPI NAND FLASH燒錄方式必須按照RAiO提供的規則使用(如需了解請連絡http://www.raio.com.tw/tw/contact.html),為了實現低成本,本文演示選用SPI NAND FLASH,由於SPI NAND FLASH有壞塊管理與ECC的要求,所以在使用上必須按照RAiO的規則,如果選用SPI NOR FLASH 則可以使用各種通用的燒錄方法,轉圖軟件 Image_Tool_v1.1.0.1亦可在瑞佑官方網站取得。

http://www.raio.com.tw/tw/Support_RA887677.html

 

說明:

連接上使用STM32F103 透過FSMC 16bit 8080 interface 連接 RA8876,透過STM32F103 GPIO連接 KD040FM-1A LCM SPI interface,此TFT LCD需要先經由SPI 執行初始化,初始化完成後再由RA8876 RGB interface 驅動。

顯示的圖形必須先經由轉圖程式轉換成.bin檔案後預先燒錄到FLASH,RA8876 TFT LCD 控制器提供外擴SPI FLASH 圖庫功能,RA8876只需要接收MCU幾個命令,就可以使用DMA功能自動讀取外擴FLASH內的圖形數據到顯示緩衝記憶體,直接或經由RA8876 BTE功能執行圖形疊加之後再顯示到TFT LCD。

此演示效果即是使用RA8876 外擴圖庫DMA功能與RA8876 BTE功能再加上雙緩衝記憶體不斷切換顯示來達成影像更新的效果。

請參考以下視頻:

 

http://v.youku.com/v_show/id_XMzE4ODAyNjYwMA==.html?spm=a2h3j.8428770.3416059.1

 

程式下載:

https://drive.google.com/open?id=1Lr2Kq-JmTQclfo4NEX-KDLwh3gHsKbh3

https://pan.baidu.com/s/1mhJOJ3a

 

詳細資訊請至瑞佑科技網站 http://www.raio.com.tw

 

 

 

 

Keil C51 STARTING A FUNCTION AT A SPECIFIC ADDRESS 編譯函數到指定位址

QUESTION

How do I start my functions at a specific place in memory?

ANSWER

All you have to do is look at your map file to see what segment name your function is given. For example, if your segment name is ?PR?FUNCTION?TEXT2 then, in µVision2, go to the BL51 locate tab, under options for target. In the CODE input line, add ?PR?FUNCTION?TEXT2 (100h). This locates that function at address 100h. Rebuild your project and check your map file. You will notice that your function starts at address 0x100.

資料轉載 : http://www.keil.com/support/docs/1408.htm

keil c51 locating program start address 如何修改 keil c51 程式編譯的起始位址

QUESTION

How do I start my C51 program at an address other than 0000h?

ANSWER

There are three steps to relocate your C51 program to start at a different offset. Specifically, you must do the following:

  1. Change the startup code to begin at the target reset vector.
  2. Locate the interrupt vectors at their new location.
  3. Specify the code area for the linker.

The following instructions assume you want to relocate your program to 8000h.

To change the startup code…

  1. Copy the STARTUP.A51 file from the \C51\LIB directory to your project directory.
  2. Search for CSEG AT 0000h and change it to CSEG AT 8000h.
  3. Add the startup code to your project.

To locate the interrupt vectors…

In µVision…

  1. Select the C51 Compiler command from the Options menu.
  2. Select the Object tab.
  3. Change the Offset for the interrupt vectors to 0x8000.

In µVision Version 2…

  1. Select Options for Target from the Project menu.
  2. Select the C51 tab.
  3. Check the Interrupt vectors at address checkbox.
  4. Change the offset to 0x8000.

To specify the code area for the linker…

In µVision Version 1…

  1. Select the BL51 Code Banking Linker command from the Options menu.
  2. Select the Size/Location tab.
  3. Change the Code segment location to 8000 (note that 0x and H are not required here).

In µVision Version 2…

  1. Select Options for Target from the Project menu.
  2. Select the Target tab.
  3. Change the EPROM starting address to 0x8000.

Or, if you don’t use the memory layout dialog…

  1. Select Options for Target from the Project menu.
  2. Select the L51 Locate tab.
  3. Uncheck the Use Memory Layout from Target Dialog checkbox.
  4. Enter the base address of 0x8000 for the Code space.

Finally

Rebuild your program and check the M51 map file to make sure your program begins at the appropriate address.

 

資料轉載 :  http://www.keil.com/support/docs/189.htm

RA8806 STN LCD Driver and Demo Drive By STM32 FSMC

RA8806是一款內建雙圖層顯示內存的 STN LCD 控制器,支援圖形與文字模式,另外內嵌了字庫並分成簡中、繁中、日文3種版本與內嵌了電阻式觸摸屏控制器,高整合性與多樣的功能,能有效減短開發時程。

RA8806常驅動的解析度有240×160、320×240,支援3V或5V系統,是簡易優秀的工業控制用 STN  LCD顯示解決方案。

 

RA8806驅動程序基於STM32F103 MCU FSMC,除了RA8806基本初始化程序,還提供畫點、線、矩形、圓形等繪圖API與圖形填充、文字填充、觸模屏控制API,完整的Demo程序請由以下路徑觀看Demo視頻與下載。

Video:

 

RA8806 Driver and Demo video – youku

 

Code:

RA8806 Driver and Demo code download

RA8806 Driver and Demo code download – 百度

 

STM32 FSMC Drive RA6963 STN LCD Controller

由於STM32Fxxx系列MCU成為市場上熱門的微控制器,其內建的FSMC LCD驅動介面可以直接連接intel 8080 interface,ST原廠提供的firmware容易校調,可免去使用MCU IO模擬8080時序,並且提高存取LCD控制器的效率。

RA6963兼容於T6963,T6963一直都是工業常用的STN LCD顯示解決方案,以下實現STM32 FSMC + RA6963驅動,提供RA6963初始化程序,另外畫點、線、矩形、圓形等繪圖API以及ASCII 文字與圖形寫入的API,方便大家更快更容易的上手。

擷取3擷取4擷取1擷取2

MCU : STM32F103

STN LCD Controller : RA6963

Resolution : 240×64

Demo Video:

 

RA6963 Driver and Demo video – youku

 

Demo code:

RA6963 Driver and Demo code

RA6963 Driver and Demo code 百度

RA8816N-J STN LCD Controller Driver and Demo

RA8816N-J STN LCD Controller Driver and Demo

MCU interface : STM32F103 FSMC (cpu_8080)/ SPI 4 WIRE

LCD resolution: 144×64

TYPE: COG Chip

此處以stm32f103 mcu作為控制IC,驅動RA8816N STN液晶控制器,提供RA8816N日文版的LCD控制器驅動程式與Demo code,容易移植到其他MCU使用。

 RA8816N STN LCD 控制器支援圖形與文字模式,文字模式分為日文、繁中、簡中3種版本,讓使用者可以更靈活與方便的應用文字顯示,避免需要大容量的MCU ROM來存放想要顯示的字體bitmap資料。

RA8816N 適用於各種低端顯示設備,如手持式量測儀表、門禁刷卡系統、電話機、音響設備、

各類測試機台、家電設備、多功能事務機、咖啡機…等等,簡化圖形與文字的呈現,容易上手。

 

Video:

 

RA8816N Driver and Demo video – youku

 

Code:

RA8816N Driver and Demo code

RA8816N Driver and Demo code – 百度