昨日、使いやすそうな小ピンマイコンとしてターゲットを絞ったSTCmicroのSTC8Gシリーズについて調べてた。(肝心のSTCmicroのWebが落ちているようで、一次ソースは今日はたどれず)
大きく分けると、「20/16ピン」「8ピン」「48ピン」の3系統。
20/16ピン・8ピンは仕様はほぼ共通(同じシリコンダイ)で、主なのはこんなところ。
- VCC=1.9-5.5V
- RAM=256(ベース)+1k(拡張)
- 16bit乗算器・除算器
- UARTx2
- SPI, I2C
- Timer=3, PWM=3
- 10bitADC
- CMP(8ピンはない)
- BOD WDT IntOSC(精度0.3%)
- UART&USBダウンロード
フラッシュは8kと17k。型番のSTC8G"1"K"08"で、Kの前の1が拡張RAM1k、後の08がフラッシュ8k。
48ピンは、拡張RAMが2k、UARTx4、Timer=5、15bitPWMx45、以外はだいたい20/16/8ピンと同じ。フラッシュは32k/60k/64k。
コアが8051だから、CH552で使っていたSDCCを使えそうな気がする。FWLib_STC8という簡易ライブラリを公開している人がいて、ざっとみたところ、レジスタ定義などがあるので使えそう。また解説記事を1つだけみつけた。
昨日TaoBaoでポチっていた8pの方のブレイクアウトボードとUSB-シリアル変換器が届いていた。STCmicroのWebページが復活したら、ビルドと書き込みのチェックをしてみよう。
そういえばこっちにいるうちにGroveコネクタ(白)を買っておこうかな、と思ってて、ふと、2000個入りが1400円かー、安いなー、と、あやうくポチりそうになってた。あぶないあぶない。
いろいろ調べようと目星をつけたSTCmicro、どうもWebページが開けない。wwwつけてもなしでもだめ。httpでもhttpsでもだめ。VPN通してもはずしてもだめ。サーバおちてるんじゃろか。知人から、代わりというわけじゃないけど、こんなサイトを教えてもらった。公式なのかどうかよくわからないけど、とりあえず欲しかった書き込みツールが「STC-ISP下载编程烧录软件」として置いてあったのでダウンロード。とりあえずこれを使ってみよう。
お隣の安先生のところ、たしか明日が研究室全体で設計している28nmのSoCのテープアウトで、研究室では何人かの学生さんが、レイアウト図と思われる図をみながらあれこれ議論をしている。追い込みだな。がんばって。
このまえM5Stack新製品として試作基板の設計をしていたやつが2個とも届いたとのこと。明日は時間をあけてあるので、朝からM5Stackオフィスへいって、試作と動作チェックをしにいく。部品の大半は他の製品でも使っているやつなのでむこうにストックがあって、新規のいくつかは購入済み。
今日は朝からM5Stackにおじゃまして、設計していた基板の試作と動作チェック。ちなみにけっこう郊外(空港よりさらに北)にあって、アパートから地下鉄で1時間くらいかかる。
基板はこんな感じ。まずは使う部品を、ワークショップの部品棚から探すが、とりあえずは部品リスト(BOM)をつくるべきだな、というわけで、改めてつくった。ほとんどの部品はSZLCSCで買えるので、そこの部品番号とともに。買えないのはGroveコネクタくらい。
とりあえずまずは簡単そうなM5StackCore2にPortB/C/D/Eを生やすExtPortForCore2。
K型のコテ先をはじめて使ったけど、けっこう使いやすい。自分のところでも使ってみよう。
で、お約束(?)の、Mbusコネクタを逆につけるのをやってしまった。というのをTwitterに書いたら、数分後に、隣の部屋からJimmyが「Twitterみたけど逆につけちゃったん?」と声をかけてくれた。どんだけTwitterみてんねんw
隣で作業をしていた方が、基板裏面からホットエアをあてながら、きれいにはずしてくれた。
気を取り直して、完成。COMMUのケースにもぴったりはまる。実際にCore2にとりつけての動作チェックは、明日にでも大学の方でやってみよう。
お昼は、近所のごはん屋さんへ、このまえおじゃましたときに案内してくれたAllen、UIFlowでお世話になってる刘さん(IAMLIUBO)、(あとからJimmy)で。いまいる南方科技大のこととか、中国語と日本語のこととか、雑談しながら。Jimmyが来てからは、いまつくってるやつを製品としてまとめるのに、PCBA(部品リストBOMも含めて)、シール(これはデザイナーがいる)、パッケージ、ドキュメント、使用例、あたりがあれば大丈夫、基板か箱に入れるカードにサイン入れるか?みたいな話をしてた。たしかにドキュメントと使用例はかななきゃだな。あともう1つの赤外線送信のほうは、リモコン信号の到達距離と角度をテストしなきゃね、と(とはいれこれは個人的にはプライオリティ低めで、流れてもいいかな、ぐらいに思っている)。これも含めて、まだ時間あるし、さらにいくつかつくれるといいね、10月に展示会があるからそれに向けて新製品を増やしたい、といってた。がんばろう。
もう1つのHbridgeUNITのほうは、基板外形はぴったりケースにはまった。ただ、レギュレータのHT7333を使う、とは聞いていたのだけど、勝手にSOT89パッケージだと思っていたら、M5Stackの常用部品ストックにあるのはSOT23/SOT23-5パッケージばかりで、HT7333-7のSOT23-5パッケージのがあった。これを使うべきだった、ということか。ただ、ストックのうち、MST5333(SOT23-3)が、パッケージとピン配置的に無理をすれば実装&動作はOKそうだったので、テストではこれを使うことにした。動作チェックは順に明日以降やる。
以上、とりあえず今日の時点で基板の修正点は以下。
- ExtPortForCore2: 5pヘッダのシルク、G34等のデフォルト設定の色を変える、各ポート名の裏面シルク
- HbridgeUNIT: LDOをHT7333-7(SOT23-5)にあわせる
あわせて、HbridgeUNITのSTM32F030のファームウエアはどうしよう、と、ベースになるものがないか聞いてみたら、ExtIO用のものがほぼズバリなので、これを使って、とソースコード一式をもらった。コンパイラはKeil。改めてARMのコンパイラについて調べてみたが、Keil MDK-Liteが機能(容量)制限ありの無料版で、これで行けそうな気がするので、まずはこれで行ってみようと思う。
ところで部品調達につかっているSZLCSCでマイコン(STM32F030)をみていて気づいたんだけど、右の方に「無料評価ボード」(免费验证板)というのがある。
なんだろうと思ったら、評価ボードの基板はタダで、部品リストなども載ってる。至れり尽くせりだな。
M5Stackオフィスのワークショップ、いろんな長さのネジがあるけど、ぜんぶ六角穴ねじ。十字のはひとつもない。潔くて気持ちいい。
ところでM5Stackのワークショップでは、よく使うチップ部品は、こんな感じでラベルをつけた小箱にいれてあった。まあこの方式が一番いいよね。今回のHbridgeUNITでJimmyの提案で初めて使うことになったモータドライバRZ8599も、早速、小箱にわけてあった。
別件。使いやすそうな激安小ピンマイコンSTC8Gのコンパイルについて、データシートのメモリマップのあたりをよむ。とりあえず普通の8051のとおりで、CH552と大差はなさそうなので、KsylitoliのCH552のSDCCコンパイルをベースに、FwLib_STC8にあるレジスタ定義ファイル"fw_reg_stc8g.h"をincludeするようにして、MakefileのRAMとROMのサイズをSTC8G1K08にあわせてみた。またIOピンまわりのレジスタはCH552と違うので、STC8Gのデータシートをよみながら書いてみた。とりあえずビルドは通ったので、明日にでも書き込み動作をしてみよう。
昨日TaoBaoで買ったにもつに、お店の名刺がはいっていて、裏面に業務内容として、こういうのが載っていた。後半の「IC去字、IC磨字、IC改字、IC打字」って、もしかしてヤバいやつやろか。
ちなみに↑のとは別だけど、STCmicro純正の書き込み機も届いた。思ったより大きいな、という印象。
で、早速、STC8GマイコンでLチカをやってみたら、できた。とりあえず手順をまとめておいたけど、ポイントは、(1)CH552用のSDCCビルド環境を流用、レジスタ定義だけSTC8G用のものを使用、(2)書き込みは純正アプリ+UART経由。意外とあっさりできちゃったので、もうちょっとデータシートを読み込んだりしてみよう。
で、とりあえずUSBload2ともう1つ、小ピンマイコンの入手で困っているボードの設計をさくっとやりなおして、有鵜方にはJLCPCBにPCBAだしてみた。さて。
あと、JLCPCBのGlobalSourcingをだいたい理解した。DigiKeyやMouserとかで売ってる部品を取り寄せて自分のPCBAで使える、ということね(部品だけ受け取りはできない)。で、調達先にDigiKeyなどは使えるけど「TaoBaoでしか売ってない部品」なんかは選べない、と。まあ当然といえば当然か。ということはMbusコネクタや色付きGroveコネクタのように、LCSCやDigiKeyなどでは買えない部品はPCBAに使えない、ということね。まあしょうがないといえばしょうがないか。
朝、汪さんが、ちょっと教えて、と、自動運転に関する資料をつくっていて、GPUを説明するキーワードを探していて、いろいろ調べてるんだけどよくわらなくて、とのこと。まあ技術にそれほど詳しくなければ、どこから調べたらいいのかわからないやつだよなあ、と思う。というわけで、数値計算、並列処理、3Dグラフィック、あたりの思いつくキーワードをいくつか。
昨日いじってたSTCmicroのSTC8シリーズ、昨日みてたSTC8G以外に、以下の3つのシリーズがある。棲み分けがよくみえないけど、ざっとこんな感じ。まあ普段づかいはSTC8Gでいいかなあ。
- STC8H: 高精度PWMx8、フラッシュ64kもある
- STC8C: ADCなし、32/44p
- STC8A: DMAあり、48p以上、フラッシュ48/64k
STC8G、このWebページはちょっと見にくいんだけど、データシートは各周辺I/Oの使用例のコードが書いてあって、レジスタ設定の理解が進む。またCH552でできなかったスリープ(1uA以下まで落ちる)からのタイマ復帰もあっさりできた。使い込むのは意外と早いかも。
とりあえずSTC8Gのブレイクアウトボードとして、ProMini互換ボードをつくっている。FTDI-Basicで書き込むのが同じなので。32pのをつかうけど、I2C/SPIのピン配置が、狙ったようにATmega328と同じでアサインがすぐに決まった。
はじめてのSZLCSCでのお買い物。TaoBaoとかとちがって、請求書の宛先とかを入れるところでドキドキ、でも最後はAlipayとかで支払える(←日本のクレジットカードからの支払い)村谷さんにアドバイスをもらいながら無事ポチった。買ったのはSTC8G3種とSTM32F互換マイコンのAPM32F030。
このまえアポとってた、SMEの周(zhou1)先生のところで、小一時間ほど、情報交換。もともとは材料屋さんなんだけど、In/Nesr-Sensorの信号処理系についての研究をしている方で、まだシンプルなものしかできていないが、光で抵抗値が変わる材料(ORRAM)を使って、パターンを記憶するイメージセンサ、みたいな面白い研究をしている。SNN (Spiking Neural Network)のような時間軸上の信号処理の意義のあたりは共通認識で、どちらも、末端のセンサのところができたところ、という段階だけど、そこから目指す先は近いように思えた。とりあえず一緒に研究をしている立命館大の野間先生のところのMEMSセンサ(力覚センサ)の特長を自分では十分に説明できないので、近いうちに野間先生を交えた情報交換会(オンラインだけど)をできればと思う。また、センサやこのORRAMのような材料部とシリコン上のCMOS回路を統合する場合は、回路をつくってから別の材料をつむとか、別々に(それぞれの最適で)作って、あとから張り合わせるのが有効かつ現実的だよね、という話をしていた。最近のCMOSイメージセンサも、イメージセンサ部と回路部で最適な素子特性が違うから、別ウエハ・プロセスでつくって、あとではりあわせる(両者の接続は貫通ビアを使えるようになったので、多数の配線ができる)。このあたりが、In/Near-sensor processingを含めた半導体の面白いところ。
また同じSMEの李先生という方がつくっているHapticセンサと組み合わせるのも始めようとしているとのこと。こちらの方は、化合物半導体が専門だけど、光、湿度、Hapticなどのセンサをいろいろ作っている方のようだ。ちなみに周先生のところの学生は、修士2人と博士課程1人と、RA(Research Assistant)2人、とのこと。RAは、雇用する研究員で、給料を払って研究(の手伝いを含む)をする。修士を出た人がそのまま、というパターンも多いらしい。
そのあとで、周先生がいる8Fのフロア(実ははじめて来た)を軽く案内してもらった。やはり材料科学ベースの研究をしている方が何人かいる。なおこちらの建物の研究室は、測定系だけ(写真は周先生のところにある測定系。真空にひいて変調レーザをあててデバイスの特性を測る装置)で、製造はメインキャンパスにあるクリーンルームでやるとのこと。スパッタ、CVD、イオン注入、リソグラフィなどの一通りの製造装置はあるらしい。ちょっと古い装置とは言っていたけど、やはり維持管理にはお金がかかるのはどこも同じで、さすがにSME単体では維持できず、大学として維持しているらしい。それでも学生がウエハを流す経験をできることは、とても価値があることだと思う。これがあることで、製造過程がブラックボックス化されず、デザイン(設計)とモノ(チップ)とが分断されずにつながる。
一昨日のの夕方にTaoBaoで頼んだM5Stackにものが、昨日の夜に、この箱で届いていた。
まあ当然ながらスイッチサイエンスのシールがはられていない。で、六角レンチを持ってきていないことに気づいたのでTaoBaoでポチる。
M5Stackでつくってる2個を、軽く動作チェック。ExtPortForCore2でGroveコネクタにジャンパピンでDualButtonの代わりに。PortDの2本が逆のような気がするんだけど回路図はあってそう。あとPortBの挙動があやしい。なんでだろ。というわけで純正のDualButtonやいくつかのUNITを買って、動作チェックしてみよう。
せっかくなので、日本ではまだ売っていないこいつを使ってみようとポチってみた。UWBで室内測位ができるらしい。
またもう1つのHbridgeUNITは、電源ICだけ動作確認して3.3Vが出てるところを確認。
STC8Gの書き込み、データシートだと「STC-ISPでDownloadボタンを押してから電源を入れる」というあらっぽい方法が書いてあるんだけど、リセット解除する、でも大丈夫だった。P5.4ピンをSTC-ISPでRSTピンにする設定ができて、それを初回だけやればこのピンでリセットかかる。
というわけでSTC8GのProMini形状ブレイクアウトボードの設計ができた。FTDI-Basicで書き込みするのにDTRリセットかけられるので書き込みも便利そう。SPI/I2C/アナログピンの配置も本家と同じ。つけやすい部品ばかりだから基板だけJLCPCBに発注。来週半ばには動作確認できるかな。
と思ったら、水曜の夕方にJLCPCBに出したPCBA2件、3営業日とあったから、FW書くのは後でいいや、と思っていたら、さっき(金曜夕方)発送の連絡きてチビりそうになってる。これ日曜には届くやつや。急いでFW書かなきゃ。
あとSTC8G、なにげにすごいのは、16ビット乗算器・除算器がはいっていること。16bit x 16bit乗算が10クロック、32bit / 16bit除算が17クロックでできちゃう。
今日はSiPEEDにおじゃまして、近日発売予定のものをみせてもらった。K210後継のNPUが載った3コアRISC-VのBL808が載ったAIカメラ。micro:bit互換コネクタつき。そうか、こういうNPUはSoCに進むのか。
もう1つ、開発中のRGBD(Depth)カメラも見せてもらった。左下がToFの送信部、左上がQVGA解像度のToFカメラ、右下がRGBカメラ。USB接続でUVCデバイスとしてみえるので、Kinectと違ってPCじゃなくても使える。何よりサイズが小さい。
そのあと、iMakerBaseにおじゃましたら、いきなりこんなチップを見せてもらった。NeuronBasicというメーカ(CMOSイメージセンサ大手のOmniVisionからのスピンアウトらしい)の、人体検出などの画像処理機能の載ったCMOSイメージセンサ。
こんな感じで、人を追いかけるガジェット、みたいなのがすぐにつくれる。個人的には撮像部と処理部の信号接続が気になったけど、そこまではわからず。また処理回路部のプログラム性も気になるところ。ちょっと調べてみよう。しかしキラーアプリがないと言われてきた処理機能統合型CMOSイメージセンサだけど、ここ数年で、いろんな技術のブレイクするーがあって、ぽんぽん出てきてる。
TwitterのTLでみかけたこちらの小型リフロー炉、聞いたらPD給電で2分でハンダが溶ける温度まであがり、しかも300gくらいのようだ。買おうか本気で迷う。