Categories
บทความ

เพิ่ม ฺBoard Support Package ใน MPLAB Harmony

วิธีการเพิ่ม Board Support Package (BSP) สำหรับ MPLAB Harmony สามารถทำได้โดยการคัดลอกไฟล์ bsp ที่มีอยู่แล้วมาแก้ไข ซึ่งวิธีการนี้จะช่วยให้เราเพิ่ม bsp ได้เร็วกว่าการมาเขียนเองใหม่หมด ตัวอย่างนี้จะคัดลอกไฟล์จากโฟล์เดอร์ bsp/pic32mz_ec_sk+s1d_pictail+wqvga มาแก้ไขให้เป็น bsp ของเราเองโดยใช้ชื่อว่า PIC32MZ SSD1963 ครับ

เริ่มจากคัดลอกโฟล์เดอร์ bsp/pic32mz_ec_sk+s1d_pictail+wqvga แล้วเปลี่ยนชื่อเป็น bsp/pic32mz_ssd1963 เสร็จแล้วให้เข้าไปแก้ไข source code ในไฟล์ bsp/pic32mz_ssd1963/bsp_sys_init.c และไฟล์ bsp/pic32mz_ssd1963/bsp_config.h ให้ตรงกับวงจรที่เราออกแบบ ต่อไปก็แก้ไขไฟล์ bsp/pic32mz_ssd1963/xml/bsp.xml ให้ตรงกับ hardware ของเราดังเช่น

<?xml version=”1.0″?>
<bsp name=”pic32mz_ssd1963″>
<function name=”USB_VBUS_SWITCH” pin=”RB13″ direction=”out” mode=”digital”/>
</bsp>

หลังจากนั้นให้เข้าไปเพิ่ม BSP ของเราในไฟล์ bsp/config/bsp.hconfig ตามตัวอย่างด้านล่างครับ

enum DS60001191_BSP
“PIC32MZ EC PIM w/ Bluetooth Audio Development Kit”
|| “PIC32MZ EC PIM w/ Explorer16”
|| “PIC32MZ EC Starter Kit”
|| “PIC32MZ EC Starter Kit w/ Multimedia Expansion Board (MEB) II”
|| “PIC32MZ EC Starter Kit w/ Multimedia Expansion Board (MEB) II and WVGA glass”
|| “PIC32MZ EC Starter Kit w/ S1D13517 Pictail+ and WQVGA glass”
|| “PIC32MZ SSD1963”

 

config BSP_USE_USBSWITCH
bool
depends on DS60001191_FAMILY = “PIC32MZ EC Starter Kit” ||
DS60001191_FAMILY = “PIC32MZ EC Starter Kit w/ Multimedia Expansion Board (MEB) II” ||
DS60001191_FAMILY = “PIC32MZ EC Starter Kit w/ Multimedia Expansion Board (MEB) II and WVGA glass” ||
DS60001191_FAMILY = “PIC32MZ EC Starter Kit w/ S1D13517 Pictail+ and WQVGA glass” ||
DS60001191_FAMILY = “PIC32MZ SSD1963”

 

config BSP_14
bool
depends on DS60001191_FAMILY = “PIC32MZ SSD1963”
select USE_GFX_TRULY_7_800X480_NEEDED
select USE_DRV_GFX_SSD1926_NEEDED
select USE_GFX_STACK
default y

 

config BSP_POSC_24MHz
bool
depends on DS60001191_FAMILY = “PIC32MZ EC PIM w/ Bluetooth Audio Development Kit” ||
DS60001191_FAMILY = “PIC32MZ EC PIM w/ Explorer16” ||
DS60001191_FAMILY = “PIC32MZ EC Starter Kit” ||
DS60001191_FAMILY = “PIC32MZ EC Starter Kit w/ Multimedia Expansion Board (MEB) II” ||
DS60001191_FAMILY = “PIC32MZ EC Starter Kit w/ Multimedia Expansion Board (MEB) II and WVGA glass” ||
DS60001191_FAMILY = “PIC32MZ EC Starter Kit w/ S1D13517 Pictail+ and WQVGA glass” ||
DS60001191_FAMILY = “PIC32MZ SSD1963”
default y

 

default “pic32mz_ssd1963” if  DS60001191_FAMILY = “PIC32MZ SSD1963”

 

ifblock DS60001191_FAMILY = “PIC32MZ SSD1963”
file BSP_pic32mz_ec_sk_s1d_pictail_wqvga_H “$HARMONY_VERSION_PATH/bsp/pic32mz_ssd1963/bsp_config.h” to “$PROJECT_HEADER_FILES/bsp/pic32mz_ssd1963/bsp_config.h”
file BSP_pic32mz_ec_sk_s1d_pictail_wqvga_C “$HARMONY_VERSION_PATH/bsp/pic32mz_ssd1963/bsp_sys_init.c” to “$PROJECT_SOURCE_FILES/bsp/pic32mz_ssd1963/bsp_sys_init.c”
compiler COMPILER_BSP_INCLUDE26 includepath “$HARMONY_VERSION_PATH/bsp/pic32mz_ssd1963”
endif

Categories
บทความ

เพิ่ม LCD Controller ใน MPLAB Harmony

การเพิ่ม LCD Controller ใน MPLAB เพื่อให้รองรับ LCD Controller ที่เราจะใช้สามารถทำได้โดยการคัดลอกไฟล์ต่างๆของ LCD Controller ที่มีอยู่แล้วมาแก้ไข วิธีการนี้จะง่ายและเร็วกว่าการเขียนเองใหม่หมด ตัวอย่างนี้จะเป็นการคัดลอก LCD Controller SSD1926 มาแก้ไขเพื่อใช้งานกับ LCD Controller SSD1963 ครับ

เริ่มจากคัดลอกโฟล์เดอร์ framework/driver/gfx/controller/ssd1926 แล้วแก้ไขชื่อเป็น framework/driver/gfx/controller/ssd1963 เสร็จแล้วให้เข้าไปเปลี่ยนชื่อไฟล์จาก ssd1926 เป็น ssd1963 หลังจากนั้นให้แก้ไข Source code ในไฟล์ framework/driver/gfx/controller/ssd1963/drv_gfx_ssd1963.h และ framework/driver/gfx/controller/ssd1963/src/drv_gfx_ssd1963.c ให้เป็นของ SSD1963 ในขั้นตอนการแก้ไข source code นี้จะขอข้ามไปนะครับ เนื่องจากการแก้ไข source code มีรายละเอียดค่อนข้างเยอะ

ต่อไปให้แก้ไข harmony config ในโฟล์เดอร์ framework/driver/gfx/controller/ssd1963/config ดังนี้

drv_gfx_ssd1963.hconfig

menu “SSD1963”

config USE_DRV_GFX_SSD1963_NEEDED
bool

config USE_DRV_GFX_SSD1963
bool “Use SSD1963 Driver?”
select DRIVER
select USE_DRV_PMP_NEEDED
default n if !USE_DRV_GFX_SSD1963_NEEDED
default y if USE_DRV_GFX_SSD1963_NEEDED
—help—
IDH_HTML_Graphics_Driver_Library
—endhelp—
endmenu

ifblock USE_DRV_GFX_SSD1963
file DRV_GFX_SSD1963_H “$HARMONY_VERSION_PATH/framework/driver/gfx/controller/ssd1963/drv_gfx_ssd1963.h” to “$PROJECT_HEADER_FILES/framework/driver/gfx/controller/gfx_ssd1963/drv_gfx_ssd1963.h”
file DRV_GFX_SSD1963_C “$HARMONY_VERSION_PATH/framework/driver/gfx/controller/ssd1963/src/drv_gfx_ssd1963.c” to “$PROJECT_SOURCE_FILES/framework/driver/gfx/controller/gfx_ssd1963/src/drv_gfx_ssd1963.c”
endif

ส่วนไฟล์ drv_gfx_ssd1963_config.h.ftl, drv_gfx_ssd1963_config_template.h, drv_gfx_ssd1963_init.c.ftl, drv_gfx_ssd1963_init_data.c.ftl ให้แก้ไขจาก SSD1926 เป็น SSD1963

สุดท้ายให้เพิ่มข้อความด้านล่างไปในไฟล์ framework/driver/gfx/controller/config/drv_gfx_controller.hconfig

source “$HARMONY_VERSION_PATH/framework/driver/gfx/controller/ssd1963/config/drv_gfx_ssd1963.hconfig”

Categories
บทความ

เพิ่ม LCD Display ใน MPLAB Harmony

วิธีการเพิ่ม LCD Display ใน MPLAB Harmony สามารถทำได้ง่ายๆโดยการคัดลอกไฟล์ของ LCD ที่มีอยู่แล้ว มาแก้ไขให้ตรงกับ LCD ที่เราต้องการครับ
ในตัวอย่างนี้จะคัดลอกไฟล์ LCD ของ truly_7_800x480 มาแก้ไขให้ใช้งานกับจอ LCD MI0700LT ครับ
ขั้นแรกให้คัดลอกโฟล์เดอร์ truly_7_800x480 แล้วเปลี่ยนชื่อเป็น mi0700lt_7_800x480 หลังจากนั้นให้เข้าไปเปลี่ยนชื่อไฟล์ดังนี้
drv_gfx_truly_7_800x480.h เปลี่ยนเป็น drv_gfx_mi0700lt_7_800x480.h
config/truly_7_800x480.hconfig เปลี่ยนเป็น config/mi0700lt_7_800x480.hconfig
เสร็จแล้วให้เข้าไปแก้ไขค่าต่างๆของ LCD ในไฟล์ drv_gfx_mi0700lt_7_800x480.h ให้ตรงกับ LCD ที่เราจะใช้ดังนี้

#define DISP_ORIENTATION 0
#define DISP_HOR_RESOLUTION 800
#define DISP_VER_RESOLUTION 480
#define DISP_DATA_WIDTH 18
#define DISP_HOR_PULSE_WIDTH 1
#define DISP_HOR_BACK_PORCH 46
#define DISP_HOR_FRONT_PORCH 210
#define DISP_VER_PULSE_WIDTH 1
#define DISP_VER_BACK_PORCH 23
#define DISP_VER_FRONT_PORCH 131
#define DISP_INV_LSHIFT 0
#define GFX_LCD_TYPE GFX_LCD_TFT
#define BACKLIGHT_ENABLE_LEVEL 1
#define BACKLIGHT_DISABLE_LEVEL 0
#define TCON_MODULE NULL

ต่อไปก็เข้าไปแก้ไขไฟล์ config/mi0700lt_7_800x480.hconfig ให้เป็นแบบด้านล่าง

menu “MI0700LT 7\” 800×480 (WVGA) Display”

config USE_GFX_MI0700LT_7_800X480_NEEDED
bool

config USE_GFX_MI0700LT_7_800X480
bool “Use MI0700LT 7\” 800×480 (WVGA) Display?”
default n if !USE_GFX_MI0700LT_7_800X480_NEEDED
default y if USE_GFX_MI0700LT_7_800X480_NEEDED
—help—
IDH_HTML_Graphics_Driver_Library
—endhelp—

endmenu

สุดท้ายให้เข้าไปเพิ่มข้อความด้านล่างในไฟล์ framework/driver/gfx/display/config/drv_gfx_display.hconfig

source “$HARMONY_VERSION_PATH/framework/driver/gfx/display/mi0700lt_7_800x480/config/mi0700lt_7_800x480.hconfig”