最寄り駅が、単線で無人駅ですよ!
神奈川県ですが。
鶴見小野ってとこらしいです。
乗り換え3回、全部立ちで、さらに通勤時間15分くらい伸びそうですが
引っ越しの必要はなさそうです。
その他はイマイチですが、ガシャは盛況なエポック
素ボディ、なかなかいいですな。
足のジョイントがゆるいのと、手が持たせづらいのを無視すれば、だいたいOKで
久しぶりにガシャを回したんだけど
昔みたいに「当たった!」という射幸心よりも
デバグの感覚を感じるようになりました。「うわー、まだバグ落ちねぇ」みたいな。
写真はそのうち
出来たので、メモ
1.messageを変えたいcommitにbranch
showlog->blanch->force, switchで
2.messageを変更
フォルダーに戻ると、そのcommitの状態に戻ってるので
そこでcommit
commit→[v]ammend→ message編集→ok
3.mastarにcheckoutして、新しいコメントのcomitにHeadを移す
show_log ->[v]All Branch→checkout mastar
1.でのカレントのcommitをクリック→reset mastaer w/i◎Hard→OK
4. 1.でのカレントcommitへrebaseする
FFじゃないけど、ファイル構成がわ変わってないので、confrictなくrebaseできます。
これで、messageの書き換えが出来てるハズです。
副作用として、何度も再commitを繰り返すため、repogitoryサイズがでかくなるんですが、しかなたいですかね…
Gitいいよ。Git
年末に作った大盛況(ファミマチャイム)の音なんですが
「大盛況」をBeMicroMAX10で! - 散歩師・漫画居士のくだらなクラブ日記 避難所
ピエゾサウンダーで聞いてるせいで、本物よりも音が固い感じがします。
ダイナミックスピーカーで聞いてみたく、手持ちの386とエミッタフォロアーでどうにか。とか考えつつ、押し入れを漁ると、2008年ころにマルツで買ったこんなキットを見つけました
台湾のaviosysってメーカーのキットなんですが、ここのキットは酷くてですね。
わかってる人にしか扱えない系のモンなんですよ。英語と中文取説だけなのはしかたないとしても、回路的にイロイロダメで。面白くはありますが…。
当時はサイトにキットの情報がupされてたんですが、既に影も形もですな。
同メーカーのPWMモーターコントローラは、設計通りに4cellでは動かなくて、電源強化する必要がある上に、ベース電流が適正じゃないので、相当熱くなる上に波形も丸まっちくて、値段なりでしたね、
でもこれ、結構部品が入ってて500円ですよ。当時は本当に円高だったんだなぁと。
Operation Amplifier Application オペアンプ実験キット (K29/2PK2900)
思ったよりも作例が上がってますな。
http://image01w.seesaawiki.jp/e/2/ewa512/dff98e49.pdf
http://image01w.seesaawiki.jp/e/2/ewa512/f378192d.pdf
741使ってる時点で悪い予感がしましたが、スピーカー駆動には386を使ってるのでそこだけ使えればイイやとおもって、作ってみました。シグナルトレーサー/モニターとして使いたいわけで。
さすがに386の回路を間違えることはないだろうと。
741を使った正転アンプは10k抵抗で中点出ししてGNDとして使ってました、他の発信器も各個抵抗で中点出し。インピーダンス高か~
386のボリュームを下げると、発信機の発信が止まり、上げるとこんどは386が発振して歪むとか。
006Pスナップがついてますが、006Pではドライブしきれる回路になってないみたいです。んーどう使おうか。
CRもなぜか設計推奨値になってないんですが、006P対応で、いろいろやっちゃったんでしょうね。効いてないみたいですが。
386の回路だけを裸にして、件のファミマチャイムにつなぐと、
ボリュームを相当下げないと歪む歪む。
よくわかりませんが、006Pでは電流引ききれないってことなのかなぁと。
入力フルレンジで3.3Vだもんね。
とりあえずここまで。
元旦に、近所を散歩してると、ゴミ捨て場のダンボールの束のなかに、
ZOZOTOWNの箱が、
何やら印刷してあるので、よく見るとストームトルーパーのヘルメットのキットでした。
なんか、俺に作ってくれ!って言ってるみたいだったので、保護して元旦工作。
(私は、大晦日と元旦には締め切りのあることをしないと決めてるです。
得に元旦はPCも封鎖)
実は天板の部品だけ欠品で、他のダンボールでありあわせたんですが
結構なんとかなるもんですな。
正味2時間なり
このキット、折り目の押しまで入ってて、作らせる気満々ですよ。
WEBにもこんなに作例が!
しかし、これ。
昔だったらTVCM打つくらいの付録だよな。
かぶれるよ!
明けましておめでとうございます
ちょっと気が早いですが…
昨年中はお世話になりました
今年は良い年になりそうな予感!
BeMicroMAX10でDVI出力出来ました。延べ24H?
廉価FPGAでHDMI(DVI)出力 - sa89a.net をほぼ踏襲してます。
sa89aさんありがとう
フォーマットは
以下 EIA/CEA-861-Bの4.5 720x480p @59.94/60 Hz (Formats 2 & 3).
と称されるものです。↓
http://read.pudn.com/downloads74/ebook/269248/EIA-CEA-861-B.pdf
CK,R,G,Bの各+/-/GNDの3本と、17pin DDCGNDと、ケースGNDのみ接続。
それ以外はNCです。
配線は、今回はじめてポリウレタン線を使いましたが、楽ですね。ちゃんとついてる時はピピっと引っ張ると、リールが回って線が伸びるので、一発でわかるのとか、楽です。
↓ポリウレタン線配線TIPSはこちら。
sa89aさんの作例通り、各信号線には270Ωのダンピングを入れてあります。
s_osafune氏の作例の様にDCレベル変換もする予定だったんですが、620Ωが手に入らなかったので...
■■ sa89a版との差は?
1.プラットフォームをBeMicroMAX10に変更
2.LVDSを擬似からpureに変更(ただしVCCIOは3.3V)
3.フォーマットを720x480Pに変更
4.systemCKを135MHzに/CKEでpix ckをctl
5.serilalizer を240Mbpsに/1:10から1:2に
■■公開
リポジトリは、こちら↓
https://github.com/mangakoji/DVI_720x480P59_94FPS_BeMicroMAX10
(sa89aさんのソースはご自由にということなので、公開します)
IPはリビルトしてくださいね。
(いつのまにかHigh effortでないとタイミングメットしなくなってる。ナゼ? pin配置?)
晴れて念願のデジタル映像環境を手に入れたわけですが(HDMI映像機器持ってないのね。このために中古DVIモニター買ったのよ)
やっとFPGAからホボ直でデジタル映像を出せたけど、コレって、去年の技術なんよね。
何作るかなぁ~
DVIの実装が峠を迎えるにあたり、プラモデル的簡単な作れば必ず動くアイティムを完成させて、気分を楽にすることに。
名曲「大盛況」をBeMicroMAX10に移植しました!
(大盛況は某コンビニ入店アラームで有名なナショナル電工のEC522の音声のことですよ『ふぁみふぁみまー♪』)
と、偉そうに書きましたが、@s_osafuneさんFPGAマガジン記事の記事の
Terasic DE0版を移植しただけです。
IPを全く使ってない上にマスタckも同じ50MHzだったので、本当にラッパ書いただけのプラモ感覚。
(圧電素子の電圧稼ぎのために、正相の他に逆相出力も追加してました)
以下が元記事
1.FPGAマガジンNo.9
2.@s_osafneさんのbLog
■■プロジェクト集め
1.まず@s_osafne氏のTerasc DE0版のプロジェクト リポジトリを手に入れます
→ osafune/CQEXT_melodychime · GitHub
zip版も準備されてるので、Gitをインスコしてない方はそちらをどうぞ。
(Git便利なんで、Gitインスコしましょうぞ)
2.BeMicroMAX10用差分
https://drive.google.com/file/d/0Bx4apUeGhJZwQm90ZUJ1Ri1JNWs/view?usp=sharing
これを解凍して、
./CQEXT_melodychime/qsf
に上書きしてください。
3.コンパイル
あとは、./qsf/*.qpfを開いて、なりにコンパイルすればokです
■■操作法
1.BeMicroMAX10にsof or pofを書く
2.U5-1,U5-2に圧電スピーカーを繋いでください
3.SW1~4を押せば、名曲を奏でます。
■■
GitHub公開のライセンスがイマイチわからないので、
変則的な公開(差分のみ別公開)ですが、
本当は、GitHubにレポジトリを公開するべきなんでしょうね...
正直良くわかりません。
■■006P電源
ついでに9V電池006Pを使った電源を作りました。
これを使えば、セブン-イレブンに入るときに『大盛況』を流すという野望が達成できるのです!
9V→5V変換は以下を使いました
→ 006P安定化電源モジュールキット: 組立キット 秋月電子通商
が、電源コネクタ/プラグが曲者で、外形は極性統一#2
→ マル信無線電機 MP-202L DCプラグ 極性統一#2(L型)ブッシュ無し
でイケるのですが、中pinが細すぎで、しかも若干浅いので、アルミ箔をねじ込んでなんとか使える状態。まだ接触不良中。
schに書いてあるpin径じゃないし、一体なんて規格なんだろう。
5Vなんだから普通に統一#1にしてくれればいいのに。
とりあえず、第一段階通過。
やったことはといえば、
廉価FPGAでHDMI(DVI)出力 - sa89a.net
をBeMicroMAX10に移植したのと、
抵抗ネットワークも同じ
720x480x59.94FPSモードを使いたいと思ってるんですが、
どうしてもダメでだったので、まずはということで移植。
ありがとうございます。> sa89a.netさん。
あと、FPGAマガジンも参考にしてます>osafneさん
ラッチミスバリバリですが、RGB全色入ってるので、傷は浅そう。
先は長いが、第一段階
ども、DVI、コンパイルまで終わってるんですがコネクタ配線で決めまきゃならんことがあって、迷ってる中です。
気晴らしというか、この正月工作に向けて、バージョン管理をsvnから今、人気絶好調のGiJoeじゃなかったGit に乗り換えようかと画策中です。
クライアントは、TortoiseGitにしました。TortiseSvn使ってるので。
■■インスコ
インスコは以下のサイト参考にしたら、シャンシャンでした
TortoiseGitの前にmsysgitをインスコするのをお忘れなく
■
基本的な使い方もこちらでバッチリです
■
TortoiseGit の基礎勉強 ~ TortoiseGit によるバージョン管理 ~ — バージョン管理システム入門(初心者向け)
■■問題
ここで、解決出来た問題と、解決出来ない問題が
■アイコンオーバーレイが表示されない
TortoiseGitは、Git管理下のファイルか?commit完了してるか?などをMS-Windowsのエクスプローラー上で、アイコン部分に記号を表示する機能があります。
この機能は、MS-Windowsのicon-overlay機能を使ってます。
これがないと、TortoiseGitを選択した魅力半減なのですよ。
以下で解決
私の場合は、dropboxのアイコンオーバーレイが過剰だったんですが、
dropboxを捨てられないので、Tortoise側のオーバーレイを削ってみました。
TortoiseGit/msysgitには、SVNのリポジトリを読み込んだりcommitする機能があるのですが、なぜか「URLパスが見つからない」エラーでダメでした。
command lineでもダメでした。
ローカルにあるのでfile:///がダメなんでしょうが、ローカルでhttpサーバ立てるしかないんですかね?
以下の記事の svn://経由というテクニックで移転できました。
むむむ、複数のprojectが一つのレポジトリに入ってて分離できない。
どっちかって言うと、svnの使い方がおかしかった模様。なんとか分離できんかなぁ
■log messageの変更が出来ない(未解決
svnはlogのmessageを後から編集して見やすくできるので、随分助かってます。Gitではなかなか大変みたいで。
TortoiseGitでは結局変更方法がわかりませんでした。直前のコミット分だけは、偶然変更できたのですが、再現方がわからず。
■ファイル/dirのmove(解決?
今まで使ってるsvnは、それ以前のcvsに比べて、ファイルのmoveが出来る、さらに履歴を引き継げるのが売りでした。
なんだか、Gitでは不可能になってて、cvs同様del/add扱いらしく、これは多きな問題なので、考え中です。
--実験してみたら、del and addの場合は、履歴が残るみたいですが
なぜか、管理下フラグが消えてしまう(履歴自体はタグれる)ファイルがあったり
色々不安が残ります
そんな感じで、不安ながらもGitへ移行しました。
以下 EIA/CEA-861-Bの4.5 720x480p @59.94/60 Hz (Formats 2 & 3).
と称されるものに従いました
http://read.pudn.com/downloads74/ebook/269248/EIA-CEA-861-B.pdf
だー!!
既にダウンしてあるpdfの出元調べるだけで1時間たってしまった!
本文はもう明日!!!
先週末~金曜作った12bit in 12bit outのsinテブルを使い、土日に16時間ほどかけて純正律のオルガンを実装しました。前から作りたかったんですよ。
が、色々問題があって、完成に至りませんでした。
完成しなかったので完成品のプロジェクトは出せないんですが、問題点リストは需要があるかもなので、そちらをupします。
■■MAX10はROM推測できないの?
ALTERAのデバイスは、ピュアHDLで書いても(IPを使わなくても)ROMを実装することができます。(XilinxでもMicroSemiでもLatticeでも多分できますが。)
具体的には、以下の
「6. 推奨される HDL コーディング構文」6-24
https://www.altera.co.jp/ja_JP/pdfs/literature/hb/qts/qts_qii51007_j.pdf
の記述方法でROM推測してくれて、M9Kに展開してくれる筈なんですが、
MAX10 + Quartus Prime v15.1の組み合わせでは旨くゆきませんでした。
入力/出力両方にDFFを入れてみたんですが、それもダメ。
Cyclone I、CycloneVに、同じコードを入れてみましたが、こちらは推測してくれました。
困る。何が困るかというと、IPで設計しちゃうと、他のベンダー移植に労力がかかるし、simも大変になるし、sim実行に時間もかかります。
>>>解決 --160104mo追記
Device オプションで DeviceAndPinOptions->ConfigurationMode:で
~MemoryInitializationを選べば行けるみたいです。
が、MAX10は、FやA classのdual configできるデバイスでないとダメみたいですね?(容量のせいなのか、configデバイスのせいなのかは不明)
■14bit4入力加算は78MHz
BeMicroMAX10搭載の10M08DAF484C8GEは、4入力s13bit加算に、78MHzかかりました。
しかたないので、2入力づつ1段叩いたら150MHz以上になりました。
192MHz動作するつもりでしたが、144MHzに妥協することに。
もう少し気にする必要があったみたいですね。
■サウンダーは効率悪いし歪むよ
音出力は3.3VI/Oを逆相2ポート使って、サウンダー(100円ショップの盗難ブザーの圧電素子)を鳴らす予定でしたが、フルスイングでも、300Hzの正弦波はなんとか聞こえるレベル。
8和音とか言うと、1つの音の波高値はフルスイングの1/8になるので、パワーは-18dB(1/64)。結構HiFi?
おまけに、スプリアスがバリバリでるので、音質どころか、和音なんて言えないレベルでした。FFTの波高値で1/3くらいあるスプリアス。少なくともダイナミックスピーカーが必要なレベルなんですが、設計めんどっちーです。
多分100円ショップで探せば32Ω品があるので、それを8パラドライブすれば、聞こえるレベルにはなると思うんですが...
■和音用分周回路の比率計算間違い。
任意周波数のシンセサイザーには、最近はやりのDDSみたいに、任意ステップのカウンタ(ステップ幅を周波数に比例させて大きくする)方法と
ステップは1で、1ステップ上がる時間を周波数の逆数に比例させるカウンタを使う方法がるわけです。
・ステップを変える方法の弱点
ステップ可変の方法は、システムクロック周波数を厳密に考える必要がなく、かなり自由な設計が出来る代わりに、システムクロック幅のジッターを持つ宿命にあります。
・周期(時間間隔)を変える方法の弱点
逆に時間周期を変える方法は、作りたい周波数の波長の最小公倍数をマスタクロックにして、マスタクロックとの公倍数ごとに1カウントアップするような方法を取ります。
普通、マスタクロックの周波数がものすごく大きくなって、計算も大変なので、拒否られる方向です。
でも、ジッタはシステムクロックのスキュー分にとどまります。
この表は純正律の各音の周波数(f)と周期(T)の比を通分したものです。
周波数は24、周期は180が分母になります。純正律は波長の比が単純なのが売りで
そのためにキレイな響きを発することができるのですが、それでも最小公約数が180にもなります。
これを元に、マスタクロックを計算して、48MHzでイイはず、だったんですが、
実装してオシロで周波数を測ってはじめて気が付きました。分母の108いらなかったのね。108だし。
正しくは
fCKE=440x2^4x108x4096=3.114GHz
マスタークロック3.114GHzじゃん。というわけでした。
とりあえず、マスタークロックを144MHzにすればC7が200Hz前後になるため、今日は、この音を聴いて終わりということに。
残念!
日曜のsin tableですが、
あれ、精度がたりませんね。区間代表値を無視して、足切りしてたッス。
tableを
y(n)=int(SWEEP * sin(n/pi/2))
でなく
y(n) = int(SWEEP * sin(n/pi/2)+.5)
で作るべきでした。
縦に0.5潰れてる格好。
あの回路そのままだと90°付近で(-)に折り返しちゃうんで、
そこは、直前の加算の結果のMSB(carry)で判定して、クリップしました。
というわけで、明日からはいよいよ音源作成。
■■純正律音源を作りたい
なんか「伝説のハンドメイドアナログシンセサイザー: 1970年代の自作機が蘇る」を読んでたら、純正律のハーモニーを聞きたくなって、オールデジタルの簡単なシンセサイザーを作ろうと思い、分周やらエンベロープやら考えてる内、やっぱり純正律なら正弦波だろうと思い、まずsin tableを実装することに。
■16bit in/16bit out
Altera FPGAボードBeMicroMAX10 /DE0Nanoには M9kという ROMが搭載されてますが、これ 1個で16bit in/16bit outのsinテーブルを作ろうとして2日間格闘しましたが、結局あきらめました。
なんとかROMには入れたんですが、どうやっても5bit×7bitの乗算器を削れないので、アキラメ。
■M9K ROM
M9k ROMは 9kbitのROMなので、ベタで使うと、10bit in/9bit outか、 9bit in/18bit outになります。
■12bit in / 12bit out
ベタ書きじゃさすがに芸がないので、design wave magazineのFM受信機コンテストの回路のアイデアを、一部いただいて、12bit in/12bit outにしました。
入出力関係
このアイディアのキモは、
1.1周期は90°づつ、符号反転、鏡面反転でえられるので、
アドレス方向は2bit減らせる、データbit方向も1bit減らせる。
2.下図の様に、sinを0~90°で見ると、比例分を削除して、直線分を引けば、
波高さの1/4で済むため、データbit方向をさらに2bit減らせるというもの。
実装ブロック図は、こんな感じ。
こちらがsim結果
考察は20時間以上使った上に失敗だったけど、実装はテーブルデータコミでも3時間くらいかな?
やっぱりverilogは早くてキモチイ。
フラット階層でさえこれだもんなぁ。VHDLは階層間が入るとさらにたくさん書かなきゃならないんだよな。
コーディング時間30%、debug時間50%くらいは削減できると思うんだけど...誰でも。
ただverilog の時でも port size checkのstrict optionはあってもいいと思う。(そのアドバンテージもsim時のMSB詰めで帳消しだけどな>VHDL)
ハッキリ行って回路の余裕があるんだから8和音でも16bitでベタ書きROM余裕で入っちゃうのわかってるのに、どうしてぼくはこうも遠回りしたがるんだろうか....
困った性分である。
というわけで、音源自体は影も形も。
そもそも12bitで足りるかも考えずに、実装してしまったわけで。
こうやって休みがどんどん消費されてしまう。困る。