Arduinoのシールドが足りない

By 酔漢 - Last updated: 木曜日, 10月 18, 2018

暇を見ては紫ライブラリを書いているわけですが、どうもArduinoのシールドがなくて困ることが増えました。

プログラムを書けばテストが必要です。ところが書いているのがHALのラッパーとあって、テストにはデバイスが必須です。理屈の上ではHALの動作を完全に把握することで、HALをシミュレートするスタブを書くことができます。しかしながら、毎度書いているようにSTM32 HALのマニュアルはとうてい完全とは言えない記述量ですので、どうしてもデバイスを巻き込んでテストをする必要があります。そもそも、HALを使わなくてよいように、理解可能なサイズかつ十分なドキュメントを持った紫を開発しているのでした。

なんにせよ、テストが必要ですがそのたびに治具が必要になります。この際、5枚ばっかりプロトタイプ・シールドを買い込んでおきましょうか。

 

Filed in 日記

開発ステータス

By 酔漢 - Last updated: 火曜日, 10月 2, 2018

恒例の夏枯れも終わり、ようやく涼しい中で大画面に向き合うことのできる時期になりました。秋の夜のプログラミングはいいですね。

SDRのプラットホームとしてSTM32マイコン上に構築している紫ライブラリの開発は、低調ながら夏の間にいくらかの進展がありました。

SerialはUARTです。Serialに関してはSTM32 HAL のIDLE Line検出機能を使用した受信タイムアウトを画策していましたが、HALがこの割り込みに対応していないためどうしようか決めあぐねているところです。HALのほかにLL APIも用意されていますが、どうやらこちらでも対応していないようです。

せっかくSerialをDebug Seiralから分離したのでいっそ受信はDMAから割り込みに鞍替えしてもいいなとおもっています。そうすればIDLE Line割り込みを単純なセマフォのタイムアウトに落とし込むことができます。この方法では1文字ごとに割り込みが入りますので処理が重くなりますが、もともと紫の設計思想では、大量にデータ転送するのはデバッグ出力くらいなんですよね。

あとはSPIとI2Cのスレーブを実装したいところです。私自身にとっては不要ではあるのですが、せっかく作ったライブラリなので。

冬の時期の間に実装がおわるといいな、と考えています。

Filed in murasaki, 日記

STM32 HALのHAL_I2C_Mem_Read

By 酔漢 - Last updated: 月曜日, 9月 24, 2018

STM32シリーズマイコンのHALには、I2Cペリフェラル用APIとしてHAL_I2C_Mem_*()というものがあります。例えば以下のようなものです。

STM32をいじり始めて1年ほど経過しましたが、最初の頃から疑問だった「HAL_I2C_Mem_*は、一体何に使うのか」がようやくわかりました。これは、「デバイス内部のアドレスを指定したあと、repeated startを送ってからデータを読む、書くAPI」のようです。

HALのマニュアルにはHAL_I2C_Mem_Read()について以下のように書かれています:

Read an amount of data in blocking mode from a specific memory address

これで全部です。わかりませんよ、こんなもの。典型的な「書いている本人はわかっているが、必要な情報が書かれていないので読み取れない」マニュアルです。質の悪いマニュアルに悩まされた1年でした。ちなみにRepeated startが送出されるというのはStackoverflow情報ですので、確かめたわけではありません。

マニュアルの不備というものは、本当に時間を無駄にします。

 

 

 

Filed in STM32, 日記

スマートスピーカー

By 酔漢 - Last updated: 土曜日, 9月 8, 2018

ちょっと思うところあってAIスピーカーの本を読んでいます。

Raspberry Piを使ってGoogle Homeを作ることができることは知っていたのですが、実はAmazon EchoもIBM WatsonもRasberry Piをフロントエンドにすることができるとのことです。

そして、こっちが知りたかったことですがいずれの音声認識サービスも、ユーザーが特定の文章から独自のハードウェア制御をするための枠組みを持っているようです。要するに、自作機器を音声制御できるわけですね。興味深い話です。

もうちょっと調べてみます。

Filed in 日記

回路図レビュー

By 酔漢 - Last updated: 金曜日, 9月 7, 2018

設計したあとしばらく放置していた回路図を引っ張りだしてレビューしました。

一点修正。放置すると頭が冷えるからいいですね。一つ一つたどっていって、より良い方法に気がつきます。珍しく純粋なアナログ回路を作っています。

Filed in 日記

Doxygenの出力をLatex経由でPDF化する

By 酔漢 - Last updated: 金曜日, 8月 17, 2018

DoxygenのHTML出力はクリッカブル・リンクが大変便利です。

一方で、このHTML出力は検索エンジンをカスタム化しない限り、検索機能が非常に限られるという欠点があります。デフォルトでは抽出済みキーワードしか検索対象にならないため、「思いついたキーワードで検索する」という、初学者がよくやる手が使えません。

そこで、PDF化することにしました。

Read the rest of this entry »

Filed in 未分類

Spresense SDKにCMSIS-DSPをリンクする

By 酔漢 - Last updated: 金曜日, 8月 10, 2018

Spresense SDKにCMSIS-DSPライブラリをリンクしました。これによって、ARMが提供している基本演算や信号処理ライブラリをSpresenseアプリケーションで使えるようになります。

Read the rest of this entry »

Filed in Spresense

Spresenseのドキュメントの改善提案について

By 酔漢 - Last updated: 日曜日, 8月 5, 2018

ここ1週間ほどドキュメントを読んだり実機を触ったりしたうえで感じたことを書き記しておきます。

企業の製品やマーケティング活動にあれこれケチをつけて「こうすればいいのに」「わかっていない」と吠えるのは一番みっともないユーザーと相場が決まっています。が、ほかには私にできることもないようですので。

Read the rest of this entry »

Filed in Spresense

Spresenseのデバイス名を固定する

By 酔漢 - Last updated: 土曜日, 8月 4, 2018

Spresensenのメインボードは、USB接続するとPCからはUSBシリアルデバイスに見えます。これは/dev/ttyUSB0とドキュメントでは書かれていますが、実際には他のデバイスへの接続状況により/dev/ttyUSB1や/dev/ttyUSB2になりえます。

このままでは使いにくいので、デバイス名を固定にしました。動作はUbuntu 16.04 LTSで確認しています。

Read the rest of this entry »

Filed in Spresense

SPRESENSE SDKを始める際の注意

By 酔漢 - Last updated: 土曜日, 8月 4, 2018

SONYのARMボード、Spresenseを購入しました。使いはじめるにあたってドキュメントでつまづきましたのでこれから始める人のために記しておきます。

なお、Arduinoには今のところ興味がないのでSpresense SDKについてのみ書いています。

Read the rest of this entry »

Filed in Spresense