lynxeyedの電音鍵盤

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

PSoC

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

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

PSoC3で指定回数分だけクロック送出

前回(PSoCでVerilog - Lynx-EyEDの電音鍵盤 新館)の関連記事になります。 PSoC3/5で指定回数分だけパルス出力したいと考えました。8bit長シフトレジスタでは、通常8クロックを送出してから、保存用レジスタにストアします。 しかし、データストリームが8の倍…

PSoCでVerilog

画像を利用した姿勢制御計画がちょっと部品選定で頓挫中です。 MachXO2 → PLD付きCPUのPSoC3でも出来そうということで、部品選定フェーズに巻き戻ししてます。あーあ。【メリット】 ・CPUによってPLDのステートマシーンをなくす、または最小限に出来る。ある…

AitendoさんのOLEDをPSoCで制御しましたよ

※今日のブログ大変長いのでご注意を…。6月30日までお得なaitendoさんの0.95インチOLEDを買ってみました。 実際に手にしてみると、「かなり小さい」というのが正直な感想です。「OLEDとキャリーボードの2点セット」 http://www.aitendo.co.jp/product/2099 ち…

PSoCのPWMを高速化・15bit化しましたよ

DACいらずのワンチップ構成 AN2246にはキャリア周波数を低下させないで、2つ(以上)の8bitPWMを連携させ高分解能化させる方法が述べられています。今回はこれを利用しました。外部にDACや分圧用の抵抗等を接続せずに~16bitの分解能PWMを生成し、音声出力とし…

今までとは少し毛色の異なる8pin PSoCオーディオプレーヤ

ちょっとした前置き ADPCMでは「前回のデータ、今回のデータ」から「次回のデータ」を増分予測パラメータから予測し、その予測との誤差を記録していました。しかし、増分予測パラメータとの誤差が大きい場合、当然データは追従できないため、音質は劣化する…

10bit版リリース

サンプリング周波数の向上を目指し、アセンブラ記述やアルゴリズムの改良を試みたのですが、やはり3.3V駆動(=CPU 12MHz)だと12kHzステレオが限界の模様です。 いいアルゴリズムを思いついたら改良したいと思います。(てきとー)ダウンロードはコチラから(バ…

音質を9bit分解能に向上

この間のリリースが最後の安定版と言ったものの……。twitterにて、ADPCMデコードにおいて1ないし2bit分解能向上させても処理速度は変わらないのではないか…という指摘を頂戴しました。 結果、確かにその通りでした。PWMの動作周波数の上限などを考慮し、9bit…

DAC出力タイプADPCMデコーダ

AppNoteをもとに実際に回路を構成し直しました。音声出力はPWMそのものではなく、SCBlock経由でアナログ出力としています。 GOE0,GOE1経由でPWM出力をアナログブロックカラム0,カラム2へ入力しますが、 これはGUIではできないので、main.c側で AMD_CR0 = 0x2…

PWM based DAC (AN2199)

2010年となってしまいました。 このブログをはじめてからかれこれ4年が経とうとしていますw 今年は少しづつレベルアップしたいですね。今年の3月までのロードマップを考えました。 PSoCのSCBlockを利用し、PWMベースのDACの完成 ADPCMプレーヤ基板を設計・…

アルミMacBookの内部

年末の大掃除と称して、2008年後期に発表されたMacBook(Proが付かない13インチMacBook)のオーバーホールをしました。 結構冷却ファン周りにホコリが付いていました。 100円ショップなどで売っている絵筆とかで簡単に掃除できるのでおすすめです。で、上の写…

SSM2301を使ってみた

CypressのPWM8に関するデータシートを見ると、3.3V駆動またはグローバルバスに出力する際はPWMに供給可能なクロックは最大12MHzのようです。 従ってPWM8の場合、キャリア周波数は40kHz強という事になります。 音声領域を取り扱うには厳しい物が有りますが、…

PSoCの最終奥義

ダイレクト録音機能に対応しました。 イヤホン端子がそのままマイク端子になります。 PSoCはダイナミックリコンフィグレーション(以下DRC)という便利な機能があるので回路構成の動的変更にDRCを使いました。 録音フォーマットはraw PCM(8bit,12kHz,mono)です…

PC側エンコーダの修正

エンコーダの一部を修正しました。 しかし変換ロジックは変えてないので再変換の必要はありません。 相変わらずコマンドラインなので、フロントエンドを作りたいと思うのですが…なかなかそこまで時間が取れないのが現実です。使い方は以前に書いたのですがそ…

PSoC1シリーズの新顔がリリース

ET2009ではARMブースでPSoC Creatorが盛り上がっていたようですが、PSoC1シリーズもラインナップが増えましたね。 CY8C28シリーズというのが出たようです。 サイプレスの記事 アナログ周辺が強化されたようです。 フラッシュは16K。SRAMが1K。 …ということは…

計画倒れの予感(前編)

秋月で200円で売っているPSoC、CY8C24123Aでダイナミックリコンフィグレーションしてみようと思いADPCMデコーダの内部構成を2パターン用意しました。 でも、実装は無理な予感 いままでのADPCM(ver0.01f)デコーダのコンパイル結果 ROM 66% full. 2675 out of…

割り算

PSoC1だと割り算はシフト命令多用するしかないのかぁ… なんかいい方法無いのかしら…せめて多ビットのシフト命令を1サイクルでやってくれると嬉しいのだけども。

立て続けに更新

会社帰りにふと思いついたことがあり、デコードパラメータを改良してみました。 今まではC言語で10個の増分パラメータの配列を記述していました。これはiMageCraft Cで12kHz,stereoの音声を発音するのに時間的に限界のパラメータ数だったからなのですが… M8C…

バグ修正

twitterでバグの指摘を頂いたので修正しました。 【修正内容】 ファイル位置クラスタをルートディレクトリエントリから取得する際、下位8bitからしか取得しておらず、再生の挙動が不定になるバグを修正 ダウンロードはコチラから(プロジェクト全部)バージョ…

それも手だ

RAMやCPU速度が比較的遅いマイコンを使ってSDカードにデータを書き込む際にはいくつか方法があると思います。 ガチでFATを考慮してRAMとCPUリソースを大量消費して長時間掛けつつだらだら書き込み ファイルシステム完全無視、シリアルEEPROMとして書き込み …

デコード関数を全てアセンブラ化

インラインアセンブラは便利ですが、コンパイラの変換ロジックが変更されてしまうとバグの原因となるだけでなく、ソースコード自体が見づらくなります。 そこで、ADPCMデコード関数を全てアセンブラで記述し、Cからも呼び出しができる様にしてみました。(ext…

iMageCraft向けにリリースしました

CY8C24123A向けのADPCMデコーダをリリースしました。 IMAGECRAFT CはHi-TECH Cに比べて処理が低速、容量が肥大しやすいので、 main関数以外の一部をインラインアセンブラで記述しています。 main関数内のソースコード変更は差し支えないですが、main以外のサ…

iMageCraft Cのフリー版をお使いの皆様へ

iMageCraft Cだと、現状のソースだと12kHz、ステレオの再生速度に追従できないようです。対処方法を以下に示します。(iMageCraft Cのみ) インクルードファイルadpcm_ima_dvi.c(main.cと同じフォルダにある)を開いて、28行目 dlevel =… をコメントアウト 29〜…

8pinのPSoCでもFAT

秋月で200円で売っているCY8C24123Aで簡易ADPCMプレーヤを制作しているわけですが、PSoCはCY8C29x66以外のデバイスはFATライブラリが用意されていないため、各自製作する必要があります。 結局FATライブラリーをフルスクラッチビルドで導入してみました。 と…

移植完了

無事dsPICの時に書いたコードの流用で移植成功。 しかもSDをSPIMでドライブさせる際、クロック周波数12MHzでもきちんと追従できているようです。 また3.3V動作する様にCPUクロックは12MHz。 再生可能なファイルフォーマットは独自ADPCM、ステレオ12kHz 音声…

困った

29466以外のPSoCでSDカードを動かす時は自分でドライバを組む必要があります。 本ブログでは当初からR8CやMSP430などでSDをドライブさせていた訳なので問題ないはずですが…今までどうやってSDカードドライブさせてたっけ?すっかり忘れてソースコード見ても…

8ピンでも立派なSoC

言われた仕事をこなしにお茶の水へ その帰り、閉店20分前の秋月で買い物 PSoC CY8C24123 PSoC CY8C27143 I2C EEPROM(1Mbit) AT24C1024B 種類の違う8ピンPSoCを買いました。 本命はCY8C24123(値段が安い&2.4Vから駆動可能)。でもブロック数がえらく少ない…

京大のサマーキャンプが何やら楽しそうな事を…

2回生向けエレクトロニクスサマーキャンプ Programmable System-on-Chipを使って音の出るものを作ろうすごく面白そうです。 ワンチップマイコンは各社からさまざまなチップが発売されていますが、Cypress社のProgrammable System-on-Chip (PSoC)は、 アナロ…

sourceforge.jp

sourceforge.jpにUPしてみました。 まだまだ「玄人志向」になってる*1ので、これから充実させる予定です。 PSoCのM8コア向けですが、ARM,8086互換PSoCへの対応もしていくと思*2。 何か要望やお気づきの点がが御座いましたらメールください。http://psocvoice…

なんでだろ

firestorage.jpでファイルをUPしているのですがすぐ(1,2ヶ月)消されてしまいますね。 一応再アップしてみました。 今回はダウンロードが500回行われると終了になるらしいです。 どこか、おすすめの無料オンラインストレージってありませんか? 教えてくださ…