0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

英創(chuàng)信息技術嵌入式主板支持精確延時操作之二介紹

英創(chuàng)信息技術 ? 來源:英創(chuàng)信息技術 ? 作者:英創(chuàng)信息技術 ? 2020-01-17 11:08 ? 次閱讀

在《英創(chuàng)嵌入式主板支持精確延時操作》這篇文章中已經(jīng)講解了如何在EM335x系列的主板中進行精確延時的操作?,F(xiàn)在英創(chuàng)公司已經(jīng)將這部分工作移植到了EM9x60系列的主板中,這樣用戶在EM9x60上面同樣也可以進行精確延時的操作。

以EM9160工控主板為例,用其內部的定時器來實現(xiàn)精確延時的功能,EM9160內部定時器的輸入時鐘為50MHz,單位時間為20ns,通過將Linux系統(tǒng)的mem設備文件和mmap()函數(shù)結合起來使用,可直接對EM9160內部定時器的寄存器進行操作。為了使用示波器查看定時器的工作效果,再通過同樣的方式控制GPIO,通過mmap()的方式操作一路GPIO,在定時器開始計數(shù)和結束計數(shù)的時候進行拉高拉低的操作,這樣就能清楚直觀的在示波器中看到實際的延時時間。實現(xiàn):(1)設置GPIO,(2)啟動定時器,當檢測到定時器計數(shù)完畢,(3)再設置GPIO,共三個步驟,就可產(chǎn)生精確時間間隔的脈沖。

將/dev/mem/設備文件中定時器的地址映射到用戶進程空間的代碼:
void *timer_em9x60_pin_config(unsigned int BASE)
{
int mem_fd;
void *base;
mem_fd = open('/dev/mem', O_RDWR|O_SYNC);
printf('mem_fd is %d\n', mem_fd);
/* mmap Timer */
base = mmap(
NULL, //起始地址
DMTIMER_DEV_SIZE,//映射的文件內容的大小
PROT_READ|PROT_WRITE,//映射區(qū)域可讀可寫
MAP_SHARED,//映射區(qū)域的寫入數(shù)據(jù)會寫回到原來的文件
mem_fd,
BASE //被映射的硬件地址
);
close(mem_fd);
return base;
}

成功執(zhí)行時,mmap()函數(shù)返回被映射區(qū)的指針。普通文件被映射到進程地址空間后,進程可以像訪問普通內存一樣對文件進行訪問,不必再調用read(),write()等操作。只需要使用返回的地址指針在對應的寄存器的偏移地址賦值,就可以完成操作。在例程中已經(jīng)將函數(shù)接口引出(詳細的代碼請參考例程):
ptr=Timer_Init(); //初始化,將定時器地址映射到用戶進程
ptr1=PMC_Init(); //初始化定時器時鐘
Timer_Start(ptr, ptr1, GPIO1, 0x00ff); //啟動定時器,并設置時間和哪一位GPIO

定時器是從0計數(shù)到0xffff,需要實現(xiàn)定時功能,我們就要改變定時器的初值,上面的程序中0x00ff為定時器的初值,前面提到過由于EM9160定時器時鐘為50MHz,所以定時器單位時間為1/50000000=20ns,假設程序訪問寄存器還需要花費時間T0,在計算初值的時候,就需要加上這一部分時間才能保證準確性,因此定時器取值的計算公式為:

T = 目標延時 / 20ns - T0

經(jīng)過測試,執(zhí)行一次程序訪問寄存器所需花費的時間大約為T0=600ns。舉個例子,比如目標延時為2μs,那么定時器初值為:(2000/20)-0x1b,也就是0x0049,測試的時候帶入這個值,再進行微調,即可得到想要的結果。

使用英創(chuàng)工控主板運行例程測試,分別測試延時1μs,1.5μs,2μs,5μs,時的精度,結果如下:

目標延時 定時器取值 實際延時
Min Max
1us 0x0017 0.95us 1.16us

1μs的測試波形

目標延時 定時器取值 實際延時
Min Max
1.5us 0x0030 1.40us 1.62us


1.5μs的測試波形

目標延時 定時器取值 實際延時
Min Max
2us 0x0049 1.86us 2.12us


2μs的測試波形

目標延時 定時器取值 實際延時
Min Max
5us 0x00df 4.88us 5.12us


5μs的測試波形

目標延時 定時器取值 實際延時
Min Max
10us 0x01d9 9.90us 10.20us


10μs的測試波形

可以看到,在1μs時,誤差范圍在±200ns左右,隨著延時的增加,精確度將越來越高,在10μs的時候,誤差已經(jīng)非常小了。

通過以上方案實現(xiàn)了在用戶進程對精確延時的操作,詳細的操作代碼請參考例程。

注意事項:我們推薦客戶直接使用例程中引出的接口進行操作,不推薦客戶對硬件訪問這一部分代碼進行修改,以免在操作的時候出現(xiàn)無法預估的錯誤。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11312

    瀏覽量

    209711
  • 嵌入式主板
    +關注

    關注

    7

    文章

    6085

    瀏覽量

    35402
收藏 人收藏

    評論

    相關推薦

    ARM架構嵌入式主板特點

    嵌入式主板可以理解為嵌入在設備中用于控制和數(shù)據(jù)處理的CPU板,也就是設備的“大腦”。當主板嵌入到設備中,當然對
    的頭像 發(fā)表于 12-31 16:03 ?171次閱讀
    ARM架構<b class='flag-5'>嵌入式</b><b class='flag-5'>主板</b>特點

    什么是嵌入式?一文讀懂嵌入式主板

    在現(xiàn)代科技浪潮中,嵌入式技術已成為支撐各種智能設備和系統(tǒng)運行的核心力量。那么,究竟什么是嵌入式?嵌入式系統(tǒng),顧名思義,是將計算機的硬件和軟件嵌入
    的頭像 發(fā)表于 10-16 10:14 ?1110次閱讀

    嵌入式主板是什么意思?嵌入式主板全面解析

    嵌入式主板,通常被稱為嵌入式系統(tǒng)的核心組件,是一種用于控制和數(shù)據(jù)處理的計算機硬件,其設計旨在嵌入特定設備中執(zhí)行專門任務。嵌入式
    的頭像 發(fā)表于 09-30 10:05 ?569次閱讀

    開啟全新AI時代 智能嵌入式系統(tǒng)快速發(fā)展——“第六屆國產(chǎn)嵌入式操作系統(tǒng)技術與產(chǎn)業(yè)發(fā)展論壇”圓滿結束

    粵港澳大灣區(qū)國家技術創(chuàng)新中心操作系統(tǒng)業(yè)務負責人柯善風做了“國創(chuàng)面向工業(yè)機器人的OS解決方案和落地實踐”專題報告??律骑L介紹創(chuàng)中心的發(fā)展情況,分享了面向工業(yè)場景、自主可控、中立普惠
    發(fā)表于 08-30 17:24

    飛凌嵌入式技術創(chuàng)新日(深圳站)圓滿落幕

    2024年8月26日下午,飛凌嵌入式技術創(chuàng)新日深圳站在深圳威尼斯迪格酒店盛大舉行,此次活動匯聚了近200位嵌入式技術領域的專家和企業(yè)代表,
    的頭像 發(fā)表于 08-30 15:42 ?366次閱讀
    飛凌<b class='flag-5'>嵌入式</b><b class='flag-5'>技術</b>創(chuàng)新日(深圳站)圓滿落幕

    飛凌嵌入式技術創(chuàng)新日(深圳站)精彩回顧

    工的分享,則更加側重于嵌入式技術的研發(fā)和創(chuàng)新,為與會者提供了新的問題解決思路;最后,粵港澳大灣區(qū)國創(chuàng)中心技術專家的溫老師 介紹了openEu
    發(fā)表于 08-28 09:06

    宇瓏RK3576核心板與嵌入式主板通用平臺介紹

    宇瓏RK3576核心板與嵌入式主板通用平臺介紹
    的頭像 發(fā)表于 08-26 17:23 ?588次閱讀
    宇瓏RK3576核心板與<b class='flag-5'>嵌入式</b><b class='flag-5'>主板</b>通用平臺<b class='flag-5'>介紹</b>

    RK3576核心板與嵌入式主板通用平臺介紹

    RK3576核心板與嵌入式主板通用平臺介紹
    的頭像 發(fā)表于 08-26 11:37 ?770次閱讀
    RK3576核心板與<b class='flag-5'>嵌入式</b><b class='flag-5'>主板</b>通用平臺<b class='flag-5'>介紹</b>

    學習hypervisor嵌入式產(chǎn)品安全設計

    第一部分(第1~2章)介紹Hypervisor基礎,涵蓋虛擬化技術與實現(xiàn)、主流的嵌入式Hypervisor產(chǎn)品,以及基于分離內核的嵌入式Hypervisor等內容。第
    發(fā)表于 08-25 09:11

    RT-Thread出席第六屆中國嵌入式技術大會,共話嵌入式操作系統(tǒng)與智能工業(yè)

    第六屆中國嵌入式技術大會將于8月27-28日在深圳會展中心(福田)1號館舉行。本屆大會以“AI與開源,開啟嵌入式系統(tǒng)智能新時代”為主題,聚焦人工智能與嵌入式應用、
    的頭像 發(fā)表于 08-03 08:35 ?420次閱讀
    RT-Thread出席第六屆中國<b class='flag-5'>嵌入式</b><b class='flag-5'>技術</b>大會,共話<b class='flag-5'>嵌入式</b><b class='flag-5'>操作</b>系統(tǒng)與智能工業(yè)

    第六屆國產(chǎn)嵌入式操作系統(tǒng)技術與產(chǎn)業(yè)發(fā)展論壇議程發(fā)布

    嵌入式系統(tǒng)快速發(fā)展,操作系統(tǒng)在智能系統(tǒng)正在發(fā)揮越來越大的作用,嵌入式操作系統(tǒng)急需升級換代適配智能系統(tǒng)技術和應用架構的新發(fā)展。 第六屆國產(chǎn)
    發(fā)表于 07-26 10:54

    嵌入式工控機主板應用場景

    嵌入式工控機主板在多個領域中有著廣泛的應用,其特點包括體積小、集成度高、功耗低以及控制功能強等。以下是嵌入式工控機主板的一些主要應用領域:
    的頭像 發(fā)表于 04-25 17:06 ?1680次閱讀

    嵌入式主板,你了解多少?

    嵌入式主板,也稱為嵌入式計算機主板,是一種專門設計用于嵌入式系統(tǒng)的計算機主板。與臺式機和筆記本電腦中使用的常規(guī)
    的頭像 發(fā)表于 04-17 15:11 ?1464次閱讀

    再談嵌入式實時操作系統(tǒng)

    由于嵌入式處理器早期功能單一且運算能力不高,嵌入式應用已不能滿足各個領域不斷增長的需求。嵌入式操作系統(tǒng)應運而生,嵌入式
    的頭像 發(fā)表于 04-09 17:27 ?811次閱讀
    再談<b class='flag-5'>嵌入式</b>實時<b class='flag-5'>操作</b>系統(tǒng)

    定制嵌入式主板,需要考慮的功能有哪些?

    隨著科技的不斷發(fā)展和進步,嵌入式系統(tǒng)在各行各業(yè)中得到了廣泛的應用。嵌入式主板作為嵌入式系統(tǒng)的核心組件,起著至關重要的作用。在定制嵌入式
    的頭像 發(fā)表于 02-29 17:38 ?527次閱讀
    定制<b class='flag-5'>嵌入式</b><b class='flag-5'>主板</b>,需要考慮的功能有哪些?