ソース表示: FrontPage #67547

温度誤差による水晶発振子、CC1101のキャリア信号のずれを補正するための、CC1101温度センサーを使用したずれ補正機能の説明

本プロジェクト”低電力無線通信用モジュールCC1101ドライバ”を作成している間、動作させる環境の温度によって、予定しているキャリア周波数から±3kHz程度のずれが生じる
現象が出ることがわかりました。














現在調査を行っていますが、調査の中で原因として考えられるものは

・水晶発振子の温度誤差による発振周波数のずれ
・コンデンサの許容誤差によるずれ
・CC1101自体の温度誤差によるずれ

これらの原因が考えられることがわかりました。
±3kHz以上のずれが生じる場合、電波法の範囲を超えてしまう可能性が高いことから、この問題の解決策を考えたところ、CC1101に搭載されている温度センサー機能を
使用して、電波送信時に設置環境の温度をセンサーから取得し、ATmega88のADC値からキャリア周波数のずれを予測し、キャリア周波数を設定するレジスタの値を補正して、
データ出力を行うようにしました。


void cc1101_carrier_wave_setup(void)関数

こちらのキャリア周波数を設定する関数機能内で、取得した温度値で周波数レジスタ設定値を修正しています。



cc1101の温度センサーは0℃の時に出力するアナログ電圧は0.747です。 

これをATmega88のADC機能で読み取った際のHEX値は約0x2BAとなります。 

(計算方法) 0.747 /(1.095/1024) = 698.564 = (16進数)0x2BA 

となります


||温度||cc1101出力電圧||ADC値(10進)||ADC値(16進)||
||-20||0.6976||652.3674886||28C||
||-19||0.70007||654.6773333||28E||
||-18||0.70254||656.9871781||290||
||-17||0.70501||659.2970228||293||
||-16||0.70748||661.6068676||295||
||-15||0.70995||663.9167123||297||
||-14||0.71242||666.2265571||29A||
||-13||0.71489||668.5364018||29C||
||-12||0.71736||670.8462466||29E||
||-11||0.71983||673.1560913||2A1||
||-10||0.7223||675.4659361||2A3||
||-9||0.72477||677.7757808||2A5||
||-8||0.72724||680.0856256||2A8||
||-7||0.72971||682.3954703||2AA||
||-6||0.73218||684.7053151||2AC||
||-5||0.73465||687.0151598||2AF||
||-4||0.73712||689.3250046||2B1||
||-3||0.73959||691.6348493||2B3||
||-2||0.74206||693.9446941||2B5||
||-1||0.74453||696.2545388||2B8||
||0||0.747||698.5643836||2BA||
||1||0.74947||700.8742283||2BC||
||2||0.75194||703.1840731||2BF||
||3||0.75441||705.4939178||2C1||
||4||0.75688||707.8037626||2C3||
||5||0.75935||710.1136073||2C6||
||6||0.76182||712.4234521||2C8||
||7||0.76429||714.7332968||2CA||
||8||0.76676||717.0431416||2CD||
||9||0.76923||719.3529863||2CF||
||10||0.7717||721.6628311||2D1||
||11||0.77417||723.9726758||2D3||
||12||0.77664||726.2825205||2D6||
||13||0.77911||728.5923653||2D8||
||14||0.78158||730.90221||2DA||
||15||0.78405||733.2120548||2DD||
||16||0.78652||735.5218995||2DF||
||17||0.78899||737.8317443||2E1||
||18||0.79146||740.141589||2E4||
||19||0.79393||742.4514338||2E6||
||20||0.7964||744.7612785||2E8||
||21||0.79887||747.0711233||2EB||
||22||0.80134||749.380968||2ED||
||23||0.80381||751.6908128||2EF||
||24||0.80628||754.0006575||2F2||
||25||0.80875||756.3105023||2F4||
||26||0.81122||758.620347||2F6||
||27||0.81369||760.9301918||2F8||
||28||0.81616||763.2400365||2FB||
||29||0.81863||765.5498813||2FD||
||30||0.8211||767.859726||2FF||
||31||0.82357||770.1695708||302||
||32||0.82604||772.4794155||304||
||33||0.82851||774.7892603||306||
||34||0.83098||777.099105||309||
||35||0.83345||779.4089498||30B||
||36||0.83592||781.7187945||30D||
||37||0.83839||784.0286393||310||
||38||0.84086||786.338484||312||
||39||0.84333||788.6483288||314||
||40||0.8458||790.9581735||316||
||41||0.84827||793.2680183||319||
||42||0.85074||795.577863||31B||
||43||0.85321||797.8877078||31D||
||44||0.85568||800.1975525||320||
||45||0.85815||802.5073973||322||
||46||0.86062||804.817242||324||
||47||0.86309||807.1270868||327||
||48||0.86556||809.4369315||329||
||49||0.86803||811.7467763||32B||
||50||0.8705||814.056621||32E||
||51||0.87297||816.3664658||330||
||52||0.87544||818.6763105||332||
||53||0.87791||820.9861553||334||
||54||0.88038||823.296337||337||
||55||0.88285||825.6058447||339||
||56||0.88532||827.9156895||33B||
||57||0.88779||830.2255342||33E||
||58||0.89026||832.535379||340||
||59||0.89273||834.8452237||342||
||60||0.8952||837.1550685||345||
||61||0.89767||839.4649132||347||






----------------------------------------------------------------------------------------------------------------








cc1101.pdf page 54 

The CC1101 contains two 64 byte FIFOs, one for received data and one for data to be transmitted. 

CC1101は、2つの64バイトのFIFO(データのための受信データと1が送られるもの)を含みます。 

The SPI interface is used to read from the RX FIFO and write to the TX FIFO. 

SPIインターフェースは、RX FIFOから読んで、TX FIFOに書くのに用いられます。 

Section 10.5 contains details on the SPI FIFO access. 

第10.5節は、SPI FIFOアクセスに関する詳細を含みます。 

The FIFO controller will detect overflow in the RX FIFO and underflow in the TX FIFO. 

FIFOコントローラは、TX FIFOでRX FIFOとアンダーフローで超過人員を感知します。 

When writing to the TX FIFO it is the responsibility of the MCU to avoid TX FIFO overflow. 

TX FIFOへの書き込み時に、TX FIFO容量を超えるデータ数超える書き込みはしないように、MCU側で制御してください。 






A TX FIFO overflow will result in an error in the TX FIFO content. 

TX FIFOの容量を超えたデータ書き込みを行った場合、TX FIFO内容にエラーが発生します。


[[BR]]
[[BR]]
[[BR]]
[[BR]]
[[BR]]


Likewise, when reading the RX FIFO the MCU must avoid reading the RX FIFO past its empty value since a RX FIFO underflow will result in an error in the data read out of the RX FIFO. 

同様に。そのとき、MCUがRX FIFOアンダーフローがデータにおけるエラーに終わる時から、その空の価値を過ぎた所のRX FIFOを読み込んで避けなければならないRX FIFOを読むことは、RX FIFOから読みました。 

The chip status byte that is available on the SO pin while transferring the SPI header and contains the fill grade of the RX FIFO if the access is a read operation and the fill grade of the TX FIFO if the access is a write operation. 

SPIヘッダを移している間、SOピンで利用可能であるチップステータスバイト、そして、アクセスが書込み操作であるならばアクセスが読込み操作とTX FIFOの一杯等級であるならば、RX FIFOの一杯等級を含みます。 

Section 10.1 on page 30 contains more details on this. 

30ページの上の第10.1節は、これに関するより多くの詳細を含みます。 











テストテスト





= このプロジェクトのWiki =

このプロジェクトの!SourceForge.JPプロジェクトWikiページへようこそ。

!SourceForge.JPでは、各プロジェクトごとにWikiシステムが利用できます。
'''このページも含め'''、あなたのプロジェクトに合わせて自由に書き換えてください。
デフォルトでは、'''このプロジェクト'''に参加しているユーザだけでなく、全ての!SourceForge.JPのユーザがこのWikiスペースへの編集権を持っています。プロジェクトでの利用法に合わせて、適切に権限を設定しましょう!

このWikiシステムは現在継続的に開発中です。Wiki本体に関して、問題点や要望などがありましたら、
[http://sourceforge.jp/projects/sourceforge/ticket/ チケット]を利用して報告お願い致します。
その前に、「Wikiってなに?」という方は、[http://ja.wikipedia.org/wiki/%E3%82%A6%E3%82%A3%E3%82%AD Wikipedia の「ウィキ」のページ]を参考にしてください。

文法などのドキュメントは、サイドバーに標準で入っているリンクか、!SourceForge.JP プロジェクト内の [wiki:docs:WikiGuide Wikiガイド] を参照してください。


= Welcome to our Project Wiki =

!SourceForge.JP provides Wiki system to each project.  You are able to edit pages as you like, of course you can also edit this page.  Not only participating uses in the project, but also all of the !SourceForge.JP users are able to edit this Wiki by default.  You need to set up the authorization for the project.

You can find grammar and other documents on Sidebar links or [wiki:docs:WikiGuide Wiki guide] (Japanese only) in !SourceFroge.JP project.


[[ReleaseList]]
[[RecentTickets(limit=5)]]