|
|
最近公司的要求,要研發(fā)一款2.4g校訊通方案,本來想選擇nordic的nrf24l01p,打算購買點樣品試樣了,同行聽說直接推薦我一款超低功耗芯片,還跟我說價格方面低了nrf24l01p一倍多,而且pin對pin兼容。我了解了一下這顆芯片,是南京中科微的,國產(chǎn)芯片,抱著試一試的心態(tài),跟代理購買了幾個樣品,開始測試,本來已經(jīng)以nrf24l01p去打的板子,我用si24r1替換上去,居然真的完全pin對pin兼容,一點都不需要改動,在之后的測試順風(fēng)順?biāo),老大那邊也很滿意,直接定下這顆芯片,打算開始量產(chǎn),好了,廢話不多說,我給大家分享一下這顆芯片。Si24R1是一顆由南京中科微專為低功耗無線通信應(yīng)用場合設(shè)計的一顆自有知識產(chǎn)權(quán)的2.4G RF芯片。目前主要針對低功耗的校訊通、2.4G停車場、智能家居、無線音頻等領(lǐng)域。
當(dāng)然,這顆芯片進(jìn)入大眾的視野是與友商的NRF24L01P芯片兼容通信。從而被打上了國產(chǎn)NRF24L01P的標(biāo)簽,更有甚者居然磨掉芯片原本的SI24R1的LOGO打成NRF24L01P,給很多客戶產(chǎn)生了很多不必要的損失。大家定向的理解,國產(chǎn)的東西總是會比國外進(jìn)口的相差到哪里哪里,如此云云。其實,在很多客戶在使用Si24R1的時候,通過一定的控制與設(shè)計,是可以發(fā)揮Si24R1自己獨特的特性的。
不同的芯片設(shè)計需要不同的射頻布線以及MCU的控制,那么我下面要分享幾點自己所知道的一些問題以及解決辦法:
1.進(jìn)入低功耗(關(guān)斷)模式后,功耗可能還在1mA左右,正常應(yīng)該在1.5uA左右。
解決辦法:由于芯片采用CMOS工藝,當(dāng)芯片處于關(guān)斷模式時,芯片的數(shù)字輸入引腳,CE,CSN,SCK,MOSI,必須為低電平,即關(guān)斷模式下,和上述四路輸入引腳相連的MCU的輸出必須為低電平,不能為高阻狀態(tài)或高電平。否則由于輸入端累積電荷,會導(dǎo)致內(nèi)部電路不能關(guān)斷,而使得功耗增加。
2.當(dāng)使用Si24R1號稱7dbm的發(fā)射功率的時候,距離好像沒有增加太多,而且無線音頻客戶覺得會有很大的噪聲。
解決辦法:
一、友商的nRF24L01+不要求芯片底部的金屬焊盤接地,Si24R1規(guī)格書上也沒要求接地,這是因為發(fā)射功率較低只有0dbm的情況,當(dāng)芯片發(fā)射功率大于0dbm以后,芯片底部的金屬焊盤會有很多白噪聲耦合到地,而nRF24L01+的參考設(shè)計金屬PAD下面有走3.3V的電源線,如果使用Si24R1 7dbm的發(fā)射功率,沒有將底部的3.3V走線移除的話,那些噪聲會干擾到電源,從而會增加通信的丟包率以及通信距離。有一些網(wǎng)友在網(wǎng)上提出,使用Si24R1替換NRF24L01P電源處需要多加一個大電容去濾波,這種做法是在一定的設(shè)計上是可行的,但是還是有一些朋友的問題沒有解決。故,為達(dá)到更好的性能,特別是發(fā)射較大功率時,建議用戶芯片底部PAD全部接地,將3.3V走線重新布線。
二、無線音頻客戶做到第一點后還無法解決有噪聲的問題,需要考慮這個噪聲的來源,電源的純凈度,因為SI24R1相比對電源更加敏感一些,用戶可以通過走線順序來改進(jìn)。本來電源的走線順序為LDO-MCU-ADC-RF,整個流程設(shè)計下來,走線方便也符合流程,但是這樣的設(shè)計弊端就是整個MCU與ADC轉(zhuǎn)換(實際噪聲maker)的噪聲全部串?dāng)_到RF的電源中,從而影響無線通信。故,用戶可以更改電源走線設(shè)計,LDO出來后分兩路,一路給到RF,一路給到MCU+ADC。
3.用戶一直在使用nRF24L01P,替換成Si24R1后發(fā)現(xiàn)功耗突然大了許多。
解決辦法:對于已經(jīng)使用nRF24L01+的用戶,通常用戶會將發(fā)射功率配置在0dbm,而此時的寄存器配置對于Si24R1來說,此時的發(fā)射功率是4dbm,此時消耗電流為16mA,比0dbm配置消耗的電流要大4-5mA,當(dāng)系統(tǒng)采用紐扣電池供電時,需要注意這個問題。如果不需要大的發(fā)射功率請將發(fā)射功率的配置調(diào)整到小功率模式,具體配置,參考芯片手冊(可配置為100模式,1dbm發(fā)射功率模式)。Si24R1的最大功率是7dbm,需要專門配置寄存器,請參考手冊。
總的說來,發(fā)現(xiàn)一個新一代nRF24L01P與上一代nRF24L01相比寄存器沒有太大的變化,但是有幾個關(guān)于通信管道和ACK的寄存器的配置還是與上一代不同的。另外,個人理解shockburst和enhanced shockburst的區(qū)別就在于enhanced shockburst可以在接收機(jī)回復(fù)ACK時掛上1到32字節(jié)的數(shù)據(jù)包,這樣就實現(xiàn)了所謂的“全雙工”通信。然而實際探查這項功能發(fā)現(xiàn)它的作用其實有限,因為是ACK附加數(shù)據(jù)包,因此它的傳輸可靠性無法由射頻芯片的校驗重發(fā)機(jī)制保證,只能在接收機(jī)軟件上做改進(jìn),而這有時還不如讓接收發(fā)送機(jī)依照發(fā)送次序輪流進(jìn)入發(fā)送/接收狀態(tài)來的方便。只適合回傳一些實時性要求高,對傳輸可靠性要求不嚴(yán)格的數(shù)據(jù)。
所謂知易行難,在著手做最基礎(chǔ)的SPI通信時就接連遇到了問題。首先是AVR的硬SPI無輸出。經(jīng)過查找,最終問題是SPI設(shè)定為主機(jī)時,SS口要么設(shè)置為輸出,要么設(shè)置為輸入時接上拉,否則當(dāng)SS為輸入又懸空或者低電平就會進(jìn)入從機(jī)模式,自然沒有輸出。這個問題解決了,接下來遇到了一個更基本的問題,SPI的通信機(jī)制。一般說來另外兩種常見的通信方式中,UART是有收、發(fā)兩個數(shù)據(jù)寄存器,I2C則是通過數(shù)據(jù)包頭來區(qū)分接收和發(fā)送的數(shù)據(jù)。而SPI只有一個SPDR寄存器,而且只有寫入的時候啟動SPI產(chǎn)生SCK信號,怎么去讀MISO的數(shù)據(jù)?要自己做外部中斷讀取嗎?后來才明白,SPI的主機(jī)和從機(jī)各自的一個SPDR通過MOSI和MISO串聯(lián)成一個類似環(huán)形的大移位寄存器。主機(jī)的SPDR中的數(shù)據(jù)從MOSI每移除一位,從機(jī)就在相同的SCK上升沿或下降沿通過MISO將一位數(shù)據(jù)發(fā)送給主機(jī)。這樣,當(dāng)SCK八個周期后,主機(jī)中的SPDR的數(shù)據(jù)全部移出了而被從機(jī)發(fā)送來的數(shù)據(jù)填充,從機(jī)則反之,這樣,在一字節(jié)的通信結(jié)束后再讀取SPDR,所返回的數(shù)據(jù)也就是從機(jī)發(fā)送來的數(shù)據(jù)。
解決了這個問題后與nRF24L01P的通信也就變得簡單了,先將SS拉低,告知nRF24L01P即將啟動SPI通信,當(dāng)通過MOSI第一次向射頻芯片寫入任何字節(jié)時,MISO上都會有一個字節(jié)傳送給主機(jī),這個就是芯片默認(rèn)的0X07狀態(tài)寄存器里的數(shù)據(jù),如果我們在第一次寫入讀取0X01寄存器的數(shù)據(jù),那么0X01寄存器的數(shù)據(jù)只有在下一字節(jié)的通信中才會通過MISO回傳給主機(jī),而發(fā)起下一輪字節(jié)通信就需要主機(jī)繼續(xù)發(fā)送數(shù)據(jù),那么問題來了,讀命令已經(jīng)發(fā)送了,那么接下來我該發(fā)送什么。在nRF24L01P的數(shù)據(jù)手冊中給出的建議是發(fā)送0XFF,這個命令對射頻芯片沒有任何意義,其實也可以再隨便發(fā)送其他任意一個數(shù),只是為了避免產(chǎn)生不必要的麻煩而發(fā)送0XFF.發(fā)送0X00也可以,而且網(wǎng)上的絕大多數(shù)例程都是這樣用的,但是這實際上是讀0X00寄存器指令。讀取完畢后,將SS拉高,本輪通信結(jié)束。當(dāng)下一次SS再次拉低時,一切又重新開始。也就是如果上一輪通信的最后MOSI上發(fā)送的是0X00,在這一輪第一次發(fā)送指令時MISO上移入的并不是0X00寄存器的狀態(tài),而依舊是默認(rèn)的0X07狀態(tài)寄存器的狀態(tài)。
有些繞,但是仔細(xì)看手冊就會發(fā)現(xiàn)原來規(guī)則很簡單。學(xué)習(xí)就是一個先將書本學(xué)厚,再將書本學(xué)薄的過程。
此外,MISO和IRQ信號雖然理論上和實際試驗都可以達(dá)到AVR的0.7VDD的高電平檢測電壓,但是在實際應(yīng)用時必須要做3.3V到5V的電平轉(zhuǎn)換,否則極容易被干擾。而且對芯片的初始化也要等到開機(jī)后500毫秒在進(jìn)行,以免因為芯片上電后還未穩(wěn)定工作而配置不正常,事實也的確證明,芯片從上電到穩(wěn)定的確存在一個比較長的時間。
但近年來國產(chǎn)芯片的替代品出來后,有理由項目國產(chǎn)芯片在支持產(chǎn)品本身需求的前提下,的卻能降低成本。nRF24L01P的國產(chǎn)替代SI24R1也是有一同測試,確實是還可以 。
|
-
-
Si24R1Datasheet.pdf
2019-11-28 22:52 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
2.13 MB, 下載次數(shù): 11, 下載積分: 黑幣 -5
|