参考资料
関連する資料については,下記リンクから入手できます。
//www.xmece.com/亚博电竞菠菜products/greenpak
無料のGreenPAKデザイナーソフトウェアをダウンロードして,全科医生。文件を開いて下さい。また,GreenPAK開発ツールを使って,ご自分のカスタム仕様のICを短時間で設計することができます。
yabo国际娱乐对话半导体は,デザイン例やicの各各各各各,内部内部のブロックセルの说说などラリーをごノートしライブラリーご提供ししライブをご提供ししライブをご提供しますライブをご提供しし
- GreenPAKデザイナーソフトウェア,ソフトウェアソフトウェア,ユーザーガイド
- AN-1119 Simple I2C IO Controllers with SLG46537V(日文).gp, GreenPAKデザインファイル
- GreenPAK開発ツール, GreenPAK開発ツールウェブページ
- GreenPAKアプリケーションノート,GreenPakアプリケーションアプリケーションウェブ
- SLG46537データシート
著者玉涵太阳
始めに
SLG46537Vのi2cマクロセルを使っ,i / o制御を行て,i / o制御を行程方法を说明するものです。これこれ,図1にようなmcuを使うシステムに,容易に入出端子を増设するが可能になり便利です。
コントローラコントローラ力端子のの方法
SLG46537VのI2Cインターフェースは,出力状態を含む全ての回路構成ビットの読み書きができるという意味で,非常に強力なものとなっています。しかしながら,回路構成情報のビットに直接書き込みを行うことは,面倒になる場合も考えられます。というのは,それらのビットは2 kのアドレス空間に散在する場合があるからです。これを単純な1バイトの制御にするために,SLG46537VではI2Cのマクロセルが,他のセルにGUIを使って簡単に接続できるようにしました。図2はI2Cマクロセルの出力が単純に出力端子に接続された例を示しています。このようなI2Cマクロセルの状態を,仮想入力と呼んでいます。入力は,レジスタビットアドレス1952から1959までに連続して書き込まれ,SLG46537Vのデータシートの附录Aに記載されています。
レジスタビットをi2c写入に対応されるに,単纯単纯にレジスタビットアドレスををで割ることででそして,モジュロアドレスがられます,モジュロアドレスがの値から,データバイト中のビットの位置ををします,レジスタビット1959はi2cのコマンドでは,ワードアドレス0xf4のビット7に该当します。図1に,全全仮想の対応表示します。
i2c写は,以下のように成されます:
- 开始
- 控制字节(含デバイスアドレス,R / W = 0)
- 字地址
- 数据
- 停止
(詳細は,データシートの19.4.1“I2C字节写入”を参照下さい)。
字地址 |
数据位位置 |
寄存器位定义 |
SLG46537V寄存器位 |
|
244 |
0 xf4 |
0 |
虚拟输入0 |
1952 |
” |
” |
1 |
虚拟输入1 |
1953 |
” |
” |
2 |
虚拟输入2 |
1954 |
” |
” |
3. |
虚拟输入3 |
1955 |
” |
” |
4 |
虚拟输入4 |
1956 |
” |
” |
5 |
虚拟输入5 |
1957 |
” |
” |
6 |
虚拟输入6 |
1958 |
” |
” |
7 |
虚拟输入7 |
1959 |
図2にI2C写道による仮想入力を示します。以下の点にご注意下さい。
- オープンブラケット”(“は开始,そしてクローズブラケット']'は停止を意味します。
- 最初のバイト(控制字节)の上4位ビットはデバイスアドレスに利用され,SLG46537Vのデバイス毎にプログラムできます。
これにより,同じ同じ上にslg46537vを16个まで个别にアドレスことののビットビットはです能能能ビットははcontrolに固定固定されていいますにに固定されていますますにます固定固定最后のビットますます。写下では0です。例えば,“0011”にプログラムプログラムさたデバイスデバイスたデバイスデバイスたデバイスデバイスデバイスデバイスデバイスデバイスデバイスににににににににに设定设定设定设定ででで设定设定するでででええええ
I2Cコマンド |
結果 |
[0x30,0xF4,0xFF] |
プログラムアドレスビットとして“0011”を書き込み,ワードアドレス“0”xf4のレジスタに“0 xffのデータを書き込む。その結果,仮想ビットは全て高となる。 |
[0 x10, 0 xf4, 0 x00] |
プログラムアドレスビットとして“0001”を書き込み,ワードアドレス“0”xf4のレジスタに“0 x00のデータを書き込む。その結果,仮想ビットは全て低となる。 |
动作波形 - 仮想ビットの书架
I2Cによる仮想ビット書き込み命令の動作波形は,下図のようになります。チャネル1と2はそれぞれI2Cのクロック(sci)及びデータ(SDA),です。デジタル信号D0からD7は,図2に示す仮想ビットの接続に対応します。I2Cのインターフェースは,400 kHzで動作しており,SDA及びsciの信号線は,10 kohmの抵抗で3.3 Vにプルアップされています。
D0 -销# 12 (OUT0)
D1 -销# 13(着干活)
D2 -销# 14 (OUT2)
D3 -销# 15 (OUT3)
D4 -销# 16 (OUT4)
D5 -销# 17 (OUT5)
D6 -销# 18 (OUT6)
D7-引脚#19(OUT7)
通道1(黄色/第二个底部)- PIN#8 (SCL)
通道2(浅蓝色/底部)- PIN#9 (SDA)
観測された下の波形は,完全なI2Cシーケンス:スタート,コントロールバイト,ワードバイト,データバイト,ストップを含みます。見て分かる通り,出力端子(12から19)は,データバイトの最後(8ビット目)のsciの立下りで更新されます。
コントローラ入力端子の増設方法
I2Cは阅读,以下のように構成されます:
- 开始
- 控制字节(R / W = 0)
- 字地址(设置设备上的内部地址计数器)
- 开始
- 控制字节(R / W = 1)
- 数据(从设备)
- 停止
(詳細は,データシートのI2 19.4.4”。C随机读”を参照下さい)。
例えばGPIO 2から20 (pin11は接地のため除く)を読み込みます。それらのデジタル入力ビットは,レジスタビットアドレス< 1921:1927 >及び< 1968:1976 >に格納されます。これは,SLG46537Vのデータシートの附录Aに記載された通りです。下表3には,関連する情報が示されています。
字地址 |
数据位位置 |
寄存器位定义 |
SLG46537V寄存器位 |
|
240 |
0 xf0 |
1 |
Pin2数字输入 |
1921 |
” |
” |
2 |
Pin3数字输入 |
1922 |
” |
” |
3. |
Pin4数字输入 |
1923 |
” |
” |
4 |
平快数字输入 |
1924 |
” |
” |
5 |
Pin6数字输入 |
1925 |
” |
” |
6 |
Pin7数字输入 |
1926 |
” |
” |
7 |
Pin10数字输入 |
1927 |
246 |
0 xf6 |
0 |
Pin12数字输入 |
1968 |
” |
” |
1 |
Pin13数字输入 |
1969 |
” |
” |
2 |
Pin14数字输入 |
1970 |
” |
” |
3. |
Pin15数字输入 |
1971 |
” |
” |
4 |
Pin16数字输入 |
1972 |
” |
” |
5 |
Pin17数字输入 |
1973 |
” |
” |
6 |
Pin18数字输入 |
1974 |
” |
” |
7 |
Pin19数字输入 |
1975 |
247 |
0 xf7 |
0 |
Pin20数字输入 |
1976 |
表4には,i2cによる仮想仮想力のの例が示されいます。
オープンブラケット”(“は开始の意味で,クローズブラケット']'は停止を表します。
最初最初バイト(控制字节)の上位4ビットは,デバイスのアドレスに使。これらのビットは,个々のslg46537vにプログラムslg46537vにプログラムれます。これにより,同一バス上に16个までのslg46537vを接続可です。
3次のビットは,SLG46537Vでは000に固定されます。控制字节の最後のビットはR / Wで,0で書込みです。
例えば,“0011”にプログラムされたデバイスは,控制字节に0 x30を入れておくことにより書き込み(写)が行えます。
“r”バイトは,スレーブデバイスから読み出されたデータです。スレーブデバイスからAck信号を受けると,マスターは停止があるまでスレーブデバイスからその次の1バイトを読みに行きます。
表2の2番目のコマンド,ピン12から20にするする2バイトのデータを読む以,上部の例同じフォーマットに従い。ここでピン20のデータは,2番目のデータバイトの最初のビットとなります。
ベンチテスト——GPIOの読み込み
このベンチテストのため,I2C経由でブランクチップのGPIO 2から10の読み込みを行います。
最初に,ブランクチップを開発キットに装着します。エミュレータを起動してエミュレーションモードでSLG46537Vに電源を投入します。このとき,ピン8と9 (sciとSDA)の外部コネクタがイネーブル状態であることを確認して下さい。外部コネクタにマスターデバイスのsciとSDAを接続して,I2Cコマンド送信を始めて下さい。
コマンド |
結果 |
[0x00, 0xF0, [0x01, r] |
アドレスビット“0000”でプログラムされたデバイスからの読み出し。ワードアドレス0 xf0の内容が読み出される。 |
[0x30, 0xF6, [0x31, r, r] |
アドレスビット“0011”でプログラムされたデバイスからの読み出し。ワードアドレス0 xf6及び次のバイト0 xf7の内容が読み出される。 |
ブランクチップのI2Cマクロセルのアドレスは“0000”です。下表は,ピン2と3を高にした状態で表4の命令を実行した様子を表しています。図7はエミュレータの設定画面で,図8は端末でのプログラムの結果です。結果は予測通りで,読み出したデータバイトは0 x06でした。これは0 xf0のビット位置3と2が論理レベル高であることを意味しています。表3に依れば,このビット位置がピン2と3に該当することは明らかです。
まとめ
このアプリケーションノートは,SLG46537VのI2CマクロセルをI / Oコントローラとして利用する方法について,説明したものです。この手法を使うことで,ユーザはマイクロコントローラとの間で多くのGPIOを使うことなく,データのやり取りを行うことが可能です。I2C経由で仮想入力7:0に書き込んだり,GPIOを読み込んだりする能力により,SLG46537Vはより柔軟な設計の可能性を広げます。