lynxeyedの電音鍵盤

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

2011-01-01から1年間の記事一覧

RTOSはもう終焉、プラットホーム化による非言語による物理モデル開発の時代

来年の方針として、今まで通り、音声、画像信号処理を軸にしていきます。 この1年半程ARMプロセッサを中心に信号処理ネタや*duinoネタをやってきましたが、 それに加えて、 MBD(Model Based Development)によるFPGA開発の本格化 大規模集積回路の開発では、—…

15年前の復讐(笑)

小学校の時に秋葉原のガード下で買った懐かしいキットがまだ売ってました。 紙フェノールの片面基板で1cm四方の気違いAMラジオキットです。今となっては、AMラジオの原理はただの共振周波数を拾って積分回路を通せば音は鳴る…くらいはなんとなく察しがつきま…

MARY-DUINOにSPI1クラスを追加

Duino-XはLPC1114F/LPC1114Lの48ピンLQFPデバイスを搭載予定です。*1 この48pinデバイスのみユニークで独立なSPI/SSPが2ch搭載されています。Duino-Xも本家Arduino FIOにくらべてここに強みが有ったり…で、GitHubにもこの変更を反映しました。 http://github…

Cortex-M0ベースのArduino FIO互換機 "Duino-X"

Arduino API互換MARY-DUINOが動作するハードウェア"Duino-X"をこさえました、っと。 MARY-DUINOの機能を増やしていくに連れて、特定用途に特化したハードウェアが欲しくなりました。 そもそもMARY-DUINOはArduino XBee APIライブラリの移植が目的でしたので…

inPulse watchでマンデルブロのジュリア集合で遊ぶ

ARM

積んどくだけの『高級積みARM基板』にならないようにちょっと遊んでいます。 定番のマンデルブロ集合演算です。C言語での開発で、inPulseのAPIも揃ってるので開発は容易ですが、つまづいた点を少し。 タスクはOSが管理している Pulse OSというOSが管理してい…

inPulse Watchが来た

ARM

買ってしまいました。勢いで。内蔵CPUはARM7TDMI-Sらしいです。 http://www.getinpulse.com/Mac OSXでのSDKなどの使い方 http://www.getinpulse.com/guide/mac/↑ここでの説明で十分わかるのですがMacで使う時の補足。 日本語環境では使えないので、「環境設…

MARY-DUINO、マイクロ秒オーダのユーザ割込み関数とウエイト関数に対応

MTM07に出展の皆様お疲れさまです。 風邪など引かぬようお気をつけて下さい。さて、Arduinoのウェイト関数でMARY-DUINOに未実装だった関数を実装しました。 delayMicroseconds() micros() 加えて attachMicroseconds((void *)user_function, int us) detachM…

カメラ基板が到着

Spartan-6 LX9 MicroBoard用カメラスタック基板が到着しました。LPDDRを読み書きするMCBの速度評価をしたいと思います。 10月31日に発注したので到着まで27日かかった模様。 3電源回路ですが部品点数がかなり少ないので2層で十分です。 FusionPCBに発注しま…

累乗則変換を考慮したHSV変換とMATLAB

前回、超絶適当に画像処理しましたが、すこしシミュレーションも交え真面目にやってみる事にしました。 画像データ、とりわけトゥルー・カラーには多くの情報がおさめられているので、用途に応じて適切な画素処理または画像強調処理を施します。例えば圧縮処…

特定の方々が条項の1文を取り上げて騒ぎにしていたCODE REDのライセンスについて

正確な事の発端は知りかねますが、LPCXpresso LPC1343が秋月で取り扱われ始まった、ちょうど1年くらい前から話題にしていた事で、「LPCXpressoのライセンスがあまりにも酷い。ライブラリのいかなる再配布(cr_startup周辺)も出来ないし、(ry」 というもの。 …

GitHubにMARY-DUINOの公開リポジトリを設置

MARY-DUINOの最適化時のバグ等が取れたのでアルファ版からベータ版へ引き上げます。 現状ではLPCXpresso IDE4のプロジェクトとなっております。 併せてGitHubにリポジトリを設置しました。フォークして利用者間での開発・公開を目指したいと思います。 今後…

LPC1114を使うArduino互換API環境、MARYDuinoでカラーセンサーを使う話

最近作っているSpartan-6 MicroBoardスタック用カメラボードはロボットの目の部分、つまり画像認識やSURF処理のために作っています。 ついでにiOS環境でHSV変換プログラミングをしているのはiPhone上のカメラで捕らえた映像の色認識をするため。 これから書…

MARYDuinoがXBee Arduinoライブラリに対応

久々のMARY基板ネタです。 巷ではXBeeが流行っているようです。 自分も秋月でお安くなっていたXBee Series2を3個買ってみました。 「何これわかんねぇw」無線化されたUARTの如く使える透過モードはいいとして、APIモードとか解りません。便利そうなんだけど…

Spartan-6のMCBとカメラボード設計

ずっと、UG388と格闘しつつMIGを使ってLPDDRを駆動するMCBラッパをインスタンシエートしたり、シミュレーションしている訳ですが、ALTERAユーザから見るとかなり奇異に見えるかも知れません。(自分もそうだったので) まず、Spartan-3E、Spartan-6、Virtex-6…

iPhoneでRGB<-->HSV変換

iOS

iPhoneで色認識をしてみようと思います。 人の目(というかそれを処理しているのは脳ですが)は意識しなくても 色の彩度 色の明度 を認識できます。 例えば下の図に示す2つの四角の色は、 「濃い赤」「薄い赤」 とか 「暗い赤」「明るい赤」 と表現することが…

Spartan-6 LX9 MicroBoardを使ったLPDDR SDRAMのハードマクロ実装(その4)

MIGが生成したuser_designを使って、MCBラッパーと分散メモリのインスタンシエートをしているわけですが、ふと、違和感を感じました。user_designのトップファイルのモジュール宣言。 module mymig # ( //(中略) ) ( inout [C3_NUM_DQ_PINS-1:0] mcb3_dram_d…

1秒ごとにiPhoneカメラのライブプレビュをキャプチャしたいんだけど

iOS

iPod touchを買いました。touchは1世代目をとうの昔に売ってしまって、iPhone3GSを購入してからは必要なかったので。 GRIFFINのラバーケースもカッコいいので次いでに購入。*1 で、ちょっと必要に駆られてiOSを弄ってます。 解像度は必要ないんだけどカメラ…

分散RAMのインスタンシエートとMCBの連結(その1)

FPGAを使う理由として同期・非同期FIFOをたくさん用意したい、という点があると思います。 FPGAは内部がSRAMのお化けですし、タイミングが厳しいときはマイコンを使うわけにはいきません。今回、MIGが生成したMCBラッパの32bit幅のデータをLPDDR SDRAM動作ク…

Spartan-6 LX9 MicroBoardを使ったLPDDR SDRAMのハードマクロ実装(その3)

今回はちょっと脇道でハードデバッグの方法を勉強しています。 前回と前々回でネイティブMCBのexample_designインプリメントを行いました。 今回は、ChipScopeの使い方を色々調べていました。 ◆参考文献 いつものとおりです ユーザーガイド(PDF注意) UG416:S…

Spartan-6 LX9 MicroBoardを使ったLPDDR SDRAMのハードマクロ実装(その2)

前回ざっくりとMIGを弄ってみました。今回は実際にインプリするので、……まぁ今回もざっくりと(ぉぃ 今回は実装し、動作をChipScopeを用いて確認するところまで行います。 前回、create_ise.batで自動生成したデザインは2種類ありました。それぞれ次のような…

Spartan-6 LX9を使ったLPDDR SDRAMのハードマクロ実装(その1)

例のAVNET Spartan-6 LX9 MicroBoardにはLPDDR SDRAM(MT46H32M16)が載ってます。 Virtex-6と同様Spartan-6にもMCB(Memory Controller Block)が搭載されており、外部メモリを内蔵ハードウェアで駆動します。 MCBは通常はMIGツールを利用してGUIでリソースラッ…

AVNETのSpartan-6 LX9 MicroBoardがiMPACTに認識されない件の解決方法

秋月電子でこの微妙なボードが売り出されたこともあり、多くの人がSpartan-6に触れる機会が出てきたようです。 てか、このLPDDR、こんなパスコンで性能出しきれんのかよw MicroBlazeには正直あまり興味がわかないのですが、(よりによってLX9にソフトCPU積ん…

MARYDuinoにSDクラス組み込もうとしたけど、どうしたものか

MARY基板のWikiサイトでArduino「っぽいコーディングが出来る」MARYDuinoを作ってます。 簡単なArduinoスケッチであればほぼ無変更で動くかも? ↑Arduino言語とOLEDクラスでマンデルブロ集合演算させてた結果を描画中の図 といってもまだまだ実装できていな…

Java VMとバイトコードとマイコンの親和性は良好?

最近、とある事がきっかけでJVMの勉強をしています。FPGAでOISCを作りたいってちょっと前から思っていて*1その時、id:suikan 氏に「それはスタックマシンの独壇場だろう」と。 ここから脱線が始まる訳です。 FPGAでOISCを作ったは良いけど自分でコンパイラか…

Mac OS X Lionにしたらarm-elf-gccの野良ビルドができなくなったので再挑戦

昨日のネタの補足です。とほほ。 昨日はSnow Leopardでコンパイルして上手くいってたのですが、Lionにしてからconfigureさえ通らない顛末に。 たぶん、ARM以外のクロスコンパイラでも参考にはなるんじゃないかなとか■ gccがクロスコンパイラをコンパイル出来…

arm-elf-g++でC++がなぜかコンパイルできなかったからarm-elf-gcc-4.6.1を野良ビルド(Mac OS X 編)

ここに記した内容はSnow Leopardで試したものです。Lionでは動かなかったのでこちらでLionの時のarm-elf-gccの野良ビルドを試しましたので併せてご覧ください。 Mac OSXで動作するARMクロスコンパイラはMacPortsで簡単に $ sudo port install arm-elf-gccで…

周波数領域での信号処理/アダマール変換とユニタリ行列

前回まで、ライスゴロム符号化を使った時間領域での音声圧縮・伸長のマイコンへの移植ネタを書きました。信号処理でもとりわけ画像の信号処理は音声と比較して帯域が広いので周波数領域での信号処理を強いられる事が多いように思えます。今回、アダマール変…

LPCXpresso LPC1227でMARYボードAPIを流用したSPIライブラリ

Cortex-M0でもDMAが動くLPC1227ですが、FatFsを移植しDMA化したいと思います。 まずは、DMAなしでSPIを動かすところからはじめたいと思いました。 LPC1768/1769の時は、CMSISに準拠したペリフェラルドライバライブラリが提供されていましたが、現時点ではま…

ポータブルな可逆圧縮オーディオフォーマットの高圧縮率化をめざしました

C○I ミドルウェアさんが組み込み向け「非可逆圧縮」オーヂオフォーマットを出してるそうですね。 ナルホドネー(調査中) で、このブログのメインタイトルとなっている可逆圧縮です。ハイ。可逆圧縮オーディオは、圧縮されたデータからもとのデータを100%取り…

Visual Basic .NETで簡単なフロントエンドを組む

ハードウェアな組み込みやってると、PC側のアプリケーションプログラムを組むときもC言語が多いです。 自分だけで使うならコマンドラインベースの使いづらいプログラムでも別に困りません。 でも、納品となると、ちょっとはGUIっぽいフロントエンドつけて気…