2018年03月10日

I2C/SPIプロトコルブリッジIC

今回はI2C/SPIプロトコルブリッジICの
SC18IS602BIPW/S8HP を紹介します。


SPI接続のデバイスをI2Cデバイス化する変換ICです。
つまりSPI接続のデバイスをGrove接続化できるデバイスです。


SPI接続のスレーブデバイス選択用にGPIOが4つあるため、
スレーブデバイスを最大4つまで選択する用途以外にも
リセットやデータコマンド切替IO等にも使用できます。


他の特徴として
SPI転送速度は最大1.8 Mbit/s、200-byteのデータバッファを搭載しています。


I2Cなので速度には全く期待できませんが、
WaveShare製の電子ペーパーをI2C化させることを検討中です。

もう少し、I2C/SPIプロトコルブリッジICが安ければよいのですが...
マイコンで代替もできますが、
毎度の書き込みの手間を考えると
やはり専用ICを使うのが良さそうです。


I2Cになると接続の容易さが際立つので、
より電子ペーパーの用途が広がると考えています。
posted by Crescent at 00:00| Comment(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする

2018年02月25日

One-Wireインタフェース

今回はOne-Wireインタフェースについて紹介します。

One-Wireインタフェースはその名の通り、
1本の信号線とGNDで通信するシリアル通信規格です。


信号線から電力を受けることができるため、
信号とGNDの2本のみで通信できます。
また、One-Wireのデバイス1つ1つに固有ID(識別番号、64bit)があるため、
1つのデータライン上の複数デバイスから特定デバイスを呼び出すことができます。

I2Cも7bitの固有アドレスがあります。
同じデバイスの場合は基本的に同じアドレスとなります。
そのため、同じデータライン上に同じデバイスは1つしか繋げることができません。
一方、One-Wireはネットワーク機器のMACアドレスの様に
完全に固有のIDのため、同じデータラインに同じデバイスを複数繋ぐことができます。


便利なOne-Wireインタフェースですが、
1つのデータラインでやり取りするため、
通信速度は期待できません。



入手性のよいOne-Wireデバイスは
他にEEPROM、NVRAMなどがOne-Wireデバイスとしてあります。


急激な温度変化のない環境で定期的に温度を監視する場合などに
1つのデータラインに複数のOne-Wire温度計を設置して
監視すると配線を減らすことができるので効果的です。


STM32マイコンでOne-Wireデバイス(One-Wireデバイス)と通信する

One-Wireデバイスを呼び出す場合、
2種類の方法があります。
データライン上に1つのデバイスしかない場合は
SKIP_ROM_CMDで固有ID指定なしで呼び出します。

データライン上に複数のデバイスがある場合は
MATCH_ROM_CMDで固有IDを指定して該当するデバイスのみ呼び出します。



今回のサンプルコードの場合、
DS18B20_GetTemperature()では
SKIP_ROM_CMDで固有ID指定なしで温度を取得します。
DS18B20_GetSelectDeviceTemperature(***)では
MATCH_ROM_CMDで固有IDを指定して温度を取得します。


ICの配線を簡易化できるOne-Wireインタフェースは面白いと思いました。
2本の配線なので配線の存在感を消すことができます。

現状の課題としては温度計くらいしかデバイスがないことでしょうか。
今後のOne-Wireセンサデバイス種類の拡充に期待です。
posted by Crescent at 00:00| Comment(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする

2018年02月16日

PS2/USB変換アダプタ

今回は現在開発中のデバイスについて紹介します。


プログラミング専用こどもパソコンichigojamやサーバマシンなどでは
キーボードのインタフェースとしてUSBでなく、PS2がまだ使われています。
一方でUSBが広まり、PS2のキーボードが入手しづらい状況です。

そこで開発しているものがPS2/USB変換アダプタです。


世の中で販売されているPS2/USB変換アダプタ
PS2のキーボードをUSBデバイス化して
古いキーボードを最新のPCで使える変換アダプタです。
これではichigojamやサーバマシンでは使えません。


今回、開発しているPS2/USB変換アダプタは
USBキーボードをPS2化する変換アダプタです。
世の中で販売されている変換アダプタとは変換の向きが逆です。


調べる限り、このような変換アダプタは販売されていないようです。
USBのHostの処理は面倒なため、コストもかかるのが要因でしょうか。


構成としては
[市販USBキーボード]<-USB->[USB Host(Vinculum)]
<-UART->[STM32マイコン]<-PS2->[PC,ichigojam]
です。


本当はVinculumのみでPS2も扱えればよいのですが、
現行のVinculumUはPS2ポートがなく、
GPIOで処理する必要があります。

VinculumTはPS2ポート搭載していますが、
チップ単価が高いため却下。
Vinculumは独自RTOSが搭載されているため、
GPIOでus単位のPS2の処理を実装するのが厳しいため、
STM32を搭載してPS2の処理をさせています。

設計中の基板はこんな感じ。
PS2USBChanger.jpg
裏と表にVinculumとSTM32のチップをそれぞれ搭載しています。
両側にUSBとPS2のポートが搭載される感じです。
電源はPS2から給電のため、挿せば使えるという感じです。
一般的なキーの動作確認ができましたが、
特殊キーのデバッグがまだ残っている状況です。

ただ、PS2は規格がざっくりなところがあり、
あるPCで動いても他で動くかどうか...


上手くいけば3月、4月頃に2千円前後で販売開始する予定です。

ラベル:IchigoJam 部品 HAL STM32
posted by Crescent at 00:00| Comment(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする

2018年02月02日

VinculumU 開発環境

以前にVinculumというUSBコントローラを紹介しました。

VinculumがというUSBコントローラかという説明は割愛して、
今回はVinculumの開発環境のインストールと簡単な使用方法を紹介します。


Vinculumの開発環境はVinculum II Toolchainを使用します。
18年2月時点ではV2.0.2-SP2が最新のようです。

ダウンロードしてインストールしましたが、
インストール途中でエラーが発生し、
インストールが完了したものの、
サンプルコードのビルドができない状況でした。

インストール途中のエラーは

path.jpg

「Environment Variable PATH too long to modify」
で環境変数が長く処理できないということのようです。

様々な開発環境をインストールしているため、
このようなエラーが発生したと思われます。
同じWin7でも別のPCではエラーが発生せずに
すんなりインストールが完了しました。


ビルドツールのディレクトリは64bitPCでは
C:\Program Files (x86)\FTDI\Vinculum II Toolchain\Tools\bin
のため、システムのプロパティの環境変数に上記を手動で追加することで解決できます。


path3.jpg

path2.jpg


既に設定された変数値を消さないように
;C:\Program Files (x86)\FTDI\Vinculum II Toolchain\Tools\bin
を末尾に追加します。


これでビルドが通るようになります。




サンプルプロジェクトを開きます。

vin1.jpg



Vinculumと書込みツールを接続して、
Connectボタンをクリックするとデバッガのリストが表示されます。
デバッガが正常に認識されると1つ表示されるはずです。

vin3.jpg

vin2.jpg

選択してconnectをクリックします。

Flashボタンをクリックしてファームを書き込みます。
初回のビルドやコードに変更がある場合は自動的にビルドされたあとに
書込みが実行されます。

vin4.jpg

書込みが完了した後にSTARTをクリックすると
プログラムが動き始めます。



ポイントは環境変数と書込み後のStartだと思いました。
環境変数はともかく、
書き込んだら勝手に走り始めてほしいものです笑

Vinculumはサンプルプログラムが豊富に用意されているため、
サンプルプログラムそのままでも十分な感じです。


開発環境のVinculum Toolchainはシンプルで使いやすいと思いました。
また、後日、Vinculumを使用したUSBデバイス、
USBホストの開発例を紹介したいと思います。
ラベル:部品 開発環境
posted by Crescent at 00:00| Comment(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする

2018年01月20日

電子ペーパーモジュール

今回は正月にaliexpressで購入した電子ペーパーモジュールを紹介します。

電子ペーパーの特徴として
・低消費電力(画面更新時のみ電気を供給)
・高い視認性(高コントラスト、液晶のように視野角の制限がほとんどなし)
があります。

ただ、Kindleやスマートウォッチなどに一部、採用されるに留まり、
まだOLEDのように様々な製品への組込、モジュール単位での販売は少ないのが現状です。

日本だと安く入手することが難しいため、
aliexplessで購入しました。
2.9インチモデルで1個2200円前後でした。
+数百円で赤色も表示できるモデルもあります。

中国からそのまま送れず、シンガポール経由で送るとかで
注文してから1か月弱して届きました。



epaper.jpg

既に動作テストとしてロゴが表示されており、
ご覧の通り、電源を供給しなくとも保持されています。

epaper2.jpg

SPI接続で画面の書き換えを行います。

サンプルコードはaliexplessのサイトにWikiリンクがあり、
STM32HAL、RaspberryPI、Arduinoのサンプルが用意されています。


時間を見つけて電子ペーパーを試食してみたいと思います。

電池で動くIoT機器には電子ペーパーが
大活躍できる分野だと思うのですが、
未だ単価が液晶に比べて高く入手性が悪いので残念です。

OLEDと液晶のように適用機器が確立しておらず、
量がでないので高いままだと思いました。

低消費電力の特徴を活かして、
IoT機器の表示機として今後の電子ペーパーのブレイクスルーに期待です。

ラベル:部品
posted by Crescent at 00:00| Comment(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする