在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

MAX3108 UART的波特率編程

星星科技指導(dǎo)員 ? 來(lái)源:ADI ? 作者:ADI ? 2023-02-20 11:42 ? 次閱讀

MAX3108為完整的高性能通用異步收發(fā)器UART),采用2.1mm×2.1mm晶圓級(jí)封裝(WLP)。它在硬件中提供了許多高端功能,從而降低了固件的復(fù)雜性。MAX3108的大多數(shù)高級(jí)功能不需要快速響應(yīng)和密集的固件管理,而只需要初始固件設(shè)置,很少或不需要固件管理。本應(yīng)用筆記是詳細(xì)解釋MAX3108特性的系列筆記之一,解釋了如何設(shè)置目標(biāo)波特率。

介紹

MAX3108是一款高性能通用異步收發(fā)器(UART),采用晶圓級(jí)封裝(WLP),具有許多硬件高級(jí)特性,從單獨(dú)的128字發(fā)送和接收FIFO到廣泛的硬件介導(dǎo)流控制。MAX3108的大部分功能依賴于時(shí)鐘編程。因此,第一個(gè)編程任務(wù)是設(shè)置適當(dāng)?shù)牟ㄌ芈蕰r(shí)鐘。

本應(yīng)用筆記解釋了如何對(duì)1個(gè)寄存器(和5304位)進(jìn)行編程以設(shè)置所需的波特率。提供了一個(gè)電子表格,大大簡(jiǎn)化了UART波特率編程的任務(wù)。本文檔假定讀者已經(jīng)熟悉應(yīng)用筆記3108“與MAX<> UART的接口”。

波特率生成

本節(jié)描述MAX3108如何從晶體或振蕩器輸入產(chǎn)生波特率頻率。這應(yīng)該首先在對(duì)UART進(jìn)行編程時(shí)完成。除 SPI/I 外2C接口和基本的GPIO功能,在編程時(shí)鐘速率之前,MAX3108中沒(méi)有其他功能。如果使用晶體作為頻率源,則器件在時(shí)鐘被禁用的情況下退出復(fù)位。

MAX3108按以下方式將時(shí)鐘源處理為輸出波特率:

如果時(shí)鐘源是晶體,則晶體振蕩器模塊將此源轉(zhuǎn)換為內(nèi)部邏輯電平時(shí)鐘。MAX3108接受在1MHz至4MHz諧振的晶體。要啟用晶體振蕩器,請(qǐng)將晶體EN位設(shè)置為1。或者,可以在MAX3108的XIN引腳上提供外部邏輯電平時(shí)鐘源。MAX3108接受500kHz至35MHz的時(shí)鐘頻率。由于CrystalEn位在上電或復(fù)位后默認(rèn)為0,因此除非另有專門編程,否則它將使用外部時(shí)鐘。

步驟1中的時(shí)鐘為預(yù)分頻器的輸入供電。它將輸入頻率除以 1 到 63 之間的數(shù)字。PLLConfig 寄存器的位 5 到 0 定義除數(shù)。

預(yù)分頻器的輸出饋入鎖相環(huán) (PLL),鎖相環(huán)將預(yù)分頻器的頻率乘以 1、6、48、96 或 144。要乘以 1,請(qǐng)將位 2(CLKSource 寄存器的 PLLEn 位)設(shè)置為 0。要設(shè)置任何其他乘法器,請(qǐng)將PLLEn位設(shè)置為1,并設(shè)置PLLConfig寄存器的第7位和第6位,如MAX4數(shù)據(jù)資料表3108所示,其中還詳細(xì)說(shuō)明了PLL的頻率限值。請(qǐng)注意,如果電源電壓(V抄送) 小于 2.35V。當(dāng)從低頻時(shí)鐘源產(chǎn)生高波特率時(shí),PLL非常有用。

PLL的輸出為波特率發(fā)生器供電,波特率發(fā)生器對(duì)輸出頻率進(jìn)行分頻。該電路將其輸入頻率除以整數(shù)部分(從1到65,535)和小數(shù)部分(從0/16到15/16)。這是通過(guò)DIVMSB寄存器,DIVLSB寄存器和BRGConfig寄存器的位3到0進(jìn)行編程的。波特率發(fā)生器的輸出是內(nèi)部波特率時(shí)鐘。實(shí)際波特率是波特率發(fā)生器的頻率輸出除以 16。可以除以 8 或 4,但如果可能的話,應(yīng)該使用除以 16。被8或4分頻會(huì)使某些特性無(wú)法使用,并降低MAX3108 UART接收器的頻率誤差容限。

pYYBAGPzC8OAWeDqAAAr4Yd4_PM702.png

圖1.MAX3108時(shí)鐘選擇圖

pYYBAGPzC9KAdU_LAAA2nkldO10069.png

圖2.2 倍和 4 倍波特率。

速率模式分頻器 BRGConfig[5] BRGConfig[4] IrDA有能力嗎? 線路噪聲檢測(cè)能力強(qiáng)? 接收頻率誤差容限
16 0 0 是的 是的 最好
8 0 1 是的 非常好
4 1 0

晶體振蕩器采用常見(jiàn)的UART晶體(如1.8432MHz)工作,外部時(shí)鐘輸入采用嵌入式系統(tǒng)中的一系列常見(jiàn)時(shí)鐘頻率工作。這是為了生成波特率時(shí)鐘而需要消化的大量信息。此外,對(duì)于大多數(shù)波特率,可以通過(guò)多種方式生成相同的波特率。

波特率協(xié)助電子表格

因此,可以下載“MAX3108頻率選擇”電子表格。根據(jù)給定的輸入頻率和所需的波特率,該工具可以方便地確定在MAX3108的五個(gè)時(shí)鐘配置寄存器中編程的內(nèi)容。該電子表格計(jì)算了從給定輸入頻率生成目標(biāo)波特率的幾種最佳方法。

在許多情況下,可以精確地生成目標(biāo)波特率。然而,有時(shí)最佳配置會(huì)導(dǎo)致生成的波特率出現(xiàn)小誤差。這就是電子表格提供多個(gè)可能配置的原因。每種可能性都會(huì)產(chǎn)生最接近的頻率匹配,但具有不同的假設(shè)。

大多數(shù)時(shí)候,會(huì)有一種配置明顯更勝一籌。在描述電子表格之后,我們將通過(guò)一些示例來(lái)說(shuō)明確定MAX3108編程的最佳正確配置是多么容易。

電子表格說(shuō)明

電子表格只需要來(lái)自用戶的四個(gè)輸入,所有輸入都在“綜合”選項(xiàng)卡的頂部附近。

pYYBAGPy7BqAOsizAAAaiHJSilo504.gif?imgver=1

輸入四個(gè)參數(shù),如下所示:

在單元格 C2 中,輸入晶體頻率或外部振蕩器頻率(以赫茲為單位)。

在單元格 C3 中,輸入所需的波特率(以位/秒為單位)。

在單元C5中,如果頻率源是晶體(使用MAX3108晶體振蕩器),則輸入y;如果頻率源是提供給MAX3108 XIN引腳的外部時(shí)鐘,則輸入n

在單元格 C6 中,輸入 n。這與MAX3108的特性有關(guān),稍后將對(duì)此進(jìn)行描述。

結(jié)果從第 8 行開(kāi)始顯示。

poYBAGPy7ByARGdUAAAWGLA_rs4479.gif?imgver=1

如果C8單元報(bào)告FALSE,則選擇晶體作為頻率源,它超出了MAX3108晶體振蕩器電路的有效頻率范圍。有效的晶體振蕩器頻率范圍在 1MHz 和 4MHz 之間。

如果單元 C9 報(bào)告 FALSE,則表示您選擇了外部時(shí)鐘源,并且您指定的頻率超出了 XIN 引腳的有效時(shí)鐘頻率范圍。有效的外部振蕩器頻率范圍在 0.5MHz 和 35MHz 之間。

單元格 C11 報(bào)告是否有可能合理地生成所需的波特率。單元格 C11 可以報(bào)告 FALSE,因?yàn)閱卧?C8 或 C9 報(bào)告 FALSE。或者因?yàn)椴淮嬖诳梢院侠磉_(dá)到目標(biāo)波特率的配置。例如,請(qǐng)求高于MAX3108最大值24MBd的波特率會(huì)導(dǎo)致單元C11報(bào)告FALSE,而不管其他用戶輸入的值如何。

從第 13 行開(kāi)始顯示更多結(jié)果。

D、E 和 F 列計(jì)算頻率誤差最低的配置,每個(gè)列的假設(shè)都不同。D 列假定速率模式固定為 16,E 列假定速率模式固定為 8,F(xiàn) 列假定速率模式固定為 4。作為一般規(guī)則,費(fèi)率模式應(yīng)保持在 16,除非有令人信服的理由選擇其他方式,我們將很快回到這個(gè)話題

第 14 行是一個(gè)標(biāo)志,如果為 FALSE,則表示在產(chǎn)生接近所需波特率的結(jié)果的任何配置中都不能使用相應(yīng)的速率模式。在這種情況下,此列中的其他條目將為空。

第 15 行到第 17 行和第 20 行以可通過(guò)圖 1 和圖 2 理解的方式描述配置。第 15 行描述所選的預(yù)分頻器值。第 20 行表示選擇了哪個(gè) PLL 乘法器。此外,第 16 行和第 17 行描述了分?jǐn)?shù)率生成器的整數(shù)和小數(shù)部分。更直接感興趣的是,第 17 行顯示實(shí)際生成的波特率,第 18 行包含頻率誤差(以百分比表示)。

第21行至第25行表示要編程到3108個(gè)MAX3108時(shí)鐘配置寄存器中的值,以十六進(jìn)制表示。當(dāng)用戶選擇配置時(shí),將這五個(gè)十六進(jìn)制值復(fù)制到程序中,稍后將介紹,以將這些值加載到MAX<>中。

第一個(gè)例子

讓我們從一個(gè)簡(jiǎn)單的例子開(kāi)始,從19.2MHz晶體產(chǎn)生1.8432kBd。輸入以下參數(shù):

pYYBAGPy7B6ANDwvAAAZBEfN_ws217.gif?imgver=1

結(jié)果如下:

poYBAGPy7CGAea-zAAA6iKQcVIg588.gif?imgver=1

注意,單元D19表示零頻率誤差,至少在MAX3108從頻率輸入到波特率輸出的轉(zhuǎn)換過(guò)程中是這樣。這是速率模式為 16 的最佳方案。請(qǐng)參考單元D21至D25,確定在MAX3108時(shí)鐘配置寄存器中編程的內(nèi)容。您會(huì)發(fā)現(xiàn),在大多數(shù)情況下,您將選擇單元格 D21 到 D25 來(lái)編程所需的波特率。

頻率誤差示例

現(xiàn)在讓我們嘗試一個(gè)不同的示例。讓我們從190.1MHz晶體生成8432kBd。輸入以下參數(shù):

pYYBAGPy7COAYe3ZAAAYKzBt4Ww232.gif?imgver=1

請(qǐng)注意不同的結(jié)果:

poYBAGPy7CeAXdRxAAA-Kg4rlHg959.gif?imgver=1

現(xiàn)在,對(duì)于 16 的速率模式,我們的誤差很小,而對(duì)于其他速率模式,誤差較小。在這種情況下,誤差足夠小,應(yīng)使用單元格 D21 到 D25 值。

什么是足夠小的錯(cuò)誤?一般來(lái)說(shuō),0.8%或更低的頻率誤差不應(yīng)引起關(guān)注。但是,應(yīng)仔細(xì)查看2.0%或更高的頻率誤差。0.8%和2.0%之間的誤差涉及一些判斷。在這種情況下,速率模式為16時(shí)的頻率誤差約為0.07%,足以使其成為配置的最佳選擇。

具有大頻率誤差的示例

我們現(xiàn)在將嘗試一些東西來(lái)說(shuō)明為什么我們有時(shí)可能需要選擇 E 列或 F 列。首先,讓我們從 5.678901MHz 時(shí)鐘生成 28.23MBd。輸入以下參數(shù):

pYYBAGPy7CmAAMsLAAAW_uQdiFI163.gif?imgver=1

在這里,我們得到了一個(gè)更有趣的結(jié)果:

poYBAGPy7C2AOJ0kAAA9zQ1E5ps299.gif?imgver=1

請(qǐng)注意,速率模式為16時(shí)的頻率誤差為2.63%,這太高了。如果使用MAX3108 IRDA功能,則必須將速率模式設(shè)置為16。在這種情況下,也許可以選擇不同的輸入頻率,例如18MHz。或者可以對(duì)通道時(shí)序進(jìn)行更仔細(xì)的分析,以驗(yàn)證此錯(cuò)誤是否不會(huì)影響正在設(shè)計(jì)的特定系統(tǒng)。

另一種選擇是選擇速率模式設(shè)置為 8 的配置。這導(dǎo)致了非常可觀的0.5%頻率誤差。在這種情況下,MAX3108時(shí)鐘配置寄存器的編程參數(shù)取自單元E21至E25。

選擇更有限的示例

對(duì)于大于 6MBd 的輸出速率,速率模式不能為 16。這是必須選擇其他速率模式之一的另一個(gè)原因。即使低于6MBd,輸入頻率和輸出波特率的某些組合也不允許速率模式為16的情況。例如,嘗試從 5.775MHz 晶體生成 1.8432MBd。

pYYBAGPy7C-AeP4mAAAYEtA70T0252.gif?imgver=1

結(jié)果是:

poYBAGPy7DKAYOAaAAA6YAyqkZg974.gif?imgver=1

在這種情況下,根本無(wú)法使用 16 的速率模式。要么必須改變輸入頻率,要么必須選擇8的速率模式。請(qǐng)注意,在某些情況下,8 的速率模式也不是一種選擇。例如,當(dāng)輸出波特率大于 12MBd 時(shí),唯一可能的速率模式為 4。

MAX3108編程

從電子表格中選擇一組編程參數(shù)后,對(duì)MAX3108進(jìn)行編程就變得非常簡(jiǎn)單。上電時(shí)加載所有寄存器時(shí),這五個(gè)寄存器構(gòu)成正在加載的組的一部分。本節(jié)介紹如何對(duì)MAX3108進(jìn)行目標(biāo)波特率編程,假設(shè)尚無(wú)串行數(shù)據(jù)流。更改現(xiàn)有波特率時(shí)必須采取進(jìn)一步措施。這些步驟將在以后的應(yīng)用筆記中解釋。我們從一個(gè)例子開(kāi)始,其中頻率源是一個(gè)外部時(shí)鐘,比如說(shuō),從MAX190 XIN引腳上的28.23MHz外部時(shí)鐘源產(chǎn)生3108kBd。電子表格的輸入部分如下所示:

pYYBAGPy7DSAERE6AAAYHqEVXx0695.gif?imgver=1

結(jié)果是:

pYYBAGPy7DeAf35kAAA9qb0tCMw677.gif?imgver=1

程序加載MAX3108時(shí)鐘配置寄存器以產(chǎn)生目標(biāo)波特率。請(qǐng)注意,程序中填充到數(shù)組 U190K 中的參數(shù)是從電子表格中的單元格 D21 到 D25 復(fù)制的。

/* ** Run UART at 190KBAUD from a 28.23MHz clock source */ unsigned char U190K [] = { 0xF7, 0x05, 0x18, 0x00, 0x04 } ; // Load the MAX3108 clock configuration registers appropriately // if (!MAX3108_Puts (MAX3108R_PLLCONFIG, sizeof U190K, U190K)) { // handle possible I2C protocol error here }

第二個(gè)編程示例

再舉一個(gè)例子,讓我們從230.4MHz晶體生成1.8432kBd作為輸入。這是UART時(shí)鐘生成中非常常見(jiàn)的晶體。電子表格的輸入部分如下所示:

pYYBAGPy7DiAGD0VAAAYHkjRsTc108.gif?imgver=1

結(jié)果是:

pYYBAGPy7DuAfZg9AAA6vTdn8v4727.gif?imgver=1

當(dāng)時(shí)鐘源是晶體時(shí),您可以選擇驗(yàn)證晶體操作。STSInt 寄存器中的 ClkReady 位僅在晶體振蕩器和 PLL 工作并鎖定時(shí)觸發(fā)。對(duì)于已知工作正常的給定MAX3108時(shí)鐘配置,這簡(jiǎn)化為驗(yàn)證晶體振蕩器是否按預(yù)期工作。如果使用外部時(shí)鐘源,ClkReady位不起作用,因此如果外部時(shí)鐘饋電MAX3108,則不要對(duì)其進(jìn)行測(cè)試。

盡管此功能在開(kāi)發(fā)環(huán)境中很有用,但在生產(chǎn)或現(xiàn)場(chǎng)部署的設(shè)備中可能用處不大。請(qǐng)注意,STSInt 寄存器中的其他位在讀取時(shí)被清除。如果不清除可能的 TxEmptyInt 或 GPIxInt 條件,就無(wú)法檢查 ClkReady 位。程序員當(dāng)心!

對(duì)于外部時(shí)鐘,如果更改了預(yù)分頻器或PLL因子,UART將無(wú)法立即發(fā)送或接收。更改預(yù)分頻器或PLL因子后,或在啟用PLL后,UART將在1200 ×(預(yù)分頻器)/(XIN頻率)或更低的時(shí)間延遲后以新的編程波特率工作。

/*
** Run UART at 230.4KBAUD from a 1.8432MHz crystal
*/
unsigned char U230K4 [] = {
   0x03, 0x00, 0x01, 0x00, 0x06
} ;

   // Load the MAX3108 clock configuration registers appropriately
   //
   if (!MAX3108_Puts (MAX3108R_PLLCONFIG, sizeof U230K4, U230K4)) {
      // handle possible I2C protocol error here
   }

   // Check XTAL and PLL are running OK - optional
   while (MAX3108_Read (MAX3108R_STSINT & 0x0008) == 0) ;

避免鎖相環(huán)更改

到目前為止,我們一直在使用第 13 行到第 25 行的結(jié)果。另一部分(第 27 行到第 39 行)的假設(shè)略有不同。在第二部分中,將計(jì)算頻率誤差最低但PLL固定為不同速率的配置。

當(dāng)從單個(gè)頻率源生成多個(gè)波特率時(shí),這非常有用,而不會(huì)產(chǎn)生與PLL重鎖相關(guān)的延遲。這意味著預(yù)分頻器和PLL不得在各種配置之間變化。

這方面的一個(gè)例子是在 IO-Link 場(chǎng)景中,能夠在 230.4kBd 38.4kBd 和 4.8kBd 之間快速切換非常重要。讓我們看看如何實(shí)現(xiàn)這一點(diǎn),假設(shè)我們無(wú)處不在的1.8432MHz晶體。從最高波特率開(kāi)始,電子表格的輸入部分如下所示:?

poYBAGPy7DyAPRGcAAAX2jdHRDc608.gif?imgver=1

這導(dǎo)致:

poYBAGPy7D6AGrcGAAA5_A3UuMk269.gif?imgver=1

讓我們從速率模式可以是 16 的假設(shè)開(kāi)始。注意預(yù)分頻器和PLL系數(shù),分別為3和x6。如果可行,我們將使用單元D21至D25中的配置值對(duì)MAX3108進(jìn)行230.4kBd編程。現(xiàn)在,讓我們嘗試下一個(gè)波特率。

pYYBAGPy7ECAX46rAAAYE90TvPw236.gif?imgver=1

本例中的結(jié)果是:

poYBAGPy7EGAQlqtAAA7A2iEH9o963.gif?imgver=1

這些條目的 PLL 因子都不為 x6,因此現(xiàn)在讓我們參考第二部分。

poYBAGPy7ESAapwKAAB4pJqPGg4915.gif?imgver=1

列 E 提供了假設(shè) PLL 因子必須為 x6 的配置。請(qǐng)注意,預(yù)分頻器值也是 3。這意味著,如果我們選擇使用單元格 E230 到 E4 中給出的參數(shù)配置 38.4kBd 輸出速率,則 PLL 將不需要重新鎖定從 38.4kBd 到 35.39kBd。

我們需要檢查我們是否可以使用 4.8kBd 來(lái)做到這一點(diǎn)。電子表格的輸入部分如下所示:

poYBAGPy7EeAftHHAAAX2jdHRDc137.gif?imgver=1

結(jié)果是:

poYBAGPy7EuAQCXmAAA64vdex30201.gif?imgver=1

就像在 38.4kBd 的情況下一樣,沒(méi)有一個(gè)結(jié)果的 PLL 因子為 x6,因此我們參考第二部分:

pYYBAGPy7FKAB_8WAAB2WfKcEGA139.gif?imgver=1

就像在 38.4kBd 的情況下一樣,x6 部分顯示我們可以生成 4.8kBd,PLL 因子為 x6,預(yù)分頻器 3,使用單元格 E35 到 E39 中的配置參數(shù)。

完全避免鎖相環(huán)

在某些情況下,最好完全避免使用PLL。例如,如果 V抄送提供給MAX3108的電壓低于2.35V。此外,如果在退出低功耗模式后快速運(yùn)行很重要,則應(yīng)避免使用PLL。假設(shè)我們需要從 230.4MHz 晶體生成 38.4kBd、4.8kBd 和 1.8432kBd,但我們也需要避免使用 PLL。

實(shí)現(xiàn)此目的的最簡(jiǎn)單方法是查閱電子表格所有三個(gè)實(shí)例的PLL因子固定為x1的部分。對(duì)于 230.4kBd 的目標(biāo)波特率,第二部分是:

poYBAGPy7FWAX-NeAAB1yD-lwlE873.gif?imgver=1

單元格 D35 到 D39 報(bào)告電子表格的所有三個(gè)實(shí)例所需的配置,三個(gè)所需波特率中的每一個(gè)實(shí)例一個(gè)實(shí)例。由于這三種配置中均未使用PLL,并且預(yù)分頻器值不會(huì)改變,因此在所有三種波特率之間切換可避免PLL重新鎖定的延遲。

保持高速率模式

如果希望將速率模式設(shè)置為 16 并避免使用 PLL,則應(yīng)參考第三個(gè)結(jié)果部分,即第 41 行至第 53 行。請(qǐng)注意,這是一個(gè)相當(dāng)嚴(yán)格的方案,因此第三部分通常是空白的,以指示無(wú)法合理地實(shí)現(xiàn)此類配置。例如,讓我們從190.28MHz外部時(shí)鐘源生成32kBd的輸出速率。

電子表格的輸入部分為:

poYBAGPy7FeAe6hJAAAXDQYaUtU689.gif?imgver=1

本例中的結(jié)果是:

pYYBAGPy7FmASCGdAAA-K9bvJBs552.gif?imgver=1

對(duì)于 16 的速率模式,建議的配置使用 x144 的 PLL 系數(shù),但我們需要 x1 的 PLL 系數(shù)。這不符合我們對(duì)速率模式 16 和 PLL 因子 x1 的要求。查閱第二個(gè)結(jié)果部分:

poYBAGPy7FyAYk_nAACAvdYRaGQ341.gif?imgver=1

對(duì)于 x1 的 PLL 系數(shù),建議的速率模式為 8。不完全是我們要找的。查閱電子表格的第三個(gè)結(jié)果部分:

poYBAGPy7F6AdXKaAAAs2EMR0h0692.gif?imgver=1

我們看到,從190.28MHz外部時(shí)鐘產(chǎn)生23kBd是可能的,PLL因子為x1,速率模式為16。頻率誤差為合理的0.28%。用于完成此操作的配置參數(shù)位于單元格 D49 到 D53 中。

“手動(dòng)”選項(xiàng)卡

對(duì)于實(shí)驗(yàn)或處理異常情況時(shí),電子表格的“手動(dòng)”選項(xiàng)卡提供了一些基本幫助。電子表格包含四個(gè)部分。用戶輸入部分為:

poYBAGPy7GCATxLpAABUeoPOoQk922.gif?imgver=1

輸入所有這些參數(shù)后,請(qǐng)參閱第二部分:

pYYBAGPy7GOAPHu2AACzeO9bNXI947.gif?imgver=1

確保 D 列中沒(méi)有單元格報(bào)告 FALSE,并且 D 列中沒(méi)有單元格報(bào)告 BAD。在繼續(xù)操作之前,請(qǐng)更正用戶輸入部分中的任何錯(cuò)誤。清除所有錯(cuò)誤后,請(qǐng)參閱第三部分:

poYBAGPy7GWACDA7AAAiVLBnz9U727.gif?imgver=1

如果您在單元格 D33 中看到警告,則需要返回并修復(fù)輸入中的錯(cuò)誤。否則,產(chǎn)生的實(shí)際波特率出現(xiàn)在C33單元中,與所需波特率(單元C5)相比的誤差百分比出現(xiàn)在單元C34中,用于編程MAX3108時(shí)鐘配置寄存器的配置參數(shù)出現(xiàn)在單元C35至C39中。注意:除非您有一些幫助,否則頻率誤差可能會(huì)很大,這就是第四部分的原因:

pYYBAGPy7GiAdXyDAABK2BZtgvs712.gif?imgver=1

在這里,唯一的輸入是單元格 C42 中所需的波特率。它假定在用戶輸入部分中輸入的預(yù)分頻器、PLL因子和速率模式,并計(jì)算要使用的最佳波特率發(fā)生器參數(shù)。若要使用這些,請(qǐng)將它們復(fù)制回用戶輸入部分,手動(dòng)將單元格 C43 復(fù)制到單元格 C10,將單元格 C44 復(fù)制到單元格 C11。否則,第四部分的結(jié)果不會(huì)反映在第三部分,即輸出部分。

一個(gè)偉大的調(diào)試技巧

MAX3108提供了一種驗(yàn)證輸出波特率的方法。此功能在開(kāi)發(fā)、調(diào)試以及可能在制造過(guò)程中非常有用。激活此功能后,MAX3108將波特率發(fā)生器的輸出饋送到RTS引腳,就在速率模式分頻器之前。

例如,將MAX3108配置為波特率為230.4kBd,速率模式為16。激活此功能后,RTS 引腳將提供頻率為 230.4K × 16 或 3.6864MHz 的時(shí)鐘。這可以通過(guò)將頻率計(jì)數(shù)器連接到RTS引腳或大約使用示波器進(jìn)行驗(yàn)證。當(dāng) CLKsource 寄存器中的 CLKtoRTS 位(位 7)設(shè)置為 1 時(shí),將啟用此功能。以下是該參數(shù)在電子表格的“合成”選項(xiàng)卡中的作用:

poYBAGPy7GmAAUoiAAAOggA0Bc4001.gif?imgver=1

將此輸入設(shè)置為 y 會(huì)導(dǎo)致所有報(bào)告的配置啟用此功能。一旦加載到MAX3108中,這些配置將為RTS引腳提供時(shí)鐘。這是利用此功能的一種方法。

另一種方法是打開(kāi)或關(guān)閉該功能,而不改變MAX3108中已編程的時(shí)鐘配置。以下代碼片段演示了如何執(zhí)行此操作。這些功能將打開(kāi)或關(guān)閉該功能,而不會(huì)干擾時(shí)鐘配置。

/*
** Function to enable the clock-to-RTS feature of the MAX3108
**
** Returns TRUE if operation successfully completed.
*/
BOOL CLKtoRTS_En (void) {
   unsigned int temp;

   temp = MAX3108_Read (MAX3108R_CLKSOURCE);  // returns 0xff00 if I2C error
   if (temp & 0xff00)  return FALSE;
   return MAX3108_Write (MAX3108R_CLKSOURCE, temp | 0x0080);
}

/*
** Function to disable the clock-to-RTS feature of the MAX3108
**
** Returns TRUE if operation completed successfully
*/
BOOL CLKtoRTS_Dis (void) {
   unsigned int temp;

   temp = MAX3108_Read (MAX3108R_CLKSOURCE);  // returns 0xff00 if I2C error
   if (temp & 0xff00)  return FALSE;
   return MAX3108_Write (MAX3108R_CLKSOURCE, temp & 0x007f);
}

結(jié)論

本應(yīng)用筆記介紹了如何使用電子表格快速、輕松地計(jì)算MAX3108所需的參數(shù),使其具有任何所需的波特率。還解釋了如何使用這些參數(shù)對(duì)MAX3108進(jìn)行編程。

審核編輯:郭婷

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

    關(guān)注

    10

    文章

    3428

    瀏覽量

    106003
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5343

    瀏覽量

    120377
  • 晶圓
    +關(guān)注

    關(guān)注

    52

    文章

    4912

    瀏覽量

    127992
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    can波特率計(jì)算

    can波特率其實(shí)并不難計(jì)算,這里給出了can波特率的簡(jiǎn)單計(jì)算,并給出了實(shí)例STM32的CAN波特率計(jì)算。講解CAN波特率計(jì)算原理。
    發(fā)表于 12-14 17:02 ?1.3w次閱讀
    can<b class='flag-5'>波特率</b>計(jì)算

    什么是串口波特率?串口波特率的分類及應(yīng)用詳解

    什么是串口波特率串口波特率是指串口通信系統(tǒng)中傳輸數(shù)據(jù)的速率。在UART串口通信中,數(shù)據(jù)以位(bit)的形式傳輸,波特率是指每秒鐘傳輸?shù)奈粩?shù)。在串口通信中,
    的頭像 發(fā)表于 08-08 10:09 ?5975次閱讀
    什么是串口<b class='flag-5'>波特率</b>?串口<b class='flag-5'>波特率</b>的分類及應(yīng)用詳解

    MAX3108業(yè)內(nèi)尺寸最小的SPI/I&sup2;C UART

    小尺寸的MAX3108通用異步收發(fā)器與128每接收和發(fā)送FIFO字(UART)是控制通過(guò)一個(gè)串行I2C或SPI控制器接口。自動(dòng)休眠和關(guān)機(jī)模式,有助于減少非活動(dòng)期間的功耗。低為500A(最大值)電源電流和微小的25焊球WLP封裝(2.1毫米x2.1毫米)封裝使低功耗便攜式設(shè)
    發(fā)表于 01-14 09:46 ?740次閱讀

    MAX3108帶有FIFO的SPI UART

    小尺寸的MAX3108通用異步收發(fā)器與128字的接收和發(fā)送FIFO每個(gè)(UART)是控制通過(guò)串行I ² C或SPI™控制器接口。
    發(fā)表于 02-22 10:28 ?1521次閱讀
    <b class='flag-5'>MAX3108</b>帶有FIFO的SPI <b class='flag-5'>UART</b>

    MAX3108應(yīng)用筆記

    high-performance universal asynchronousreceiver/transmitter (UART) in detail, explains the basic interface between the MAX3108 and the
    發(fā)表于 03-28 16:10 ?0次下載

    MAX3108異步接收器指南

    The MAX3108, a high-performance universal asynchronous receiver-transmitter (UART) in a wafer-level
    發(fā)表于 03-31 10:16 ?0次下載
    <b class='flag-5'>MAX3108</b>異步接收器指南

    Programming Baud Rates of the MAX3108 UART

    Abstract: The MAX3108 is a complete high-performance universal asynchronous receiver-transmitter
    發(fā)表于 04-09 11:53 ?26次下載

    max3108UART接口

    Introduction The MAX3108 is a high-performance universal asynchronous receiver-transmitter (UART
    發(fā)表于 04-05 15:14 ?12次下載

    關(guān)于UART/CAN/PLL時(shí)鐘計(jì)算波特率的方法

    SWM系列關(guān)于UART/CAN/PLL等時(shí)鐘相關(guān)模塊,計(jì)算波特率的方法。
    的頭像 發(fā)表于 03-18 16:52 ?7919次閱讀

    編程 MAX3108 UART波特率

    發(fā)表于 11-17 12:41 ?0次下載
    <b class='flag-5'>編程</b> <b class='flag-5'>MAX3108</b> <b class='flag-5'>UART</b> 的<b class='flag-5'>波特率</b>

    MAX3108 UART接口

    本應(yīng)用筆記是探討MAX3108高性能通用異步接收器/發(fā)送器(UART)特性系列筆記中的第一篇,解釋了MAX3108和控制微處理器之間的基本接口。應(yīng)用筆記簡(jiǎn)要介紹了通過(guò)2、4或6引腳實(shí)現(xiàn)硬件連接;實(shí)施
    的頭像 發(fā)表于 04-04 11:32 ?921次閱讀

    什么是波特率?為什么要設(shè)置波特率

    歡迎來(lái)到東用知識(shí)小課堂!一、什么是波特率波特率(BaudRate)單位bps是用于衡量串口通信速度的單位,它表示每秒鐘發(fā)送的比特?cái)?shù)。如果一個(gè)串口的波特率為9600,就表示該串口在一秒鐘內(nèi)可以發(fā)送
    的頭像 發(fā)表于 04-08 00:00 ?6954次閱讀
    什么是<b class='flag-5'>波特率</b>?為什么要設(shè)置<b class='flag-5'>波特率</b>?

    什么是波特率波特率是如何影響CAN總線長(zhǎng)度的?

    信息在通信通道中傳輸?shù)乃俾时环Q為波特率。通俗地說(shuō),波特率是數(shù)據(jù)在網(wǎng)絡(luò)上傳輸?shù)乃俣?速率。這是以比特/秒表示的。因此,一秒鐘內(nèi)在通信網(wǎng)絡(luò)上傳輸?shù)谋忍財(cái)?shù)就是波特率
    的頭像 發(fā)表于 08-14 15:23 ?6420次閱讀
    什么是<b class='flag-5'>波特率</b>?<b class='flag-5'>波特率</b>是如何影響CAN總線長(zhǎng)度的?

    CW32單片機(jī)UART波特率設(shè)置介紹

    CW32單片機(jī)UART波特率設(shè)置介紹
    的頭像 發(fā)表于 10-24 17:35 ?927次閱讀
    CW32單片機(jī)<b class='flag-5'>UART</b><b class='flag-5'>波特率</b>設(shè)置介紹

    uart波特率和傳輸頻率的關(guān)系 UART串口的常用波特率為多少

    UART(Universal Asynchronous Receiver/Transmitter)是一種廣泛使用的異步串行通信技術(shù),它允許兩臺(tái)設(shè)備之間進(jìn)行雙向數(shù)據(jù)傳輸。在UART通信中,波特率和傳輸
    的頭像 發(fā)表于 10-06 16:12 ?2741次閱讀
    <b class='flag-5'>uart</b><b class='flag-5'>波特率</b>和傳輸頻率的關(guān)系 <b class='flag-5'>UART</b>串口的常用<b class='flag-5'>波特率</b>為多少
    主站蜘蛛池模板: 一级视频免费观看| 天天狠天天插| 成人欧美一区二区三区视频 | 日日操夜夜操天天操| 免费aa| 国产午夜毛片一区二区三区| 午夜黄网站| 视频在线观看一区二区| 久久免费精品高清麻豆| 一级毛片一级毛片| 丁香六月欧美| 黑人一区二区三区中文字幕| 午夜日韩精品| 日本媚薬痉挛在线观看免费| 精品伊人久久大线蕉色首页| h录音 国产 在线| 天天摸天天操天天干| 一区二区三区视频在线观看| 中国免费黄色片| 三级电影在线观看视频| 久草tv| 国内黄色精品| 午夜久久免影院欧洲| 丁香花在线视频| 欧美色穴| 亚洲黄色高清视频| 欧美三级视频在线播放| 俺去俺来也www色官网免费的| 深夜久久| 在线播放一区二区精品产| 欧美爽爽| 久久艹人人艹| 激情九月婷婷| 国产综合色精品一区二区三区| 天天综合亚洲国产色| 1024免费看片| 亚洲天堂手机在线| 精品国产_亚洲人成在线高清| 午夜寂寞影| xxxx 欧美| 色欧美亚洲|