[SpinalHDL] UART を作って FPGA で動かす(その1)

How software programmers design a UART peripheral on FPGA. ソフト屋のための SpinalHDL FPGA 設計入門の続編です。前回は SpinalHDL で PWM 回路を設計し、FPGA(TinyFPGA BX)で動かしてみました。今回はもう少し実用性と今後の発展を考えて、UART 送信回路を設計してみることにします。 ちなみに、SpinalHDL にはちゃんとした UART の設計例が載っているのですが、初めから… 続きを読む »

[小ネタ] 特殊なショートカットをタイプする、専用キーボードを作る

Making a special USB keyboard to send a keyboard shortcut. 今日も小ネタです。 背景 いま、とある仕事で Wayland + Weston で動作する Qt アプリを試作しています。Wayland ってのは私もよく分からないのですが、軽量な X Window サーバーみたいなものでしょうか。 アプリの試作をしているので、ときどき画面のキャプチャを取りたくなるのですが、調べてみると Weston での画面キャプチャには「… 続きを読む »

[ガジェット編] Seeed Studio からいろいろ来た

Some new gadgets from Seeed Studio including a RISC-V MCU development board. またぞろ電子工作ガジェットをいろいろ買ってしまいました。本当は 10月末にオーダーして、そのときに estimated delivery が 11月後半だったのに、なんと 1月まで延びてしまったという強者も含まれます。 いま、DHL さんの荷物を佐川さんが持ってきて、「サインでも結構です」と言われたのですが、既に手にハンコを… 続きを読む »

ソフト屋のための SpinalHDL FPGA 設計入門(その4)

Finally run the PWM LED on TinyFPGA BX. 前回までの続きです。いつまで立っても犯人の挙がらない刑事ドラマみたいになってきたので、今回は意地でも FPGA ボード上で LED をホワホワさせましょう。 前回は、PwmLed クラスを実装し、シミュレータ(Verilator + GTKwave)で回路の波形出力を確認しました。ところが、PwmLed のような論理回路を実際に FPGA 上で動かすにはそれだけではダメで、他にトップレベル(top… 続きを読む »

ソフト屋のための SpinalHDL FPGA 設計入門(その3)

Continue sleepy LED PWM project by SpinalHDL. 前回の続きです。前回までで PWM の基本ロジックが完成したので、今回は LED ホワホワルーチン、じゃなかった、ホワホワロジックを設計していきましょう。 前回までの流れ 初めての SpinalHDL: デジタル PWM を SpinalHDL で書いてみよう Verilog 生成とシミュレーション: 記述した回路をシミュレーションしてみよう 前々回に設計したブロック図を再掲します。 … 続きを読む »

ソフト屋のための SpinalHDL FPGA 設計入門(その2)

How to begin a simple SpinalHDL project and simulate it. 本年もよろしくお願いいたします。 前回は SpinalHDL でデジタル PWM 回路を設計してみました。今回は、それをシミュレーションで動作させ、期待通りの波形が出力されるか見てみましょう。 前回までの流れ 初めての SpinalHDL: デジタル PWM を SpinalHDL で書いてみよう SpinalHDL プロジェクトファイルの準備 前回、Spinal… 続きを読む »

[番外編] ESP8266 前史

How we built network connected devices before ESP8266 was born. 大掃除をしていたら、既にお役御免になったこんなデバイスが現れました。   どんなデバイスかというと、Wi-Fi 経由でコマンドを受け取って、照明器具をオンにしたりブザーを指定回数鳴らしたり、という、今でいう IoT のハシリのような装置ですね。作成したのは、2011年の東日本震災直後のことです。 …実はもっと正確に言うと、この装置はインターネットから… 続きを読む »

ソフト屋のための SpinalHDL FPGA 設計入門(その1)

FPGA design tutorial by SpinalHDL for embedded software engineers. 先日、SpinalHDL というハードウェア記述言語を簡単に紹介しました。最終的な目標は RISC-V を使って FPGA 上に SoC を設計実装することですが、目標が高すぎるのでハードルを下げます。まずは、VexRiscv を実装しているハードウェア記述言語 SpinalHDL を(少し)勉強し、簡単な論理回路を FPGA(具体的には Ti… 続きを読む »

Nordic nRF52 を GCC で開発する(通信アプリ編)

Building a Nordic nRF52 BLE app by GCC and Eclipse. 前回は、とりあえず GCC と Eclipse をインストールし、Nordic nRF52 DK ボード上で「LED チカチカ」プログラムを動かしてみました。前回できなかったテーマ(宿題)を、今回は進めて行きましょう。 Eclipse 上からフラッシュ ROM に書き込もう 前回は、make コマンドでフラッシュ ROM にプログラムを書き込みましたが、実は Eclipse… 続きを読む »

年末の Roomba オーバーホール兼メンテナンス

Overhaul and maintenance of iRobot Roomba 530.  Finally identified a photo transistor was broken. 年末恒例の、お掃除ロボット Roomba(ルンバ)のオーバーホールです。オーバーホールに合わせてバッテリーやブラシを交換することもあるのですが、今回はなしです。その代わり、以前から気になっていた現象の徹底調査をすることにしました。 うちの Roomba は 2008年に購入したもので… 続きを読む »