クロック - みる会図書館


検索対象: トランジスタ技術 2016年3月号
68件見つかりました。

1. トランジスタ技術 2016年3月号

第 6 章 PWM 出力関数 #include く wiringPi . h> void pwmSetRange (unsigned int range) 出力 : なし _X±J : ・ range PWM の 1 周期のクロック数を設定 ( 最大 4096 ) テフォルトは 1024 (a) PWM 周期 ( レンジ ) 設定の書式 / / マーグ・スペース・モド動作に変更 〃 1 周期は 1024 クロック ( デフォルト ) / / 1024 クロック中・ 1 ' の期間が 750 クロック ( デューティ比は 750 + 1024 0.73 ) になる (b) 使用例 図 5 PWM のレンジ ( 1 周期のクロック数 ) 設定 A #include く wiringPi . h> void pwmSetC10ck (int divisor) 出力になし ス、プ〕・ d 土 V 土 so wiringPiSetup ( ) ー pwmSetMode (PWM MODE_MS) ー pwmSetRange ( 1024 ) : pwmWrite(750); PWM 動作クロック分周比デフォルト : 32 最大値 : 4095 19.2MHz = ( diviso 「値 ) になる (a) PWM 動作クロック設定の書式 wiringPiSetup ( ) ー pinMode ( 1 ′ PWM OUTPUT) ー pwmSetC10ck(188) ー pwmSetRange ( 1024 ) ー pwmWrite ( 750 房 ″ PWM 動作ク朝ックは約一 0 巨 k 目 z ( 19.2MHz + 188 ) を ア 1 周期は 1024 クロック ( 102kHz + 1024 キ 100HZ ) ノ / 1024 クロック中 ' 1 ' の期間が 750 クロック ( デューティ比は 750 + 1024 寺 0.73 ) になる (b) 使用例 図 6 PWM の動作クロック設定 API ようになります . 大元のクロック周波数は 19.2MHz です . 例えば divisor 値を 188 とすると , PWM の動作クロックは , 約 102 kHz(= 192 MHz + 188 ) になります . ■サンプル・プログラム・・・ 2 種類の PWM 出力モードを比較 リスト 1 は PWM の動作サンプル・プログラムです . まず , pinMode(1,PWM-OUTPUT) で 1 番ピンを PWM 出力モードに設定します . pwm SetRange ( 1024 ) で 1 周期が 1024 になります . これはデフォルト値ですので省略することも できます . 次が動作モード設定です . pwmSetMode ( ) の行を pwmSetMode (PWM_MODE_ BAL) と pwmSetMode (PWM-MODE-MS) で切り替えることで動作モードを変更できます . pwmSetClock(188) で動作クロック周波数を決定します . こでは 188 をセットしまし たので , 約 102 kHz ( = 192 MHz + 188 ) になります . PWM の 1 周期は 1024 クロックに設 定したので 102kHz + 1024 1 開 Hz ( 1 周期が 10ms ) になります . 最後に pwmWrite ( ) で '1' の期間を設定します . ここでは 750 を設定したので , 1 周期 ( 1024 クロック ) 中の '1' 期間は 750 クロックになります . ンタ技術 2016 年 3 月号 別冊付録 73

2. トランジスタ技術 2016年3月号

第 6 章 PWM 出力関数 1 番ピン ム 683E 2. ら 83E 73 n PWM 制御信号 80 80 7.3ms 10ms 1 期間 1 周期 図 8 マーク・スペース・モード動作波形 ℃ ' の期間は 1 クロックで , '1' の期間は 2 クロックのときと 3 クロックのときがあること がわかります . 今回は PWM の動作クロックを 188 分周にしたので , 1 クロックは約 9.8 s ( = ( 1 + 192 MHz) x 188 ) になります . 図を見ると , ℃ ' 期間は 9.8 us ( 1 クロック分 ) で , 'I' の期間は 19.6 ( 2 クロック分 ) のときと , 29.4 us ( 3 クロック分 ) のときがあり , 並び順も , 先ほどの計算どおりになっています . マーク・スペース・モード時の動作波形 図 8 がマーク・スペース・モード時の動作波形です . 今回は 192 MHz のクロックを 188 分周したものが PWM クロックになり , PWM の 1 周 期を 1024 クロックに設定しているので , PWM 出力の 1 周期を計算すると , 1 / 192 MHz >< 188 x 1024 10 ms となります . 'I' 期間は 750 クロックですので , 1 / 192 MHz >< 188 x 750 7.3 ms となります . 実際の波形でも , 1 周期は 10 ms, '1' 期間が 7.3ms と , 計算どおりになって います . 6 ; 2 、 = ソフトウェア PWM / ソフトウェア TONE ・ソフトウェアで複数チャネルの PWM を出力 ラズベリー・パイのハードウェアによる PWM 出力は非常に便利ですが , 出力ピンが固 定されており , 1 チャンネルしか利用できません . 一方 , ラズベリー・パイを利用するとき , 見た目の LED の明るさを変えたり , アラー ム音を出すなど , それほど厳密なタイミングが要求されることもなく , ハードウェア PWM を使うまでもない場合もあるでしよう . このような場合に便利なのがソフトウェア によって繰り返し波形を生成するソフトウェア PWM やソフトウェア TONE 機能です . あくまでもソフトウェアによって行うものですので , CPU の負荷が大きくなるとタイ ミングがずれる可能性があります . ンタ技術 2016 年 3 月号 別冊付録 75

3. トランジスタ技術 2016年3月号

第 6 章 PWM 出力関数 スペース・モードを利用します . こちらが本来の意味での PWM ( パルス幅変調 ) に近いと いえるでしよう . 図中の数字は , 内部のカウント値の考え方を示したものです ( あくまでも考え方であり , 実際にラズベリー・パイのチップ内部がこのように作られているということではない ). マーク・スペース・モードは , 周期値 ( 8 周期なので設定値は 7 ) をカウンタにセット後 1 クロックごとにカウント数が減少し , 0 になったら戻るという繰り返しをしています . こで , カウント値が '1' 期間値未満になったら出力が '1' になるようにすれば , 周期 8 で '1' 期間が 5 という動作になります . バランス・モードの場合 , 'I' 期間幅の設定値を加算していき , 周期値を超えなければ 出力を℃ ' にし , 周期値を超えたら出力を '1' にして加算している値から周期値を引くと 今回の例でいえば , '1' 期間が 5 で , 周期値が 8 ですので , いう動作を繰り返します . 1 クロック目 : 0 + 5 = 5 ~ ー出力は℃ ' 2 クロック目 : 5 + 5 ー 8 = 2 ー出力は '1' 3 クロック目認 + 5 = 7 出力は℃ ' 4 クロック目 : 7 + 5 ー 8 = 4 出力は 'I' というようになり , 出力波形は℃ 101101r と , 8 クロック中に '1' が五つ , 配置されます . ・ハードウェア PWM 出力 API PWM には表 2 のような API があります . >PWM の ' 1 ' 期間設定 ・ pwmWrite (int pin,int value) 8 クロック目 : 3 + 5 一 8 = 0 7 クロック目 : 6 + 5 ー 8 = 3 6 クロック目 : 1 + 5 = 6 5 クロック目 : 4 + 5 ー 8 = 1 出力は )'1' 出力は℃ ' 出力は '1' 出力は・ 1 ' 比較的均等に 次にそれぞれの API について説明します . 1 周期はデフォルトでは 1024 ですので , デフォルトの状態で pwmWrite ( 256 ) とすると , 数までです . は 1 番ピン ( GP1018 , コネクタの 12 番ピン ) だけです . value の最大値は 1 周期のクロック 書式は図 3 のようになっています . pin で指定できるのは , 現状のラズベリー・パイで ます . 1 周期のクロック数は pwmSetRange で設定します . pin で指定したピンの PWM 出力の 1 周期中の 'I' ("H") の期間が value クロックになり 表 2 PWM 出力関係 A 日 デューティ比は 025 ( 25 % ) になります . 種別 VOid VOid VOid void PWM 関数名 pwmSetCIock(int divisor) pwmSetRange (unsigned int range) pwmSetMode (int mode) pwmWrite (int pin ′ int value) 内容 PWM 出力の 'I' 期間のクロック数設定 ( 最大値は pwmSetRange で設定 ) マーク・スペース・モード / バランス・モード 選択 PWM レンジ設定 ( デフォルトは 1024 : 40 % まで可 ) ック : 19.2 MHz) ( デフォルト : 32 最大値 : 4095 べース・クロ PWM 動作クロック設定 ンタ技術 2016 年 3 月号別冊付録 71

4. トランジスタ技術 2016年3月号

→・ O ・と変化 データ確定後 , クロックを℃ ' → ビ、ソト 0 ビット 7 クロ、ソク出力 データ出力 ビット 0 MSBFIRST モード ビット 7 LSBFIRST モード ビット 7 ビット 6 ビット 0 ビット 1 (a) シリアル出力 クロックを・ 1 ' →データ取り込み→クロックを℃ ' ビット 0 ピット 7 クロック出力 データ入力 ビット 0 MSBFIRST モード ビット 7 LSBFIRST モード ビ、ソト 7 ビット 6 ビット 0 ビット 1 (b) シリアル入力 図 1 シリアル入出力動作 ・シリアル入力 シリアル入力は , クロックをラズベリー・パイが出力しながらデータを取り込みます . クロックはあくまでもラズベリー・パイが作成する , つまり , ラズベリー・パイのタイミ ングに合わせて取り込むということに注意してください . 基本的な動作は ( 1 ) クロック信号ピンを ' 1 ' ( " H " ) にする ②データ信号ピンの状態を読み込む ()H " なら '1', 生 " なら℃ ' ) ③クロック信号ピンを℃ ' ( 生つにする ④ 8 ビット分読み込むまで , シフトして ( 1 ) から繰り返す という具合になっています . ・シフト入出力関連 A 日一覧 表 2 はシフト入出力関係の API 一覧です . シフト入出力を行うときは , #include <wiringShift . h> として , wiringShift. h をインクルードします . シフト入力関数 ・ uint8 t shift 工 n(uint8 t dPin,uint8 t cPin,uint8 t order) 書式は図 2 のようになります . クロックを '1' にした後データを読み込み , クロックを℃ ' に戻すという動作を 8 回繰り返します . dPin をデータ入力ピン , cPin をクロック出力ピンとして , 8 ビット分のデータ入力 ( シ リアルーパラレル変換 ) を行います . 最初に受け取るものを最上位ビット ( ビット 7 ) として 扱うのか , 最下位ビット ( ビット 0 ) として扱うのかは , order で指定します . 「 MSBFIRST 」なら最初にきたものを最上位ビット , 「 LSBFIRST 」なら最下位ビット として扱います . 38 トランシス 9 技術 2016 年 3 月号別冊付録

5. トランジスタ技術 2016年3月号

表 3 G 0 クロック出力設定 A 円 GPIO 種別 関数名 内容 GPIO_CLOCK に指定したピンに Clock frequency(Hz) のクロック出力 void gpi0C10ckSet (int pimint frequency) #include く wiringPi . h> void gpi0C10ckSet (int pin ′ int frequency) 出力 : なし 入力・。・ pin クロック出力ピン番号 7 番ピン ( G 曰 04. コネクタの 7 番ピン ) のみ指定可能 ・ frequency 出力周波数 (Hz) 9.6MHz ( 19.2MHz + 2 ) ~ 4688HZ ( 19.2MHz 4096 ) wiringPiSetup ( ) ー gpioC10ckSet ( 7 ′ 1000 ) ー ※割り切れない時はジッタが大きくなる (a) GPIOb ロック出力の書式 (b) 使用例 ツ / 7 番ビンから 1kHz ( 1000H2 ) のクロック信号を出力 図 13 G 0 クロック出力設定 API に 7 にします ( 将来ラズベリー・パイ 3 などが出てきたときには 7 以外が使えるようになる かもしれませんが ). A4688HZ ~ 9.6MHz を出力できる ラズベリー・パイ内部では 192 MHz のクロックを元にしています . 2 分周から 4096 分 周まで設定可能ですので , 高周波数は 19.2MHz を 2 分周した 9.6MHz ( 19.2MHz + 2 ) に 最低周波数は 4688HZ ( 19.2MHz + 4095.6 ) となります . 整数分の 1 だけでなく剰余が出る ような周波数も設定可能です . ■サンプル・プログラム 2 ・・・ G 0 でクロック出力 リスト 2 はクロック出力を行うサンプル・プログラムです . 7 番ピンから 10 kHz のクロ ック信号が出力されるというものです . GPIO クロック出力で使用するときは , pinMode でピンの動作モードを GPIO_CLOCK に設定しておきます . 例えば 10kHz を出力したいときには , リスト 2 G 0 クロック出力サンプル・プログラム int main (int argc, char *argv[] ) #include く wiringPi. h> #include く s む d 土 0. h > int fnum = 0 ー wiringPiSetup ( ) ー pinMode ( 7 ′ GPIO—CLOCK) ー printf ("Raspberry CLOCK OUTPUTYn") ー 〃 wiringpi の初期化 〃 7 番ビンを G 虹 0 クロック出力にする 34 gpiOC10ckSet ( 7 ′ 1000 の : while(l) return ( 0 ) ー ンダ技術 2016 年 3 月号 / / 出力周波数は 10k . / / 以下無限ループ 別冊付録

6. トランジスタ技術 2016年3月号

#include く wiringPi . h> VOid pwmWrite (int pim int value) 出力なし PWM 出力ビン カ : ・ pin 1 番ピン ( GPIOI 8. コネクタの 1 2 番ピン ) のみ指定可 ・ value 1 周期中の一い期間のクロック数デューティ比は va 旧 e + (pwmSetRange() の設定値 ) になる (a) PWM の ' 1 ' 期間設定の書式 wiringPiSetup ( ) ー pinMOde ( 1 ′ PWM OUTPUT) ー pwmSetRange ( 1024 ) ー pwmWrite(1,750); ノ / 1 周期は 1024 クロック 〃 1024 クロック中・ 1 ・の期間が 750 クロック ( デューティ比は 750 + 1024 # 073 ) になる 図 3 PWM の ' 1 ' 期間設定 A 円 #include く wiringPi . h> void pwmSetM0de ( 土 n む mode) : 出力 : なし 入力 : ・ mode PWM MODE PWM MODE BAL MS (b) 使用例 バランス・モード ( デフォルト ) う マーク・スペス・モード wiringPiSetup ( ) ー pinMode ( 1 ′ PWM OUTPUT); pwmSetMode (PWM MODE_MS) ー >PWM 動作モード設定 図 4 PWM 動作モード設定 A 日 pwmWrite(1 ′ 75のー pwmSetRange ( 1024 ) ー (a) PWM 動作モード設定の書式 / / 1 周期は 1024 クロック ノ / マーグ : ズベース , モード動作に変更 / / 1024 クロック中 '1' の期間が 750 クロック ( デューティ比は 750 + 1024 与 073 ) になる (b) 使用例 mode で動作モードを指定します . 書式を図 4 に示します . mode は次の 2 種類が選べます . ・ PWM MODE MS( マーク・スペース , 干ード ) ー ・ PWM MODE BA 乙 ( バランス・モ ・ pwmSetMode ( int mode ) ード ) サーボモータのようにパルス幅が意味を持つようなものと接続するときはマーク・スペ ばバランス・モードで動作します . デフォルトではバランス・モードになっていますので , pwmSetMode を指定しなけれ ース・モードに設定するのを忘れないようにしてください . >PWM のレンジ設定 ・ pwmSetRange (unsigned int range) PWM の 1 周期のクロック数を range 値にします . 書式を図 5 に示します . 設定できる 最大値は 4096 です . デフォルトでは 1024 になっています . >PWM の動作クロック設定 ・ pwmSetCIock(int divisor) PWM 動作クロック周波数生成用の分周器の分周比を divisor 値にします . 書式は図 6 の 72 ンシスタ技術 2016 年 3 月号別冊付録

7. トランジスタ技術 2016年3月号

配線間隔が近いので隣同士で干渉し , リーク電流も大 分岐命令があるとうまくいかないことがある きくなる傾向があります . 基板配線によるパターン・ 分岐命令があると , パイプラインによる先読み込み アンテナがあるように , ダイ上の配線による電波を発 の失敗が発生し , 一旦すべてを破棄してはじめからや 生し , 相互干渉します . り直さなければなりません . 多重パイプライン化する このように , CPU クロックを高速化するためには , とこの処理時間が増えるため , パイプラインを増やせ 小型化が欠かせませんが , あまり小型化しすぎると弊 ばよいというわけではありません . パイプライン化に 害を生じます . も限度があります . 圄バイプライン化 3 キャッシュを搭載する ・ CPU 内の処理のしくみ ・メモリの読み書きの時間を短縮すればループ処理 一般論として , CPU の命令はフェッチ , デコード , を速くできる 実行 , ライトバックの 4 段階で処理されます . CPU の プログラム実行の大半は , 図 8 に示すように一部の 内部では , 図 5 に示すように命令が順に処理されてい ループに大部分の時間を費やす傾向があります ( プロ きます . 各段は 1 クロック 1 処理なので , 図 5 の構成 グラムの局所性原理 ). このループ部分をメイン・メ では 4 クロックが必要です . モリ ( プログラムの格納領域 ) ではなく , 容量は小さく ても高速な CPU キャッシュに一時保存しておくと , ・命令を同時に処理できるしくみ「バイプライン」 いちいちアクセス速度の遅いメイン・メモリにアクセ 図 6 のように CPU の内部処理をパイプライン化す スする手間を省けます ( 図 9 ). ると , 1 クロックあたりの実行命令数を増やせます . キャッシュにヒットしている間は高速にプログラム パイプラインとは 4 本のベルトコンべアを並べた製造 を実行できます . ヒットしなければ , 遅くなります . ラインのようなイメージです . 次に実行する命令をパ イプラインに並べておきます . CPU たとえば , 本来 4 クロックで 1 命令実行するなら , 4 本のパイプライン構造にすることで , 平均すると 1 ク ロックで 1 命令実行できるようになります ( 図 7 ). 通 常動作している限りにおいて性能向上につながります . タ士里 作業に 〕束 , 度 長嶽まを かかる 1 クロ、ソク 2 クロック 3 クロック 4 クロック 時間 CPU 遅い パイプラインなし 1 命令は実行に 4 クロック必要 (a) パイプラインなし 4 パイプライン CPU 処理 1 処理 2 処理 3 処理 4 デコード フェッチ 実行 ライト・バック 見かけ上 1 命令は 1 クロックで動作速い (b) 4 パイプライン 図 7 バイプライン化と処理速度はおおざっぱに比例する 4 5 けイト・バック : 実行 デコード 実行 デコード 実行 フェッチ デコード フェッチ 1 クロックで 1 命令を実行できている 図 6 バイプライン化で処理のステージを増やすと命令実行のムダを省いて演算を効率よくできる 4 段階の処理 = 1 命令の実行 図 5 CPU の内部では 1 個の命令は 4 段階で処理される 経過時間 0 ( クロック数 ) パイプライン 1 フェッチ パイプライン 2 パイプライン 3 パイプライン 4 2 1 6 3 7 デコード フェッチ : ライト・バック ライト・バック ライト・バック 実行 117 ン湫タ技術 2016 年 3 月号

8. トランジスタ技術 2016年3月号

マスタ ビット MISO ピ、ソト 7 」 n_f 工 MOSI SCLK nSS MOSI SCLK nSS スレープ 」工 0 ピ、ソト ピット 7 MISO 図 20 SPI のデータ伝送の仕組み 信号名の頭に n があるものは負論理 56 ンシスタ技術 2016 年 3 月号別冊付録 み合わせも図中に入れておきました . SPI の動作モード ( モード 0 ~ 3 という名称がつけられています ) と , CPOL/CPHA の組 を決めるものです . CPHA = 0 なら後縁 , CPHA = 1 なら前縁になります . ら℃ ' '1' の変化 ) と後縁 ( CPOL = 0 なら '1' から℃ ' への変化 ) のいずれで起きるのか CPHA は少し面倒そうですが , データの変化が , クロックパルスの前縁 ( CPOL = 0 な ℃ ' CPOL = 1 ならば逆に SCLK が通常 'I' になっていて , '1' '1' と変化します . ℃ ' と変化します . うに CPOL = 0 ならば , SCLK は通常℃ ' ( " L " ) になっていて , ℃ ' CPOL は SCLK ( クロック ) 信号の初期状態を決めていると思えばいいでしよう . 図のよ の二つの組み合わせです . ・クロックとデータの位相関係 ( CPHA ) ・クロックの極性 (CPOL) 図にしたものです . 基本的には , ータ入出力のタイミングの違いによって , 4 種類の動作モードがあります . 図 22 はこれを SPI バスは , クロック信号に合わせてデータの入出力を行いますが , クロック信号とデ ・ SP レヾスの基本動作 これを図にしたのが図 21 です . この例では三つの SPI デバイスを接続しています . ことで複数のデバイスを同一の SPI バス上に接続できます . ときは MOSI 信号を無視し , MISO 信号の駆動も行いませんので , SS 信号を複数用意する この例はマスタとスレープが 1 対 1 ですが , SPI デバイスは SS 信号がアサートされない は負論理 , すなわち℃ ' ( " L " ) で選択状態になることを意味したものです . SPI デバイスはそれぞれ SS(SIave SeIect ) 信号を持っています . 図で n を頭につけたの 複数スレープはセレクト信号で振り分ける このように , 1 クロックで入力と出力の両方を行うというのが SPI の特徴的な動作です . ジスタの値が交換された状態になるというわけです . ト・レジスタになっていて , 8 クロックで半周 , すなわちマスタとスレープのシフト・レ つまりマスタとスレープのシフト・レジスタがリング状につながった 16 ビットのシフ SIave ー Out ) から出力されます . ー Out Slave ー (n) から , そしてスレープのシフト・レジスタの値が MISO (Master ー ln

9. トランジスタ技術 2016年3月号

30 年間愛用 / 可聴帯の 無線機にもピッタリ 周波数特性七変化 / カメレオン・フィルダ C MFIO 最大 4 次まで / LPF / HPF / BPFx バターワース / べッセル / チェビシェフ / 工リプティック・・・数十通り以上 MFIO ーっで 4 次のフィルタが作れます . 最初に使っ ・こんな℃ スイッチト・キャパシタ・フィルタ (SCF : Switched たのは 1980 年代で , もう 30 年も使っています . 20 ピ ンの DIP 型と表面実装用の SOP 型が若松通商 , Digi- Capacitor Filter) は , 与えるクロック周波数を変える だけで , カットオフ周波数を変更できます . 直接アナ key, Mouser などで約 500 円で入手できます . ログ信号が扱える手軽さを持ちながら , アナログ・フ ・応用回路 イルタに不可欠な高精度コンデンサを省略できます . 図 1 は , 無線用受信機で使える BPF です . 数本の SCF の多くは , ル次のバターワースなどフィルタ形 式が固定されています . MFIO ( テキサス・インスツル 抵抗器を外付けすることで , フィルタが作れます . デ ータシートを参照して計算式に当てはめるだけです . メンツ ) は , バターワース , べッセル , チェビシェフ , 図 1 はモード 3 で設計しています . 設計を単純化する 工リプティック , オールバスなどのフィルタ形式のほ か , LPF, HPF, BPF が外付け部品の設計によって , ために , = 1 = 2 = 4 にしています . フィルタの ーっの IC で実現できます . これだけ融通性がある Q は , 3 訳で決まります . カットオフ周波数 , また SCF は , ほかにはないでしよう . クロック周波数 / 中 は BPF の場合は中心周波数も , クロック周波数の 1 / 100 です . クロック周波数の 1 / 50 に設定することも 心周波数比の精度士 0.6 % も優れた値です . 本 IC は , ステート・バリアプル型 ( 状態変数型 ) フ できますが , 1 / 100 に設定した方がクロック漏れの対 イルタの主要部品がワンチップ化されていると思えば 策が容易です . 外付け抵抗の値は , 広範囲に選べます が , 一般に数 k ~ 数百 kQ の範囲で決めます . よいです . ーっの MFIO には , フィルタ 2 回路分が入 伽藤高広〉 っています . ーっの回路は , 2 次のフィルタなので , BPF 出力 JI C3 R1 R410k フィルタ 0 = 10 入力 沖心周波数な = ね 1 OO 1 0k 04 ん↑ k → J3 R3100k フィルタ、ゲイン = IO 倍ー な火 : クロック周波数 GND 011 R210k 16V 0.01 J4 1 OV T P2 約 13mA lC2 uA78L05AC ( テキサス・インス クロック周波数 L PA + ん 0 ツルメンツ ) のもれとサンプ リングによる出 カ波形の乱れを 2 08 J6 日 取り除くために LPF を必す付け 0 る 出力十 5V の 3 端子レギュレータ を使って片電源で使う MFIOCCN ( テキサス・イン デューティ = 50 % に調整 スツルメンツ ) SA/B 4.7k I/RI lk 1 0k LPF 取り出し端子 HPF 取り出し端子 十 1 6V 十 TPI SIA / / Q. CL 十 BPA 1 GN INVA 十 十 十 AGND 非重複 CLKA レベル・ 50/ コント 1 OO/CL ロール LSh 非重複 CLKB レベル・ 十 5V シフト クロック OV シフト クロック 02 8 7 6 5 Vcc DIS ん CV O. 1 GNDTri OutRESET 1 2 3 4 IC3 NE555V VR2 BPB R5 100k ( テキサス・インス 470p ツルメンツ ) NC クロ、ソク周波数調整 ( 約 16V960kHz) NC : 無接続 図 1 無線用受信機で使える中心周波数 160Hz ~ 9kHz の BPF MFIO の半分が余っているので , 同じ回路を作ってニつ重ねるとさらに良好な BPF が作れる . それぞれ使う外付け抵抗器の誤差が小さければ , ニつの フィルタは中心周波数なと良く一致し , クロック周波数に連動して可変できる . フィルタのなが固定で良いなら , クロック周波数はなるべく安定した ものが良く , 水晶発振やセラミック発振子を使う ◆参考文献◆ (1) MFIO データシート , テキサス・インスツルメンツ , 2001 年 5 月 . ( 2 ) MFIO アプリケーション・ノート , テキサスインスツルメンツ , 1982 年 8 月 . ( 3 ) アナログ IC 活用ハンドブック , CQ 出版社 , 1987 年 . QN9V こちら側は 未使用 十 INVB 十 十 AP/ みー HPB SIB NC LPB NC ンシスタ技術 2016 年 3 月号 208

10. トランジスタ技術 2016年3月号

表 2 ラズベリー・バイ 2 の S 通信速度 意外にも平均速度で 30Mbps を超 送となった条件 図 4 のように周期固定の転 る条件 ことを見越して判定してい ビット・シフトが発生する える条件もある データ転送レート CMbps] 64 バイト 2 浦バイト 125 62.5 3125 25 12.5 625 125 62.5 3125 25 12.5 6.25 125 62.5 3125 25 12.5 625 125 62.5 31.25 25 12.5 625 1 バイト 転送 0 ユ 97 0.197 0.196 0.196 0.195 0.192 16 バイト 転送 2.572 2.756 2.544 2.522 2243 1.891 1024 バイト 転送 15.886 16.082 16.017 16.028 9218 5282 48 バイト 4 ( パイト クロック 周波数 CMHz] クロック 周波数 CMHz] クロック 周波数 CMHz] クロック 周波数 CMHzJ 転送 7.371 7.358 7.407 7299 5.193 3.589 転送 12.484 16.031 13.962 12.618 8.321 4.552 転送 16.636 16.775 18.307 17.037 9.804 5.489 転送 17.016 34.325 19.638 16.942 10.065 5.593 (a) ノーマル・カーネル ( 優先度低 ) データ転送レート [Mbps] 16 バイト 64 バイト 2 浦バイト 1 バイト 転送 0.208 0208 0205 0209 0208 0.197 レヾイト 転送 0.220 0218 0218 0215 0214 0209 0216 0221 0223 0275 0224 0238 転送 1 バイト 1024 バイト 転送 33.5 開 21.7 18.413 14.691 9.187 5.311 48 バイト 4 ( バイト 転送 2.635 2.759 2.616 2.596 2.324 2.376 転送 7.505 7.450 8.052 8.544 4.619 3.520 転送 13.761 16. 開 1 13.797 9.301 6.797 4.440 転送 41.104 25.385 18.410 16.505 9.770 5.513 転送 45.136 31.464 19.652 17.071 10.0 5.5 (b) RT カーネル ( 優先度低 ) データ転送レート CMbps] 16 バイト 64 バイト 2 浦バイト 1024 バイト 転送 15.929 16.764 16.736 16.653 9214 5.364 2 国 8 バイト 4 ( バイト 転送 2714 2.738 3.033 2.995 2.780 2.151 転送 7.628 7.740 8.171 8261 5.380 3.673 転送 12.711 15.905 11.240 9.538 7.458 4.615 転送 16.588 17.182 18.400 16.017 9.891 5.522 転送 16.988 33.432 19.638 16.855 10.076 5.597 (c) ノーマル・カーネル ( 優先度高 ) 16 バイト 64 バイト 2 浦バイト 1024 バイト データ転送レート [Mbps] 48 バイト 4 ( バイト 転送 3.492 2.982 2.973 2.946 2.588 2.103 転送 7.798 7.796 9.576 7.767 4.760 3.363 転送 12.894 16.135 10498 10.046 7.437 4.459 転送 34.029 21. % 9 16.846 14.685 9.389 5.357 転送 40.635 25.765 18.580 16.787 9.954 5.505 転送 45343 30. 5 19.657 16.963 10.109 5.589 1 の SCLK 波形が観測できます . 106 このときレジスタに設定できる数値は偶数だけとプ spi—clk = 250 MHz/ レジスタ設定値 ( 16 ビット ) 出力する周波数 spi ー clk は次の式で決まります . ジスタを設定します . レジスタの値によって SCLK に 土 octl はその値をもとにプロセッサ BCM283x 内のレ ます . 指定値は , WiringPi から土〇 ctl に渡され , WiringPi でのクロック設定は直接周波数を指定し (d) RT カーネル ( 優先度高 ) 極ンタ技術 2016 年 3 月号 41.66 MHz になります . 動的に 1 を足して 0X0006 に設定し , 出力周波数は ですが , 0X0005 は 2 で割り切れないので土。 ctl は自 定すると , レジスタに 0X0005 を設定できればいいの 例えば , クロック周波数を 5000 開 00 ( 50MHz ) を指 うなとびとびの周波数になります . ため設定した数値通りの周波数で出力せず , 表 1 のよ ロセッサ BCM283x の仕様で定められています . その