lynxeyedの電音鍵盤

MBDとFPGAと車載で使うデバイスの備忘録

Chiselを使ったRISC-Vの勉強(4. プロジェクトへの機械語の読み込みの自動化)

今更ながら環境を整える VSCodeにChiselプラグインを入れつつ頑張っていたのですが、IDEがオブジェクトやクラスの階層を把握していないため、補完機能が乏しいことなどから限界を感じてました。いつも参考にさせていただいている、diningyo氏(id:diningyo-kp…

Chiselを使ったRISC-Vの勉強(3. ALUの実装とIDステージの改良)

githubを巡回してみていろいろな実装を見て作戦を練っていました。 これまでRISCVの命令セットを見る限り、opcode(7bit) + funct3(3bit)で判別して適当に実装できるかなと考えていました。(10bitなら単純計算で1023命令は用意できるし) ALUへの演算命令、2…

Chiselを使ったRISC-Vの勉強(2)

汎用レジスタ(x0-x31)の実装 RISC-V(RV32I)の汎用レジスタは32bit長で32個あります。 下記Manualのpp.10(Fig2.1)参照 https://content.riscv.org/wp-content/uploads/2017/05/riscv-spec-v2.2.pdfまずRISC-Vの命令デコードには必須なのでこちらを用意します…

Chiselを使ったRISC-Vの勉強(1)

前回紹介したようにプロトタイプ用のFPGAができて, その後USB Type-C化などもいたしました。 これで電力問題が解決したため、FPGA基板からRaspiに給電かつ給電時の衝突防止までできるようFETを追加する改造もしました。 さて、とても使いやすいRISCVのSCR1を…

Cyclone10LP基板ができたのでLチカ

基板到着 新型コロナの影響なのか国内の基板製造にみなさん移行しているようで、いつもより時間がかかりました。 2層基板、L/S=5milです。Raspberry Pi Zeroにスタックできる設計。 特に実装エラーもなかったようで安心。基板製造前の指示で認識マークを基…

Cyclone10 LP基板をつくる

プロトタイピング環境の刷新 最近基板を作るのも、組み込みや車載の仕事もいろいろ残念なトラブル続きで最小限の一部の知り合いに絞っていたのですが、 そろそろ身の回りの「ラピッドプロトタイプするときのデバイス」のアップデートをしなきゃと思い立ち、…

Raspberry PiでBLE Notifyを確認する

LightBlueのLogだとつらい 前回PSoC63でBLEペリフェラルを作りました。 Terminalから文字列を入力するとBLE Notifyとして送信されるというものでした。 LightBlueで簡単に確認するのには便利ですが、センサ情報などを1日中収集するような用途には向きません…

PSoC6とModusToolbox IDE v1.1でBLEを試す

前置き なんだかんだでPSoC63もわりと使えるかもしれないって思ってもらえれば幸い。 補足 ソースコードを逐一追って細かく解説はしません。IDEのインストールとか使い方はのりたんさんがQiitaで手取り足取り解説してくださっています。v1.0の解説だけど、v1…

Raspberry Piでngrokのtcpアドレスをslackへ通知する

NAT越えしたい 自分の家に設置したラズパイにsshで入るならしかるべき方法で公開し、公開鍵設定やVPNを張るなどをして入れるとおもいますが、IoTセンサノードとして屋外で使う場合はモバイルルータなどで接続することが多いかもしれません。 モバイルルータ…

Swift PlaygroundsでのMVP実装を考えた

MVP実装考えなきゃいけないほど大規模開発しないよね FatViewControllerガーって言うほど、iPad単体で大規模なプログラムは書かないとは思うのですが… 組み込みデバイスと通信するプログラムが多いので、ViewControllerが組み込みデバイスとの通信APIとごち…

Swift Playgrounds向けアクセサリ「PlaygroundBluetooth API」を使ってBluetooth LEデバイスと通信をする

WWDC2017で発表されたPlaygroundsBluetooth API便利そう 今年最後のブログになります。 今何してあそんでるかの報告がわりに。WWDC2017 What’s New in Swift Playgrounds - Apple WWDC 2017iPad向けのSwift Playgroundsアクセサリとして提供されているPlaygr…

Swift Playgrounds(Swift4.0)で横スクロールするグラフを描く

単純な横スクロールのグラフだけでいい iOSプログラミングのお仕事がちょいちょい来てるのですが、ブランクが長すぎてiPad Proでリハビリをする毎日です。Cordova/PhoneGapも最近聞かないなぁ。 最近はReactがアツいとかなんとか聞くのですが。iOS11になって…

通勤中にご飯が炊ける弁当箱 サーモスJBS-360を買ったらとてもよかったお話

時間がない 組み込みの記事しか書かないこのブログで書くネタじゃないかも何ですが、大体の方は会社勤め、学校通いですよね。 おひるごはん。 外食までもないとしてもコンビニ弁当おにぎりに頼りがち。 今から急いで客先に向かわなくては!…となるとカ□リー…

iPad版Swift Playgroundsでsocket通信する

ネットワークにつながる組み込み機器とスマホを繋げるネタは数多ありますが、ほとんどがAndroid機器のようです。iOSデバイスがそのような所謂"低レベル通信"のほとんどをユーザーに開放してないというのが理由のようです。 あとXCode使う=Mac買わなきゃ & …

Raspberry Pi 3でUrJTAGを使う

とりあえずRasPi3でUrJTAGが動くようにする MAX10を出先や遠隔でコンフィグしたりするときRaspiでUrJTAGが使えたらなあと調べたら使えたのでメモ RasPiだとGPIOでもバウンダリスキャンできるらしいので便利かもしれない。apt install urjtagでインストールし…

RStudioで標準入出力するとなんか変

RStudioがハングする R-3.4.0をWindows10で使っているのですが、ユーザからのコンソールを受け付けるのに以下のように書いていました #! /usr/bin/env Rscript # lines = readLines("stdin") # 以下 linesに代入された文字列の処理 ところが、RStudioそのも…

W5500でTCP/IP:send() , recv()をそれぞれ独立に行う

W5500でTCPソケット送受信をそれぞれ独立にしたい ArduinoでもすっかりおなじみになったWiznetのSPI-PHYシリーズですが、思い出しては忘れを繰り返すので、自分への開発時短効果を期待してメモがわり。W5100/5200/5500のioLibraryドライバ GitHub - Wiznet/i…

PQI Air Pen向けにmips-linux-gnu-gccをソースビルドした話

事の発端 年末にNTT-XストアでPQI Air Penが破格の値段でした。 これ、有線/無線でFTPサーバーになるWi-Fiアダプタなのですが、なにより、弄り倒し甲斐のあるLinuxが入ったMIPSマイコンボードな訳です。 nttxstore.jpそして心強いmoyashi兄さんのブログ hito…

NXPのUART-I2CブリッジSC18IM700でLチカ

すべての道はLチカに通ず このチップの存在を知ったとき、あまり使うことはないかなとスルーしてたのですが、かなり使い道があると思ったのでちょっとだけ。 UARTさえあれば、プログラミングせずにI2Cデバイスと通信できるのでC言語とかVerilogとかぜんぜん…

Radeon R4 が載ってる最強AMDタブレットBungBungame Photon 2を買った

今まで8インチWinタブを愛用してきたのですが、ここに来て色々行き詰まりを感じていました。 8インチは軽くて持ち運びも楽で価格も手頃でとても良いのですが、メールとかSNS確認以上のことをやろうとすると、画面サイズの制約やらハードウェアスペックの制約…

Vinculum-IIでUARTからUSBメモリに書き込んでみる

いまさらVinculum-IIを使ってみた VinCulum-IIのDIP化モジュールV2DIP1-32を以前に買って3年近く積んでたのですが、FSながらもUSBホストが2つあるのと、サンプルコードが豊富ということで使ってみました。 UVC対応Webカメラのサンプルコードなんかもあってい…

IFTTT Maker ChannelをFlashAirで使ってみた

IFTTT Maker Channelがおもしろい スイッチサイエンスマガジンの記事を読んで知ったIFTTT。 IFTTTにMaker Channelができました | スイッチサイエンス マガジン ウェッブ上のサービス同士をつなげるサービスなわけですが、非常に直感的にできているようで面白…

第4世代の新オーディオDSP、SigmaDSP ADAU145xの試食

CES2014で発表されて以来ずっとウオッチしてきたADAU1452ですが、開発ツールSigmaStudioの対応が成熟してきたので使ってみようと思いました。主な特徴として 最大294.912MHz動作 周波数ドメインの演算ができるようになった(FFTなど) Master Control Portを搭…

FlashAir単独でデータの符号化処理をする

FlashAirならではの使い方 仕事でFlashAirを冶具として使っているのですが、なかなか便利だったのでメモ。 5ピン分のGPIOが自由に使えるWi-Fi SDカード、というイメージが先行してしまいがちなのですが、速度がそこそこなので、このSDの旨みはそこじゃないん…

FlashAirからTwitterに天気をポストする

前回のFlashAirネタの続きです CJSONが使える FlashAir W-03シリーズはLuaスクリプトが使えるわけですが、スクリプト中でCJSONも使えることが公式ページに書いてありました。へぇ、すごいじゃん。JSON形式でデータが取り扱えると何かと便利です。 たとえばFl…

Microchip MPLABX/MPLAB harmonyでUSBオーディオデバイスを作る(前編)

必要に駆られ、PCからUSBオーディオデバイスとして見えるブツを作ることに。 数社のデバイスをピックアップし一通り試したのですが、PIC32を選定しました。 PICを選定した理由とか思った事とか、嵌まった所などメモ。 このブログの最後に今回作ったプロジェ…

FlashAir W-03シリーズからTwitterにポストする

変態SDカード一族 GPIOがブラウザなどから自在に操れてしまう一部の頭がおかしい人たちに人気のFlashAirですが、 W-03(SD-WEシリーズ)からLuaスクリプトが動くので僕のような電子工作やネットワーク初心者でも格段に自由度の高いお遊びができます。わーいhtt…

Quartus II 14.0/14.1で初期値ありのUFMをインスタンシエートする

以前(アルテラCPLDで150LE未満のワンチップCPUを作ったお話 - Lynx-EyEDの電音鍵盤 新館)のときはQuartusII 13.1ベースで記事を書いていたので、14系列でかなりの変更があったと聞き、どう変わったか確認したときのメモです。 MegaWizardが消えたっぽい MAX1…

JavaScriptでStewgate U経由でTwitterにポストする

半年近くブログ書いてない...よく、OAuth非対応なArduinoやmbedや組み込みLinux機器から投稿する例は見るのですが、プレーンなhtml+JSでStewgate使うにはどうしたらいいのかなと悩んで、解決した後すぐ忘れてしまうのでメモ書き。StewGate U: Throw your stu…

アルテラCPLDで150LE未満のワンチップCPUを作ったお話

150LE未満のMISC CPU スタック1段のみ、キャリーフラグなし、6命令のMISC CPUを作りました。 (ほんとは5命令だったんだけど、このネタに使うのに1命令追加した)以下が命令です。内部的には最初のコマンド以外、殆ど同じ動きをします。 GO_IF_NON_ZERO_ELS_SU…