これを使えば、「環境設定」→「マウス」よりも速くに設定できる http://benh57.com/mousezoom.html
手動で設定が必要。 http://bloggertouch.appspot.com/sherlock/post/5351516949600819203
Winキー+スペース、で切り替え。
先日のNd磁石を導電性エポキシで接着してみる。導電性エポキシは、当然ながら、塗るときにはけっこう柔らかいので、隣とショートしないように注意しないといけない。可能ならば、カベをたてておくのが無難。
用紙厚さ=20、刃出し量0.3mmで、実測厚さ0.2mmのケント紙を切ってみた。完全にあながあくわけではないので、カット後にカッターでの穴抜きはやはり必要。しかも基材のケント紙が柔らかいので、残りが細いところは切れてしまう。テープでまとめてすいつけて抜こうとしても、ケント紙の表面がやぶれてしまう。
PSoCのTRFによれば、Sleepからの復帰は割り込みで可能、となっている。I2CHWは、明示的には書かないが、処理が割り込みルーチンで行われているようなので、I2C Slaveデバイスをふだんはsleepにしておいて、マスタからの転送要求があったときに起こす、という使い方はできるんだろうか。ちょっと試してみよう。→(10/12/27追記)ダメっぽい。I2C-WriteをしてもSleepから復帰しない。GPIO割り込みをEnableにしておけば間Sleepからは起きるのかもしれないが、Sleepからの復帰がまにあわないっぽい。
やってみたが、磁石の磁力がかなり弱くなっていた。リフローの途中で、キュリー温度を超えてしまったんだろうか。リフローはあきらめて、半田ごてで手付けor導電性エポキシを使うほうがいいのかもしれない。
クリアファイルやOHPシートでつくったハンダマスクは、一度クリームハンダを塗ると、穴のところにクリームハンダが埋まって、再利用するときは、それをとらないといけない。古い歯ブラシでこすってみたが、うまくとれない。1個1個、とがったものでつつくのがよさそうだが、つつくところがズレると、切れてしまう。再利用はあきらめたほうがいいんだろうか。いっそのこと、トレーシングペーパーのようなものでマスクを作ったほうがいいのだろうか。
だいたい0.15mmくらい。クリアファイルより薄いので、マスクに向いている(盛られるハンダが薄くなる)ような気がするので、テストしてみる。→どうもうまく切れない。刃出し量を0.3mmにしても、表面にキズはつくが、切れてない。やわらかすぎるんだろうか。 →刃出し量を0.3mmのまま、用紙設定を「厚めのシート」にして、カット速度を1(もっとも丁寧)から4ぐらい、用紙厚さを27ぐらいに変更してみたら、なんとかカットできた。カット速度は遅ければきれいに切れる、というものでもないのだろうか。あと「用紙厚さ」のパラメータの意味がよくわからない(マニュアルにも記載がない)。切れる深さは刃出し量で決まるような気がするんだけど、刃を下ろすときの圧力が変わるんだろうか。パターンが細かいので、顕微鏡をのぞきながらカッター等で抜くとやりやすい。
先日(10/12/07)の手順に従って半田マスクのDXFファイルをつくり、CraftROBOで、純正カッティングシートでカットしてみた。
↑だいたい切れているが、シート自体がかなりやわらかいので、細いところが切れてしまう。
↑適当なクリアファイル(厚さは実測で0.3mm)を、カッティング台紙に張り付けてカットしてみたところ、けっこうきれいにカットできる。ただし、やはり細いところは切れてしまう。しかも、この写真の左のほうのパターン(QFNパッケージの加速度センサ)は、ランドが太すぎるようで、はんだが隣にもれそう&マスクの残り部分が細すぎて切れたりゆがんだりしてしまう。そこで、元の基板データで、当該箇所のランドを少し細くして、さらに先日のpcbe2outline.cで生成されるランド外形を1段階細くするようにしたところ、このような切れやゆがみのないマスクを作ることができた。
↑そのマスクでクリーム半田を盛ったところ。マスクの厚さが0.3mmあるので、クリアファイルの切れっぱしのようなものをハケのようにして、マスク表面を均一にならす感じにすると、マスクの厚さ分のクリーム半田がランドのことろにのる。
↑マスクをとりはずしたところ。だいたいきれいにクリーム半田がランドにのっている。
↑部品をピンセットで載せ、リフローした結果。なかなかよい感じ。とりあえずの動作チェックはOKそうだったので、ちゃんと半田付けできている模様。部品の位置合わせは、ある程度そろっていれば、リフロー時に溶けた半田の表面張力でself-alignされる。またリフローは、予熱の160℃ぐらいのところでクリーム半田が溶けるので、目視で溶けたころを見計らって、すこしたったところで加熱を止めれば、特に問題はなさそう。
ネオジム磁石のキュリー温度(=磁力が永久的に消失する温度)は310℃ぐらいらしい。つまりリフローはんだ付けOK、ということだ。
常時10mAぐらい(負荷=8Ωスピーカ)
千住金属のクリームハンダが届いたので、早速、トースターを改造したリフロー炉でリフローしてみた。温度検出は、秋月のK型熱電対+AD595を14ビットADCで取得。
↑まだCraftROBO用のカッティングシートが届いていないので、爪楊枝でクリームハンダを塗って(けっこういいかげん)、部品を固定。
↑リフロー中。
↑クリームハンダのプロファイルどおり、165℃80秒の予熱後、235℃40秒を行ってみたら、基板が焦げた。 P板.comの製造基準書だと、基板の材料FR4は、288℃20秒は耐えられるらしいんだが、この焦げ方は、実際の温度が高すぎたか、レジストだろうか。
↑予熱の途中(30秒ぐらい)で、止めてみた。少し早かったような気もするが、だいたいついている感じ。クリームハンダがのっていなかったところはついていない。0.65mmピッチのMCUも、それなりについている。(少しクリームハンダが多かったところはブリッジしている)
で、どうも測定温度と実際の温度がズレているようなので、YOKOGAWA 7563+K型熱電対と校正。トースター内の金網の同じ箇所を、2つの熱電対に接触させて、温度をあげながら、測定。
温度[℃](7563) | ADCの値(14bit) | ←の値÷33 |
95 | 3123 | 95 |
100 | 3186 | 96.5 |
120 | 3839 | 116 |
140 | 4542 | 137 |
160 | 5286 | 160 |
180 | 6009 | 182 |
200 | 6690 | 203 |
だいたいあっている。ただしこのときは、熱電対アンプをトースターから十分離していたが、上記のリフロー時はトースターのすぐ近くだったので、熱電対アンプの温度特性が効いたのかもしれない。熱電対アンプ(AD595)は0〜50℃、なので、ちょっと危険だったかも。→熱電対アンプは十分トースターから離そう。
とあるCCDの評価ボードをつついていたが、水平(H)方向のカウンタがグレイコードでカウントしている、という記述がデータシートにある。 CCDなので、与えるのは転送クロックだけなので、カウンタがどういうコードでカウントしているかは関係ないはずなのだが、同作ロックが結構高いから、グレイコードを使っているんだろうか。
しばらく前に、昔作ったソース(回路)を、少し修正して、それを使う回路を作っていた。で、それを動かす時間がとれずに、最近になって動かしてみて、挙動がおかしい、ということに気づくまでに半日使ってしまった。原因は、違う回路なのに同じ名前をつけていたこと、といえる。
教訓:違うものには違う名前をつけましょう
元クロックを分周したクロックを使って動く回路にリセットをかけるとき、同期リセットだと、分周回路のリセット時には分周クロック=0なので、対象回路のリセットがかからない。そこで、こういうときこそ、非同期リセットをつかえば、その対象回路も分周回路もまとめてリセットをかけられる。
HDLソースのシミュレーション用のテストベンチの波形(*.tbw)を新規でつくったあと、トップモジュールの入出力を変更(追加や削除)すると、波形からつくられるテストベンチのHDLソース(*.tfw)がすぐには更新されないようで、指定した信号がないor記述がない、というエラーが出る。波形ファイル(*.tbw)をいったん閉じて開き直すと、信号の追加や削除にあわせて、*.tfwをつくってくれるので、そのままシミュレーションできる。
LED_Off();と書くところを、LED_Off;と書いてしまっていたが、コンパイルが通っていたものの、所望の動作はしない。関数名だけを書いた場合はどうなるんだっけ?ポインタ? →もう少し詳しく調べてみた。Cのソースと、アセンブル結果(*.lstから抜き出し)を並べてみる。
LED_Off; call _LED_Off LED_Off(); call _LED_Off
↑これは、どちらも正しい処理になっている。
else if (c == '0') LED_Off(); cmp a, 48 jnz l22 call _LED_Off jmp l18 ; end of if() l22:
↑if文で、LED_Off()の場合。これも正しい処理になっている。
else if (c == '0') LED_Off; cmp a, 48 jz l18 ; end of if() l22:
↑if文で、LED_Offの場合。LED_Off;の部分が無視された形になっている。
結論:場合によってはLED_Off;でも正しい処理になることもあるが、正しい処理にならない場合もある。ErrorもWarningも出ないのでコンパイルは通ってしまうので、よく注意しないといけない。
これは便利。DoubleBoth http://homepage.mac.com/kyasu/soft/macx.html
http://dobon.net/vb/dotnet/string/inttostring.html たとえば
PSoC CSDで、複数の電極(Slider)から、タッチ箇所の中心を求めるwGetCentroidPos(i)の具体的な使い方が、いろいろ文献を探してみたが、ちゃんと載っているものが少なかったので、備忘録。
以下のような手順でできるようにフローを整えてみた。
これをCraftROBOのROBO MasterでDXF読み込み、で読み込めばOK
ずいぶん詳しく解説を書かれている方がいた http://blog.indoor-airplane.shop-pro.jp/?cid=11022
そんなものいらないよ、というわけで回避する方法 http://harumasa.way-nifty.com/blog/2010/03/adobe-reader-9-.html
Masterから読みだされるSlaveデバイスをPSoCのI2CHWでつくるときの手順が、まだいまだによくわからない。lib/にあるアセンブラソースも読んでみたが、いまいちよくわからない。 http://shokai.org/blog/archives/5230 ここによれば、バッファは別途updateしておいて、メインルーチンでI2CstatusをチェックしてMasterからのReadが起こったら(ISRが)勝手にバッファの内容を返す、という形態がよさそうなのだが、そうしているつもりでも、どうもうまくいかない。具体的には、Readするたびに、所望の値と、全部0xff、が交互に読みだされる。I2Cの制御に、USBeeAXのI2C Controllerを使っているのだが、こいつのI2C通信が実はあやしい、とかなんだろうか。
http://support.apple.com/kb/HT4011?viewlocale=ja_JP&locale=ja_JP
パターンに薄く半田を盛り、QFNパッケージのICをピンセットで上からおさえながら位置合わせをして、ホットエア。ホットエア中にズレないように注意。パターンに盛る半田が多すぎても少なすぎてもまずい。
たとえばこんなのを半田付けすることがあるわけだけど、どうもうまく半田付けできない。半田のノリが悪く、半田が部品側の端子を登っていきにくく、半田が多すぎると隣とブリッジしてしまう。フラックスをぬっても、あまり変わらない。なんかいい方法はないものか。
アナログのテスタだと、テスタが視野の端にあっても、針が動くことは、けっこうよくわかるので、目を測定対象から動かさなくても、導通チェックをしやすい。抵抗の値のチェックでも、「針の動き出す勢い」で、ある程度の抵抗の大小がわかる。ディジタルのテスタだと、抵抗の値を読むのはA/D変換で少し間があくのがもどかしく、またいちいち画面の数値を読むために、目を動かさないといけない。
if (a & (b | c) == (b | c)){
という論理演算を使ったif文を書いたところ、意図した動作をしなかった。 意図した動作は、
if ((a & (b | c)) == (b | c)){
ということで、つまり「bとcのOR」とaのANDをとり、それが「bとcのOR」と等しいか、の判断をする、というもの。 原因は単純で、演算子の優先度。 http://www.bohyoh.com/CandCPP/C/operator.html これによれば、比較(==)は、論理和(&)や論理積(|)より優先度が高い、ということ。
教訓:条件文のカッコは念のためちゃんとつけよう
いったん基板の穴(スルーホール)取り付けた部品をとりはずすと、スルーホールで上下のパターンをつないている導体(これがスルーホール)がはずれてしまうことがある。そうすると、その穴に別の部品を半田付けしても、表と裏のパターンがつながっていないことになり、表面にパターン、裏面に半田付けのランド、という場合、つながらないことになってしまう。目視ではチェックできないので、スルーホールにとりつけた部品をとりはずしたあとは、導通チェックをしたほうがよい。
プッシュスイッチには、押していないときOFF(Normaly Open=NO)と押していないときON(Normarly Close=NC)がある。ふつうのプッシュスイッチはNOだが、ときどきNCのやつがあるので注意。(実際間違えて買ってしまった・・・)
たまによくわからなくなるが、そういうときは、PSoC TRM (Technical Reference Manual)のB.6節の入出力ドライバの等価回路を確認する。Pull-Upは、Hレベルの駆動が抵抗を通す、で、Lレベルの駆動は、実はStrong。つまり入力ピンとしてプルアップだけこれを使う、というのとは、厳密には違う。
% perl -pe 's/\n/\r\n/' unixfile > winfile
% perl -pe 's/\n/\r/' unixfile > macfileなど
新しいMacをいろいろ設定するための情報の備忘録
加速度センサMMA7455を使ってみるが、得られる加速度の値が、かなりバラつく。パスコンをつけるのをサボっていたのが原因であった。パスコンをなめてはいけない。
FPGAを使う学生実験で、ある条件で、SWを押してからしばらくしてLEDがつく、という現象。しらべてみたら結構おくが深い話だった。
Xilinx ISEで、出るはずの信号が、なぜか出てこず、いったんその信号をassignしている部分以外をコメントアウトして論理合成・配置配線後、また戻して、再度論理合成・配置配線をしたら、なぜかうまく動いた。謎。
HDLでPWMを記述する方法として、(1)カウンタの値を設定デューティー比とコンパレータで大小比較する方法と、(2)カウンタ値を状態変数とするステートマシンとして構成し、設定デューティー比で出力を0、カウンタ値が0に戻るときに出力を1にする、という2種類の構成が考えられるが、少なくともXilinxのCPLDに実装するときには、(2)のほうが、少しだけ使用リソースが少なくてすむようだ。大小比較のコンパレータがけっこうでかい、ということか。
PSoCのTX8SWユーザモジュールは、UART送信をソフトウエアでやってくれる=ハードウエアリソースを使わないものだが、送信ピンは、ユーザモジュールの初期化(TX8SW_Start())時に、強制的に駆動モードがStrongに設定される。したがってOpenDrainなどで駆動したい場合は、初期化後に、手動でPRTxDMxレジスタを設定する必要がある。
PSoCのユーザモジュールのデータシートのサンプルコードをコピってくると、インデントが半角スペースになっている。PSoC Designerのエディタのインデントはタブが入るので、半角スペース4個→タブへの変換をしてあげないと、ソースコードの見栄えが悪くなる。
PSoCのE2PROMモジュールは、けっこうRAMを食う。ブロックサイズ(=64バイト)単位でない書き込みの場合は、100バイト以上のRAMを食う。これとは別に配列変数をとっていたりすると、あっというまにRAM容量を使い切るわけだが、↓のようにエラーがでないから大丈夫、と思っていると、E2ROM_Writeが返ってこない、という形で、書き込みに失敗することがあるので、RAM容量に注意。基本的にPSoCは内蔵RAMが少ない。
PSoCのコンパイラ(HI-TECH)で、コンパイル結果の最後に載っているRAM usedの値が、搭載されているRAMの容量(例えばCY8C24***だと256バイト)よりも大きくなっても、とりあえず気にしなくてよさそう。(auto型変数で、使われる領域サイズの和が出ているだけのようで、実際にそのサイズが使われるわけではない)配列が大きすぎるなどで本当にRAM容量が足りないときは、以下のようなエラー(サイズオーバー)が出る。
: 0: (498) psect "fnauto" exceeds address limit: 0143h > 0100h (error)
NTSCの水平同期(HSync)をPLLでてい倍したクロックでビデオ信号ADCなどをする場合、ちゃんとPLLをロックさせないと、「チラツキ」がかなり大きい。しっかりとロックさせるべき。
LinearTechnologyのシミュレータであるLTspiceを使ってみた。 http://www.linear.com/designtools/software/ltspice.jsp LinearTechnologyの部品なら、だいたいモデルが入っている or DLできるので、回路設計・部品パラメータの決定には、非常に便利。ただし使い方に少しコツがいる、というか、少々クセがある。主な使い方は、回路図を描く。ショートカットキーはFnキーが多い。例えばFn3で配線描画、Fn8で部品移動、など。英字1文字で部品を置ける。Dでダイオード、Rで抵抗、GでGND、など。部品を置いたら、その部品を右クリックして値や部品名などを指定。その後、シミュレーションを実行する。回路図上で波形を見たいノードをクリック(マウスカーソルがプローブの形になる)して電圧波形、または部品をクリックして電流波形、を描画できる。
PSoCでひさびさにはまる。32kHzクロックの設定をInternal→Externalに変え、PLLをDisable→Enableに変えたのを忘れていて、動かないと困っていた。具体的には、電源ON後、2秒ほど リセット状態が続き、その後、プログラムの実行が始まる。ただしクロックを使うモジュール(UARTなど)が動いていないように見える。外部32kHz水晶をつけていないので、32kHzが発振せず、従ってPLLがロックせずにタイムアウトするまでの時間がこの「2秒ほど」のようだ。当然、クロック信号がないので、クロックを使うモジュールは動かない。
MiniProgが、ときどきPSoC ProgrammerのPortListで、MiniProg1/1、のように表示されるようになってしまって書き込みができないことがあるが、MiniProgをHUBを経由せずにPC本体に一度直接つなぐと、シリアル番号を含めた名前でPortListに表示されるはずで、その後は、再度HUB経由で接続しても大丈夫なことが多いようだ。
低周波治療器の解析。筋肉の刺激用。絶縁DC/DCやフォトカプラによるACラインとの隔離は必須。人体の抵抗(皮膚とパッドとの接触抵抗を含む)は1kΩくらい。つまり10Vで10mAくらい流れる。電極パッド間が腕だけ、のように心臓を通らなければ、これくらいの電流を流してもピリピリぐらいですむ。 http://www2.hamajima.co.jp/~tenjin/labo/lowfreq.htm
LED TileのDIP部品だけを使った、マトリクスLEDぴったりバージョンを作ってみた。1箇所パターンミスがあったが、軽微なミスだったのでリューターでパターン修正して動作。
今日はPSoCで久しぶりにドツボにはまった。終わってみれば、非常にあっけないほど簡単な理由。以下、経過。
PSoCのI2Cスレーブデバイスの使い方。
I2CHW_InitWrite(wbuf, WBUF_LEN); // Writeされたデータが入るバッファの定義 I2CHW_InitRamRead(rbuf, RBUF_LEN); // Readされたときに返すデータが入るバッファの定義
I2CHW_ClrWrStatus(); // フラグのクリア I2CHW_InitWrite(wbuf, WBUF_LEN); // バッファのポインタの初期化(次のWriteの準備) // ここで、wbuf[]に、マスタからWriteされたデータが入っている
I2CHW_ClrRdStatus(); // フラグのクリア I2CHW_InitRamRead(rbuf, 2); // バッファのポインタの初期化(次のReadの準備)
久しぶりにFT2232をつつく。以前、バッファ内のデータ数を調べようとするとハングるということがあったが、それとは別に、たまにPC側のWinアプリがハングすることがあって、ハング箇所をデバッガで調べてみると、Write関数のところのようで、なぜか1バイトのWriteをしようとすると、ハングる時がある模様。SetTimeOuts関数でRead/Writeのタイムアウトを設定して、一定時間たってもWriteから帰ってこない時には無視するようにすると、大丈夫そう(もともとこのWriteが空読み用のダミーWriteのため、Writeされるデータ自身は意味がないため)。
MicrochipのPICkit2でシリアルEEPROMに書き込む方法 http://www.ne.jp/asahi/air/variable/picmel/integration/write/pickit2/index.html
http://pinouts.ru/PortableDevices/ipod_pinout.shtml
先日のデジカメ(CEREVO)の充電コネクタの件、実は普通のmini-Bコネクタでも充電できるようだ。(先日充電できなかったのは、使ったケーブルが断線していたっぽい)つまり、普通のmini-Bケーブルでも、電極がついているのが逆の専用コネクタのケーブルでも、どちらでも充電できるということらしい。
C7600で手差し両面印刷するときの用紙の向き。表面が終わったら、その紙を、手差しトレイに、表面が印刷された面を下向き・用紙(印刷内容)の上側を手差しトレイに入る側において印刷。ただしあらかじめ「手差しトレイ」を指定しておかないとだめ(PCからの印刷時の用紙選択を「自動」にしておいて、いざ印刷する段階で「手差しトレイ」には変更できない)
VerilogHDL等でCPLD/FPGAの回路を作っていると、リセットでregを初期化する必要があり、シミュレーションのときには、もちろん初期化をする(しないと不定値Xのままなので)んだけど、実機だと、だいたいリセットをかけなくても初期値が0なので、リセットスイッチorリセットICをサボってしまうことがよくあるのだけど(ほんとうはよくない)、リセット時の値が1のregは、この方法は使えない。そこで初期値を0のregを仮に作ってそのregの否定を使うようにするか、素直にリセットスイッチを使うようにするか、どちらか。
/.ssh/id_rsa.pub(公開鍵)を、authorized_keyにリネームor既にある場合は追加し、chmod 600でパーミッションを変更
SPIのEEPROM(25AA1024)のページライトは256バイト単位で、ページをまたがると、ページ内(アドレスの下位8ビット)で上書きになる。つまり例えば0x002番地から256(0x100)バイトをページライトすると、0x002〜0x101ではなく、実際には0x002〜0x0ffの次は0x000〜0x001に書き込まれる。
そろそろ、書いている内容ごとにタグ(ハッシュタグ)をつけた方がいいような気がしてきた。Twitterみたいに最後に#でつけるようにするか?そういうPukiWikiのプラグインとかないのかな。
LaTeX2eで、figure*環境で2段抜きの図を載せるとき、標準だと、ページの上([t])か別ページ([p])しか使えないらしい。nidanfloat.styを、\usepackage{nidanfloat}として使うと、ページの下([b])にも配置できるようになる。 http://www.nsknet.or.jp/~tony/TeX/faq/macro.htm
0.5mmピッチの半田付けをしていて、どうも半田のつきが悪いなあ、と思ったら、フラックスではなくてフラックス洗浄液を使っていた、というオチ。そりゃつかんわ。
XilinxのFPGAで、ucf(User Constrain File)ファイルでピン番号などを指定するついでに、LVTTLなどのI/Oの種類を指定できるが、存在するI/OピンでucfファイルにI/Oの種類を指定していないものとLVTTLなどをしていているものが混在していると、I/O standardがIOB sitesに割り当てられない、みたいなエラーがでる。これは、XilinxのFPGAではI/OピンはいくつかのBankに分かれていて、Bankごとに同じI/Oの種類でないといけない、という制約があるのだが、ucfファイルで指定しないと、defaultではLVCMOS25となるため、(明示的に指定している)LVTTLと、(明示的に指定していない=default)LVCMOS25が同一Bankに存在することになるために起こるエラー。したがって、すべてのI/Oピン(のうち、少なくとも同一Bank内のピン)は、明示的にLVTTLなどのI/Oの種類を指定する必要がある。
LEDをPWM駆動するとき、PWMのデューティー比と「見かけの明るさ」は比例しないような気がするが、いわゆるFechnerの法則、で関係付けられるようだ。ただ、似たような話として、γ補正というのがあって、入力xに対して、x^γ (γは定数)を出力すると比例関係に見える、というのがあって、簡単にPSoCでx=0〜15の値に対して、γ補正をかけたものをPWMデューティー比として出力してLEDを駆動してみたところでは、γ=4あたりにすると、だいたい見かけの明るさが線形になるっぽい。というわけで、こういうγ補正の対魚関係を離散化するためのExcel表をつくってみた。(ついでにVerilogでLook-up Table(LUT)を作るとき用のcase文の記述もあわせて自動生成する)
↑に関係するが、LUTをCPLDに入れようとすると、意外と入らない。比較的小規模でも、FPGAだとあっさり入るようだ。FPGAにはブロックメモリがあるのが効いているんだろうか。
PSoCのC(HITECH-C)で、左シフト演算をすると、空いた上位ビットには、元の最上位ビットの値が入るようだ。例えば0x80(8'b10000000)を1ビット左右シフトすると、0xc0(8'b11000000)となる。
XilinxのFPGAのVccauxという電源端子は、LVDSなどの差動入力など、に使われる電源のようだ。auxという名前だが、必須。2.5Vを与えなければならない。
NTSCビデオ信号を取り込んで、UARTで送信する、という回路をFPGAで作ってみたが、UARTのビットクロックに同期したスパイクがNTSC信号に乗ってしまう。電源(VDD)にLCのLPFを挟んだりしてみたが、どうもうまく消えない。そこで、NTSC信号の特性をうまく使って、偶数フィールド(Even)でADC変換で取り込み(その間は送信しない)、奇数フィールド(Odd)でUART送信する(その間はADCで取り込まない)という構成で、かなりきれいになる模様。フレームレートは30fpsで変わらない。
LEDをPWM駆動するとき、どうもデューティー比と(感じる)明るさが比例しないような気がするんだけど、そういう文献はあるんだろうか。試しにLEDの光を照度計にあてて、PWMのデューティー比と得られた照度との関係を調べてみたら、非常にきれいな比例関係になった。ということは、感覚的な明るさとの兼ね合いなんだろうか?
https://developer.apple.com/iphone/library/navigation/index.html こんなところにもある(こんなところにも福井高専) http://profo.jp/wiki/index.php?UITextView
先日のfavicon.icoの話。ファイル名をいろいろ変えたり別のfavicon.icoを持ってきたりしたら、使えるようになった。原因はなんだったんだろう?favicon.icoのタイムスタンプ?
ガラスエポキシ(FR4)の基板を端から1mmぐらい削るのに、グラインダーは砥石が詰まるのでNG。ベルトサンダーという工具(技術支援センターにある)で削るとよいが、削りカスが加熱されると焦げることがある。まずは両端を中心部に向けて少し斜めに削り、その後、徐々に左右に揺らしながら徐々に削っていくとうまく削れる。
HumanDataのFPGAボードを1個壊してしまった・・・XCB-101なのだが、表面実装(SMD)コネクタが逆に挿せてしまう。てっきり逆挿し防止ピンがあるのかと思っていた。
Webサーバ上のPythonをver2.6に上げようかとおもったんだけど、Pythonはけっこうシステムで使われているので、あまり勝手にバージョンをあげないほうがいいっぽい。そこで、別パスにインストールする方法。http://lowlife.jp/yasusii/wiki/InstallingAnotherVersionOfPython.html
74HC4046でPLLをつくってロックさせた。ループフィルタをしっかり設計しなおした。 インダクタの値の表記は、コンデンサと同じだが、単位が[uH](102、なら10×10^2=1000[uH])。