製品情報
2023.08.24
greenpak slg46826を試食する

こんにちは。CuboRex電気担当の寺澤です。
今回は、私が仕事をしている中でちょっと面白いな、と感じたデバイスを試してみたので、それをレポートしてみたいと思います。
ちなみにこれは別に自発的に探しに行った部品ではなく、お世話になっている商社さんから紹介してもらったものです。
細かいことは置いといて、紹介いたしましょう。
引用:秋月電子通商
https://akizukidenshi.com/catalog/g/gM-18084/
Renesas GreenPAKシリーズのSLG46826Vです。
これが一体何なのかというと、PLDの一種です。PSoCが馴染みの深い方も多いと思いますが、本製品にはMCUは搭載されておらず、本当にロジック部分だけの構成となっています。
本来だったら複数個のロジックICで組んでいた周辺回路をこれ一個で簡略化できるということで、もし十分なノイズ耐性/耐久性があるということであれば、今後設計で使っていくのも悪くないなと感じました。
今回SLG46826Vを選択していますが、その理由は秋月で簡単に手に入るようになったからという割と安直な理由だったりします。一個¥1380ほどのようです。
何はともあれ触ってみないと始まらないということで、買ってみました。
変換基板に既に搭載された状態で販売されています。Renesasのロゴが入っていますね。
内部にはロジック素子であるLUT、オシレーター、コンパレーター等、マイコンの周辺として便利な素子が複数入っており、これらをNVMという内部構造を定義するメモリー領域を書き換えることで配線の変更を行います。書き換えはI2Cから行います。
開発環境を入手します。Go Configure Software Hubというもので、こちらから入手可能です。
ひとまず今回は勉強ということで、半加算器の回路を作っていきます。
半加算器のロジックはこのようになります。
Go Configure Software Hubで開発を行っていきます。ソフトウェアを起動すると、このようなウィザード画面が現れますので、Part NumberからSLG46826Vを選択します。右上のFilterから検索してもいいと思います。選択できたらNewを押して、プロジェクトを立ち上げましょう。
最初にProject Settingsが出ますので、Specsのタブで各種電源、温度などの設定を作っていきます。今回は適当にVDD,VDD2共にMin-4.5V,Typ-5.0V,Max-5.5V、TemperatureはMin--10℃,Typ-20℃,Max-50℃としました。他タブもありますが、今回は触らないこととします。完成したらOKを押してタブを終了しましょう。
ここからいよいよロジックを組んでいく段階になります。GreenPAKでは右側Componentsから使用するユニットを追加できるようになっており、チェックマークを付けるとそのユニットが中央画面に現れます。今回はLUT0をXOR、LUT1をANDとして使用して半加算器を作ることにしました。
LUT0を追加してみましょう。デフォルトでは2-bit LUT0として表示されます。LUTの場合はユーザーで自由に真理値表を作成できますが、今回はXORとして使用し、既に完成した真理値表があるのでそれを使用します。表示されたユニットの上をダブルクリックすると画面左側にPropertiesが表示され、その下側のStandard gatesのタブをクリックすると、その中にXORがあります。最後にApplyを押すと、ユニットもXORの形状になります。
同様にLUT1をANDに設定して、部品を揃えましょう。
部品がそろうとこんな感じになります。
次にIOピンと内部回路を結線し、動作するようにしていきます。今回はPIN2とPIN3を入力、PIN19をSumの出力、PIN18をCarriageの出力としてみました。
各ピンあるいはモジュールの対応するポイントからドラッグすると配線を引けますので、上記の設定を満たすように配線を描いていきます。出来上がるとこのようになっていると思います。
これでGreenPAKの設定は完成です!GUIでぱっぱと出来るので、思ったよりもお手軽にロジックを設計できます。
さて、これをバイナリとして書き出し、SLG46826に書き込んであげれば動作するのですが…GreenPAKは書き込みがI2Cで、専用ツールお高くお手軽ではありません。
そこで、ArduinoUNOを用いて書き込みを行う方法が提供されています。今回はこの方法で書き込んであげようと思います。予めArduinoスケッチをこちらよりダウンロードしておきましょう。
ダウンロードしたArduinoスケッチを参照すると、16-33行目にnvmString~と書かれたものがあり、ここを書き換えることで自分の作ったロジックを書き込んであげることができます。
まずGo Configure Softwareより、File→Export→Export NVMを選択します。ファイル形式はIntel Hex files(*hex)、適当にファイル名を決めて保存します。
保存したHexファイルを開いてみましょう。このように:の後ろに数字の羅列があると思いますが、この図示した範囲を使用します。ここを…
Arduinoスケッチに貼り付けてあげましょう。これでスケッチ側は準備完了です。
次にハードウェアの配線なのですが、アプリケーションノートに記載の通りに接続します。SLG46826のVCCはArduino UNOの5V出力ではなく、Digital出力の2番ピンに接続することに注意が必要です。以下に私が書き込むうえで接続した図を記載します。SCL、SDAはD2に2.2kΩでプルアップしておきましょう。
接続が完了したらスケッチをビルドして、Arduinoボードに書き込みを行います。書き込みが完了したら、シリアルモニターを起動してSLG46826へNVMの変更を行います。
シリアルモニターに表示される指示に従い、書き込みを行います。
できました!
実際に今回作成したロジックを試してみましょう。
別のブレッドボードに載せて、テスト回路を組んでみました。
以下動作中の動画になります。
ちゃんと半加算器として動作していますね。
今回はテストがてら簡単に作れるもので半加算器を選びましたが、本来はかなり複雑なことができるICです。初めて触るという人でも、Renesasからクックブックが提供されており、ヒントとして非常に有用です。
最初はそれほど興味を持っていたわけではなかったのですが、触っているうちにどんどん面白くなり、これを使って何か作ってみるのも面白そうだと感じました。安全回路などソフトウェアに依存したくない状況が発生するアプリケーションで使用したり、いろいろアイデアが広がりそうです。