通信電纜 網(wǎng)絡(luò)設(shè)備 無線通信 云計(jì)算|大數(shù)據(jù) 顯示設(shè)備 存儲設(shè)備 網(wǎng)絡(luò)輔助設(shè)備 信號傳輸處理 多媒體設(shè)備 廣播系統(tǒng) 智慧城市管理系統(tǒng) 其它智慧基建產(chǎn)品
東莞市軒耀自動化科技有限公司
暫無信息 |
閱讀:278發(fā)布時(shí)間:2017-4-17
SMC與LCD控制器的交互
在與一些存儲設(shè)備進(jìn)行交互時(shí),會有一個(gè)比較復(fù)雜的時(shí)序。比如寫入該LCD控制器的寄存器時(shí):
而且,引腳間電平改變的時(shí)間差也是有一定的規(guī)定的。
若使用SMC的話,做好相應(yīng)的配置后,就會自動地完成這些時(shí)序的控制。并且,芯片會對一段地址進(jìn)行映射,當(dāng)訪問相應(yīng)區(qū)間的地址時(shí),就會交由SMC來完成實(shí)際的訪問工作:
而LCD控制器為SMC的片選設(shè)備1,所以在訪問地址在區(qū)間 [0x6100 0000, 0x61FF FFFF] 時(shí),會實(shí)際訪問到LCD控制器。而RS接的是數(shù)據(jù)線A1,所以根據(jù)訪問地址的第1位(從0數(shù)起)的不同,會影響RS引腳電平的高低。如在訪問地址0x6100 0000時(shí)RS為低電平,而訪問0x6100 0002時(shí)其為高電平。
三、 SMC的時(shí)序設(shè)置
可以在LCD控制器的芯片手冊上找到相應(yīng)的時(shí)序:
MCK為96 MHz時(shí),設(shè)置如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #define ILI93XX_LCD_CS 1 #define SMC_CS SMC->SMC_CS_NUMBER[ILI93XX_LCD_CS]
/* 如果使用ASF的PMC模塊,調(diào)用這個(gè)即可使能外設(shè)的時(shí)鐘*/ pmc_enable_periph_clk(ID_SMC);
SMC_CS.SMC_SETUP = SMC_SETUP_NWE_SETUP(1) | SMC_SETUP_NCS_WR_SETUP(1) | SMC_SETUP_NRD_SETUP(1) | SMC_SETUP_NCS_RD_SETUP(1); SMC_CS.SMC_PULSE = SMC_PULSE_NWE_PULSE(5) | SMC_PULSE_NCS_WR_PULSE(5) | SMC_PULSE_NRD_PULSE(15) | SMC_PULSE_NCS_RD_PULSE(15); SMC_CS.SMC_CYCLE = SMC_CYCLE_NWE_CYCLE(10) | SMC_CYCLE_NRD_CYCLE(300); /* 由NRD或NWE信號控制讀寫 */ SMC_CS.SMC_MODE = SMC_MODE_READ_MODE | SMC_MODE_WRITE_MODE; |
這個(gè)設(shè)置不用太嚴(yán)格,如ASF示例代碼中的設(shè)置就和這有點(diǎn)差距,但是都能夠成功運(yùn)行。另外,ASF中的示例代碼也是很好的學(xué)習(xí)材料。在Atmel Studio的Start Page中可以打開示例項(xiàng)目:
四、 LCD模塊的使用
在conf_board.h中,可以看到有兩個(gè)配置項(xiàng)。一般情況下,這兩個(gè)配置已經(jīng)在開發(fā)板支持模塊中做好定義了。但是,看完上一小節(jié)的話,也應(yīng)該知道它做出如此配置的原因。
由于這個(gè)LCD控制器的使用略為復(fù)雜(它的芯片手冊有100多頁),而ASF也實(shí)現(xiàn)了相關(guān)的模塊,所以這次就繼續(xù)使用ASF了。
ILI93xx中,實(shí)現(xiàn)了許多控制與繪圖模塊,也包含了一個(gè)英文字庫,可以很方便的進(jìn)行基本圖形和英文的繪制。
LCD的初時(shí)化。
1 2 3 4 5 6 7 8 9 10 | struct ili93xx_opt_t lcd_init_opt; lcd_init_opt.ul_width = ILI93XX_LCD_WIDTH; lcd_init_opt.ul_height = ILI93XX_LCD_HEIGHT; lcd_init_opt.foreground_color = COLOR_BLACK; lcd_init_opt.background_color = COLOR_WHITE;
/* 初始化 LCD */ ili93xx_init(&lcd_init_opt); /* 啟動LCD */ ili93xx_display_on(); |
將屏幕填充為天藍(lán)色。
1 2 3 4 | /* 像素格式為aRGB-888 */ const uint32_t sky_blue_rgb = 0x87CEEB; ili93xx_set_foreground_color(sky_blue_rgb); ili93xx_draw_filled_rectangle(0, 0, ILI93XX_LCD_WIDTH, ILI93XX_LCD_HEIGHT); |
繪制文字。
1 2 3 | /* 繪制文字 */ ili93xx_set_foreground_color(COLOR_BLACK); ili93xx_draw_string(50, 150, (uint8_t *)"Hello World!"); |
智慧城市網(wǎng) 設(shè)計(jì)制作,未經(jīng)允許翻錄必究 .? ? ?
請輸入賬號
請輸入密碼
請輸驗(yàn)證碼
請輸入你感興趣的產(chǎn)品
請簡單描述您的需求
請選擇省份