goo blog サービス終了のお知らせ 

寝ても覚めてもPSoC

電子工作とマイコンをやりはじめました。
ど素人ですので配信する情報の取り扱いには十分注意してください。

PSoCでMP3PLAYER[VS1011E] その2

2009年09月07日 | PSoC
前回は、128Kbpsと256Kbpsを再生しましたが、今回は160Kbpsと192Kbpsも試してみました。

64Kbps....再生OK
128Kbps....再生OK
160Kbps....プチノイズ発生。あと少しがんばれば再生できるかも。
192KBps....転送間に合わずorz
256KBps....転送間に合わずorz

PSoCはCY8C29466で3.3V 12MHzです。
SD-CARDモジュールも最大速度で通信できないのも痛いですね。
ちなみにプロジェクトはPD4.4でやりましたwww

VS10xx Standalone PlayerというPDFの中に、SCI-Controlled Playerというのがあり、
VS1011EとSD-CARDを直結し、player1011esci.binというファームを転送してマイコンで
制御することで高ビットレートでも再生できそうです。
まともなPlayerを作るならこの方法って感じがしますが、誰かチャレンジしないかなぁ

僕としては、BGMや音声ガイドが本当の目的なので128Kbpsで充分といえば充分です。
実用的なPlayerは...買ったほうがいいですね。小さいし...


回路図です。12.6MHzクロックはPSoCで作ってもいいかも


PSoCでMP3PLAYER[VS1011E]

2009年08月31日 | PSoC
48Pinをハンダ付けしてから約1ヶ月ww
なかなか進まなかったが、なんとかできた。
それは、PSoCでMP3プレイヤー!
俺的夏休みの自由課題としては上出来かな!!wwww


デコードICは定番っぽいVS1011Eです。(左上の緑色のIC。秋月で購入)
スパゲッティ状態ですが、音は鳴っていますw
このプロトタイプ、一度パラしたら二度と組み立てたくないレベルに仕上がったwwwなので、バラせません(>_<)
まぁVS1011側の基板をもっとちゃんとしないといかんですね。
結局はデータシートに書いてある配線でいけたのでモジュール化する予定
かなりすっきりできそうです。

マイクロSDカード基板はストロベリーリナックスで買いました。
mp3ファイルは、128Kbpsまでは再生できましたが、256Kbpsでは転送が間に合わず、トレモロ状態になってしまいます。

回路図、プロジェクトはモジュール化した後にUPします。
※しかし先人たちは凄いなぁ。Webに情報が無ければ再生までいけなかっただろう...。感謝感謝。


ちょびちょびと....

2009年08月12日 | PSoC
ちょびちょびと電子工作をやってますが、
なかなかブログに載せるところまで到達できませんw
暑さダルさもあって、48Pinをハンダするだけでも結構かかりますた。orz
まぁこいつは長期化しそうなので、間に何か軽い奴でも挟もうかなとも思ってます。

この間、初めてオシロスコープとファンクションジェネレータの動作を間近で見ましたwwwww
オシロの画面って、綺麗ですねー

続続SP5

2009年07月29日 | PSoC
SP5.5が出ていたのでインストール!(^∀^)
しかし、やっぱダメ。Programmerが起動しない~

ちなみにプログラマは↓こんなのが起動します



他のIDEで良く見られる、TOOLで任意のプログラムを起動できる機能を用意してくれれば何も問題ないんだけどなぁ...


続SP5

2009年07月07日 | PSoC
ちょーーーwwww
”Program Part”で何でPSoC Programmerが立ち上がらないんだ?
なんかデザイナに組み込まれたみたいだけど。
百歩譲って、組み込んだのは良しとしよう。
しかし、モーダルなのはダメだ。信じられん改悪だ!
ありえん。残念ながら僕のレベルではサイプレスの考えは理解できない。

あー、一気にやる気が失せた
ただでさえ重いデザイナ5に、融通のきかないImageCraft、そしてこの改悪は致命的。

今後の選択
1.このままSP5を使う
2.SP4に戻す
3.どうせならデザイナ4.4まで戻す
4.PSoCをやめる

※この件について、他で記事をみないので、もしかして僕だけ??かもしれないなぁwwwww

SP5

2009年07月06日 | PSoC
PSoC Designer 5のSP5が出たので入れてみました。
まぁ問題なくビルドできると思ったら...
コンパイルエラーが出るわ出るわww
大漁大漁~!!

今までのプロジェクトをImageCraft用にしないといかんなぁ...orz

CY8C27143でマトリクスLED[Max7219]

2009年06月30日 | PSoC
またまたマトリクスLEDです。
前回は 74HC164 というICを2つ使って、4つのポートで表示しました。
それで今回は Max7219 というICを使ってみました。このICでは、なんと3つのポートで表示が可能に!!(ズドーン!)
しかも74HC164は14x2で28ポート、Max7219は24ポートで4ポートもハンダ付けがお得に!
そして設定した値をMax7219側が表示してくれるので割り込み処理も必要なし!
ただし、価格は数倍ですが...orz
まぁしかし、こんな便利なICがあるとは知りませんでした。まさに7segLEDかマトリックスLEDを表示するために生まれてきたIC!!



配線はソースのコメントにあります。(正しい保証はありませんので、必ずデータシートで確認してください)

プロジェクトです。
デザイナ: 5.0
デバイス: CY8C27143-24PXI
コンパイラ: Hi-Tech C
PSoC_Max7219.lzh

CY8C27143でマトリクスLED[74HC164]

2009年06月28日 | PSoC
8PINのPSoCで8x8のドットマトリクスLED[TOM-1588BH-B]をやるにはどうしたらよいか?
ってことで、普通にやると16PIN必要なので74HC164というICを使ってみました。
74HC164...8-bit Parallel-out Serial-In Shift Register
8ビットのシリアルデータをパラレルに変換してくれるという、ありがたいICですね。CY8C27143のようにポートが少ない場合は特に。
制御PINのSerialInputsAとB、Clear、Clockの4PINで8個のLEDは扱えそう。
しかし、マトリクスに対応するには、こいつ(74HC164)を2つ使わないといけない。
27143で使えるのは6PINなので、とりあえずSerialInputsAとBをまとめればいけそうですね。
いやいや、まてよ、ClearもClockも同期してるので共通でいけそうだ~。
という訳で、4PINでマトリクスLEDの表示ができました
しかし、実用としては少し電流が足りないので別機構が必要です orz

左からCY8C27143、74HC164[列用]、74HC164[桁用]です。
相変わらずケーブルがぐちゃぐちゃw




プロジェクトです。
デザイナ: 5.0
デバイス: CY8C27143-24PXI
コンパイラ: Hi-Tech C
PSoC_74HC164.lzh

CY8C27143とRX

2009年06月21日 | PSoC
8PINのCY8C27143-24PXIでRX8を使おうとすると、以下の警告がでます。
3.3Vでも5V設定でも同じです。
27143のクロックって24MHzじゃないの????

Level 1 Warning - RX8 should not be used along with a Power Setting that has SysClk freq less than 24MHz.

マジでRX8は使えないんですかねー??
※TX8でも出ます(T_T)


※6/23追記
警告が出ますが、5Vも3.3Vも普通に使えることがわかりました


サーボ8ch制御[GWS S03T]

2009年06月12日 | PSoC
PSoCでサーボモーターを制御してみよう!目指せ、二足歩行ロボ!!
って事で、ちょこちょことやってましたが、とりあえず形になったのでアップします。

PWMを3つ使ってサーボモーターを8chまで制御できます。(サーボ入手の関係で6chまでしか試していませんけど...)

いろいろググると、サーボは20ms周期でそのうち2.5msまでのパルス幅で回転角度を決定するモーターらしい。
※センターは1.5ms

という事は20ms-2.5msの17.5msは使われていない。その空いている時間に他のサーボを制御すれば、少ないリソースでたくさんサーボを扱えるという。
なるほど~、つまり20ms/2.5ms=8で8chはいけそう。LEDのダイナミック点灯みたいですね。

↑次の周期でCH:0ってなってますが、CH:1の間違いです。

以下が使用したGWS S03Tの情報(データシートより抜粋)です。
■GWS S03T
・Operating voltage : DC4.8V - 7.5V Max.
・Operating temperature : -20°C ~ +60°C
・Pulse width range (Frame time : 16-23 ms)
 Max : 2.1 ms
 Min : 0.9 ms
・Horn position (rotate angle)
PulseW Horn position
 0.8 ms Safety zone for CW
 0.9 ms +60 degrees ± 10° CW
 1.5 ms 0 degree(center position)
 2.1 ms -60 degree ± 10° CCW
 2.2 ms Safety zone for CCW

PSoCの制御ですが、とりあえずRow_Outputが4つまでなので、PWM1つにサーボ4つを受け持たせ、全体の管理用として一つのPWMを使用しました。これでPWMは3つ使用します。(なんか無駄なような気がする...)
各サーボへの信号の動的切り替え(Row_Output)は DCB**OU レジスタを直接書き換えました。他に良い方法があれば教えてください。
たぶん、絶対もっとスマートな方法があると思います...

実際に歩かせるには、まだまだかかりそうです。電源や歩行シーケンスやフレームなど。
ゆっくりやっていこうと思いますが、ちょっと手を出すのが早かったかな~?!と思う今日この頃です。トホホ...

プロジェクトです。
デザイナ: 5.0
デバイス: CY8C29466
コンパイラ: Hi-Tech C
PSoC_ServoCtrl.lzh