FC2ブログ

爪車

ヒト型ロボット 22 サブマイコン

LPC2388をメインの制御にして、サブにAKI-7125(SH7125)を使用してみようと思います。

サブのAKI-7125で行う処理は、PWMサーボ16個制御、AD変換等です。
これらの処理は、以前のロボットから行ってきたことなのでプログラムがそのまま使い回せます。
問題は、LPC2388との通信処理です。
もともとマイコンを変更したのも、SH7125では通信速度の点で問題があったからです。
AKI-7125には12.5MHzのクリスタルが搭載されているので、周辺クロックは25MHzで動作させていますが、25MHzだと115.2kbpsなどでの比較的高速な通信では大きな誤差が出てしまいます。
その点、LPC2388には通信速度の誤差補正機能があるので、通信速度で悩むことはないです。

と言う事で、LPC2388の通信速度誤差補正機能を生かしてAKI-7125と調歩同期式で高速通信してみました。
AKI-7125の周辺クロック25MHzで通信できる調歩同期式モードの最高速度は781250bpsです。
この速度は一般的ではないので、PCなんかと通信する際は通常使用しません。
今回の通信相手はLPC2388なのでこの速度で通信してみます。
AKI-7125側の設定
ボーレートジェネレータ入力クロックは周辺クロックPΦ=25MHzを使用。
ボーレートジェネレータのSCBRRの設定値N=0で781250bps、ビットレート誤差0で通信できます。

LPC2388の設定
通信誤差補正機能の使い方はInterface 2009年6月号のp41に載っていますので、詳しくはそちらを参照してください。NXP社から提供されているLPC2000 Baundrate CalculatorというEXCELファイルで各種パラメータを求めます。
UART clock[Hz] = 72MHz
Requested UART baudrate = 781250
と設定すると
Best available fit for enhanced UARTとして
UART baudrate = 780000.00
Relative error = -0.16%
で通信できることがわかります。誤差はわずか-0.16%です。
各レジスタに設定する値は
UDLM = 0
UDLL = 5
DivAddVal = 2
MulVal = 13
となります。

実際に781250bpsで通信できることが確認できました。
LPC2388は+3.3V駆動、SH-7125は+5V駆動ですが、LPC2388は5Vトレラントで,SH-7125の方は入力ハイレベル電圧が+2.2Vなので、直接接続しても大丈夫でした。
いっそのこと、RS-485で接続してしまえば、サブボードをたくさんぶら下げて機能拡張もできそうです。

« ArduinoでICS2.0制御の実験|Top|ヒト型ロボット 21 LPC2388の検討 »

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://tsumeguruma.blog46.fc2.com/tb.php/68-2d81220a

Top

HOME

tsumehashi

Author:tsumehashi
FC2ブログへようこそ!

07 | 2019/08 | 09
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31