2019年06月15日

シリアルBLEモジュール変換基板

今回は以前に紹介したシリアルBLE5モジュールの変換アダプタを設計、試作してみたのでご紹介します。

シリアルBLEモジュール変換基板にはSilicon Labs製 BGX13Pを搭載しています。
BLE5に対応したUARTシリアルで設定変更できるBLE5のモジュールです。
技適も取得済でマークがモジュールに記載されています。

Silicon Labs製 BGX13Pはシリアルで簡単にデータを設定、転送できるだけでなく、スマホアプリ(iOS、Android)でファームアップデートが簡単に可能なので今後の機能アップにも期待できます。


BLE5_1.jpg

BLE5_2.jpg

当初、手はんだで後からQFNパッケージのイメージで実装できると思いましたが、パットが小さいかつ数が多いのため、ハンダがうまく流れないためリフローでないと実装が難しいことが分かりました。そのため、実装も外部に委託して試作してみました。

BLE5_3.jpg

BootボタンとRSTボタンを備えており、電源LED、全IOにアクセスできる設計になっています。また、電源3.3V、GND、シリアルTX/RXはGroveコネクタで簡単に接続できるようにしました。基板サイズ自体は25mm x25mmの正方形でピン幅は22.86mmでブレッドボードにピッタリ幅に設計しました。


今後、検証して問題なければ1個3.5千円前後でどこかで販売予定です。
posted by Crescent at 00:00| Comment(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする

2019年05月25日

マイコン内蔵フルカラーLED DotStar

マイコン内蔵フルカラーLEDといえば、WS2811、WS2812といったNeopixelが有名です。
今回、紹介するのはDotStarというマイコン内蔵フルカラーLEDです。

ざっくりと比較すると、通信方式とリフレッシュレートが異なるようです。


 通信方式
リフレッシュレート
NeopixelUart互換400Hz
DotStarSPI互換19.2kHz


NeopixelではUartに近い通信のため、貧弱なマイコンでは処理が間に合わない場合や間に合わせるために機械語で記述するなど工夫が必要でした。
一方、DotStarはSPIで通信できるため、クロック入力があり、比較的マイコンに合わせて処理できます。
この点では非常に扱いやすいマイコン 内蔵フルカラーLEDです。


実際に動かしてみると簡単に制御することができました。

dotstar.JPG

Neopixcelに比べるとまだ種類は少ないものの、SPI通信で簡単に制御できるDotStarはなかなか魅力的です。
リフレッシュレートが高いメリットを活かして遊んでみたい思います。

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

2019年05月04日

64Mbit大容量Serial SRAM

IoTやAIと謳われる中、組込系で問題になるのはRAMの容量です。

無線が不安定な場合にデータを一時保存したり、AIで大量のデータを保持したりとマイコン内蔵のRAMでは足りないと感じることが多々あります。そのような場合には一般的にはパラレル接続の外部RAMを搭載することが多いです。


パラレルSRAM、DRAMは100pin相当の大規模マイコンが必要で回路設計や等長配線等の処理が非常に大変です。
一方、Serial RAMはSPI、QSPI等で4本程度の通信配線のみで済みます。また、フットプリントもSOP8のため、最小限のスペースで済みます。


ただ、現状、日本国内で入手できるSerial RAMはISSIやCypress等では4Mbit(512kByte)が最大です(19年5月現在)。
それ以上はSerial Flashで一部あるのみとなっています。
Serial Flashでは書き込み速度や書き換え回数が制限されるため、やはりRAMが望ましいです。
ひと昔前はSPI接続のPRAMという128MbitのRAMも出ていましたが現在は生産終了で入手できません。


そんな中、入手性や供給安定を無視すると中国で実は64Mbit(8MByte)以上のSerial RAMが製造されています。

例えば、
vilsion製SRAMVTI7064MSM
vilsion製PsudoSRAM IPS6404LSQ
APMEMORY製SRAM APS6404
Lyontek製SRAM LY68L6400
があります。

海外等ではESP32等に搭載して高速に処理する際に上記の大容量RAMを設定して使っている例が議論されています。

なお、PsudoSRAMは、安価だがリフレッシュが必要なDRAMに専用コントローラを内蔵することでマイコン側からはSRAMのように扱うことができるRAMです。使う側からすれば安く使い勝手のよいSRAMとして使用することができます。


大手では大容量RAMはパラレルで満足しているようで、大容量版のSerial RAMの発売はまだ先のようです。
日本国内で上記の大容量Serial RAMを取り扱ってくれればよいのですが。。。
Aliexpress等でも扱いがなく、入手性や供給安定を無視して海外輸出対応しているこちらのサイトで買って試食してみるつもりです。
posted by Crescent at 00:00| Comment(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする

2019年04月20日

Digital Video Shield 応用編

今回は以前に紹介したDigital Video Shieldの応用について紹介します。

Digital Video Shieldで使用しているビデオエンジンBT816はCo-Processorエンジンを搭載しており、コマンドで内蔵Widgetsを簡単に表示することができます。

内蔵Widgetsの種類としては、テキスト、ボタン、時計、プログレスバー、スライダー、トグルボタンなどがあります。
数行のC/C++コードの記述で任意の表示をすることができます。
なお、ボタン、スライダー等の入力イベントを使用する場合はDigital Video Shieldの基板上のピンと抵抗膜方式パネルの配線、タッチパネルキャリブレーション、入力イベント設定が必要になります。


・色を変更する場合
EveSendCmd(COLOR_RGB(180, 180, 240));

・数字を表示する場合
 文字位置、フォント、フォントオプション、数字を設定します。
EveWriteNumberData(220,200,EVE_FONT_B_size6,0,120);

・時計を表示する場合
 位置、サイズ(半径)、何時何分何秒か設定します。
EveWriteClock(120,120,100,0,10,10,20,3);

・文字列を表示する場合
 文字位置、フォント、フォントオプション、文字列
EveWriteStringData(200,350,EVE_FONT_B_size6,0,"Digital Video Shield");

・ゲージを表示する場合
 位置、サイズ(半径)、最大値、最小値、現在値等を設定します。
EveWriteGauge(400,120,100,0,80,0,10,100);

・ボタン/トグルボタンを表示する場合
 文字位置、フォント、フォントオプション、文字列
EveWriteButton(550,50,80,40,EVE_FONT_B_size4,0,"ON");
EveWriteToggle(550,120,50,EVE_FONT_B_size4,0,1,"ON");

・プログレスバー
 位置、サイズ、最大、最小、現在値等を設定します。
EveWriteProgress(550,200,50,30,0,20,100);

・スピナー(処理待ち等の表示)
 位置、オプション等を設定します。
EveWriteSpinner(700, 150, 0, 0);


実際に800x480のディスプレイに表示してみました。

img4.JPG

予めよく使う表示についてWidgetsとして内蔵しているため、数行で任意の表示をすることができます。
フォントや各WidgetsはBT816内に内蔵されているため、一般的なTFT液晶をピクセル毎に処理する場合に比べてマイコンのメモリ消費を大幅に抑えることができます。
上記サンプルはArduinoUNOで実装しています。
Githubに上がっているコードをアップデートし、内蔵Widgetsのコードを追加しました。
Digital Video Shieldを活用してArduino、センサを組み合わせてIoTディスプレイといったことも簡単に実現可能です。
posted by Crescent at 00:00| Comment(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする

2019年04月06日

シリアルBLE5モジュール

今回は簡単に使用できるBLE5のモジュールを紹介します。


Bluetoothを使った通信をマイコン等で行う場合は電波法等の関係から技適取得済モジュールを使用することが多いと思います。
一般的なBluetoothモジュールはベースとなるファームを書き換えて、任意のプログラムを書き込んで使用します。

この場合、Bluetoothモジュール単体でセンサ情報を処理して送信するといったことができるため、他のマイコン等が不要で消費電力を抑えて低コストでBluetoothセンサを実現することができます。
ただ、この方法の場合はBluetoothモジュール毎に専用の開発環境を構築する必要やファームの開発、書き込みが必要なため、敷居が高いのが問題です。


世の中にはこのような問題に対して、予めファーム書き込み済でUARTシリアルからコマンドを送ることで設定変更できるBluetoothモジュールが販売されています。
例えば、Bluetooth2.1、BLE4などではシリアルで設定変更できるモジュール(RN42,RN4020)が売られています。
ただ、UARTシリアルで設定変更できる、かつ最近のBLE5のモジュールはほとんどありませんでした。


今回紹介するのはBLE5に対応したUARTシリアルで設定変更できるBLE5のモジュール、Silicon Labs製 BGX13P です。
なお、似たシリーズにBGM13がありますが、こちらは別途ファーム書き込みが必要なタイプです。

アンテナ内蔵でUSBの幅程度のサイズです。


IMG_0042.JPG

BGX13Pは様々なプロファイルに変更可能なファームが予め書き込まれているため、STM32マイコンやArduinoといったマイコンのUARTシリアルからコマンドを送ることで簡単にBLE5通信をすることができます。
いくつかマクニカのサイトでも事例が紹介されていました。

UARTシリアルで設定変更できるため、マイコン側のファーム書き換えのみで様々な機能を実現できるというのは魅力的です。
時間を見つけて試食してみたいと思います。

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