FrontPage

目次


コメント†

コメントはありません。 Comments/tsujino

お名前:


6/13(金)- Eagleでの基板設計関連†

無視できるエラー†

パターン設計を終えた後にDRCでエラーがないか確認すると多数のエラーが発生した。
先生にいくつかのエラーに関して教わったのでメモ。

  • Keep out - 部品?同士が近すぎると発生する。
  • Overlap - 配線や穴が重なったりすると発生する。
  • Stopmask - シルク印刷部分が穴や等に重なっていると発生する。
  • Dimension - 配線等が基板の境界線に近すぎると発生する。
    これらのエラーは原因が自分でわかっていて大丈夫な場合は無視してもよい。

設計時に知ったこと教わったこと†

  • 今回コイン電池を使用するが、設置部分に銅を露出させ、その上に載せる形をとった。
    銅を露出したい部分にTopとtStopを使えばよい。
  • Addで探している部品が見つからない場合、検索しても一致していないと出てこなかったりする。
    検索キーワードの前後に*をつけるとそれを含む結果を表示できる。
  • チップ抵抗を並列接続するのに、回路図も並列で作成する必要はない。
    重ねてはんだづけすればよい。
  • 使いたいリードスイッチがライブラリになかった。
    電源とGNDにそれぞれつないだViaをリードスイッチの長さに合わせて設置してそこにはんだづけ。

6/27(金)†

不要な基板を†

昨日フリスクケースに収めるためにに基板をカットしていたが、プラゴミに基板が捨てられているのを見て思考停止で自分も捨ててしまい、基板は埋め立てゴミだと先生に指摘をいただきました。
以後注意します。

7/4(金)†

基板設計とマイコンの書き込み†

山村君も作業日誌で触れていますが、基板設計時にはマイコンの書き込みに必要なピンをあらかじめヘッダピンにつないでおくべきです。
今回使うマイコンはPSoCのCY8C27443、SSOPパッケージですがPSoCの書き込みに必要なピンはVDD、GND、XRES、SCLK(P1[1])、SDATA(P1[0])の5つです(XRES無しの4ピンでもなんとかなるようです)。これに関してはマイコンブの共有情報のページにもまとめられています。

基板設計で書き込みピンを†

自分はそれをしていなかったことが反省点です。この状況でどのように書き込みをするかという話を先生からいただきました。XRESが何もつながれていないので4ピンですが、VDDとGNDに関しては2ピンヘッダに繋いであったのでそれを使えばよい。P1[0]、P1[1]に関しては7セグに繋いであったのでそこを書き込み段階だけ繋がずチップ抵抗部分から線を繋いで書き込みを行う。

7/11(金)†

電源と動作確認†

設計した基板に実装してみたが、LEDがたまにしか点灯しない現象が。コイン電池の内部抵抗で必要な電力が得られていないのではないかとの指摘で電源装置を使って3Vで動作確認したところしっかり点灯しました。2.8Vくらいに下げると点灯しなくなったので、コイン電池がそれを下回っていたようです。
電源装置での動作確認は事前にしましょう。

電源装置による電流リミッタ†

電源装置のリミッタボタンを押しながら電流を調整するとそれがリミッタとなってそれ以上電流が流れることを阻止してくれます。もしそれ以上に電流が流れる場合は自動で電圧を下げるようです。

11/17(月)- カメラシステム関連†

カメラ映像調整†

  • レンズから本体に向かって、ズーム、しぼり、ピント。
  • ディップスイッチの4で2値切り替え。
  • ズームとピントを合わせてから2値に切り替えるとよい。

重心座標のシリアルデータ†

1フレーム辺り16進数で8byte分のデータが115200bpsのシリアル通信で送られてくる。

0x80, X1, X2, X3, 0xC0, Y1, Y2, Y3

といった感じで、X = X1*128 + X2 + X3/128
Y座標も同様であり、数値部分は最上位bitが0となるので0x80、0xC0をとり得ることはない。ストレージの川上さんのフォルダにこのデータあり。

カメラシステムとのシリアル通信†

  • カメラシステムの4ピンには重心座標データを送信するものとカメラ設定データを受信するものがあるので注意。ケーブルから見て左が前者。
  • PCで受信したシリアルをとる際にAcknowrichを使ってログを保存すると、拡張子が.000といった風にナンバリングになり、txtに変えると文字化けしたが、SerialDebugでログを保存するとtxtファイルになる。
  • 4ピンはGND、VDD、送信、受信と並んでいる。GNDと送信だけ繋いでPSoCで受信できた。(マイコンブのチュートリアル、PCと通信参照)
  • PSoC(CY8C27443)だと115200bpsは割とギリギリ…?
    参考になるかも↓
    http://www.ikko.k.hosei.ac.jp/~matlab/psoc/psoc_uart_clock2.pdf#search='psoc+%E3%82%B7%E3%83%AA%E3%82%A2%E3%83%AB%E9%80%9A%E4%BF%A1'

11/18(火)†

シリアルの文字化けの原因†

  • カメラシステムとPSoCとPCを繋ぎ、カメラから送られてきたシリアルデータをそのままPCに送信し、PSoC1Terminalでデータを確認しても文字化け状態になってしまった。
    原因はTerminalでBinaryにチェックが入っていなかっただけで、正しいデータを受信していることが確認できた。
  • Terminalが動作を停止してしまう。高速でデータが送られつづけるからだろうか?

11/20(木)†

PSoCの駆動電圧によるCPUCLK制限†

  • ほとんどのデバイスで、PSoCのM8Cプロセッサのクロックにおける最大速度は、以下のようになる。
    VDD ≧ 4.75V → 24MHz
    VDD ≧ 3.0V → 12MHz
    VDD ≧ 2.4V → 3MHz
  • 逆にCPUCLKが12MHzを越えることがあるのならば駆動電圧は4.75V以上でなければならない。
  • 3ページ参照↓
    http://www.cypress.com/?docID=50761
    秋田先生の作業日誌(11/10/14)も参照。

シリアル通信がうまくいかなかった要因†

  • Binary表示ができていないことに気づく前に、シリアルデータがCONNECTと表示され続ける状態になってしまい原因を見つけるのに手間取ったが、文字化けを直そうとCPUCLKを変更していて24MHzになっていたのが原因だった(12MHzにしたところ元に戻ったので)。
  • PSoC1duinoはショートピンで駆動電圧を3.3Vか5Vに指定できるが、3.3Vとなっていた。24MHzが前述の制限から外れているのでそのような事態になったとみた。PSoC1duinoのショートピン等に関しては↓
    http://shop.cqpub.co.jp/hanbai/books/I/I000070/PSoC1duino_man.pdf

11/22(土)†

Terminalが停止する件†

その後、PSoCから送られてくるデータを16byte(2フレーム分)だけにしてみるとTerminalが動作を停止することはなかった。Terminalで動作確認する時は送るデータを程々にする。

11/25(火)†

ASC�挟愀�†

  • 動作確認のために0x80を受信したら'X'を送信してくるように記述したが、'X'が見当たらないということがあった。バイナリ表示なので当たり前。0x80の後に毎回0x58が来ていたのでASC�競魁璽鰭修燃稜Г靴討澆燭�'X'は16進数で0x58となっていた。
  • 忘れていたがC言語では'文字'、"文字列"なので使い分けを。
  • 毎回カメラシステムに接続するのも手間なので簡単な動作確認はPCから座標データを打ち込めばいいと思ったが、cGetCharで1文字をとるなら0x80にあたる文字を送信しなくてはならないのでASC�競魁璽鰭修魍稜А△世�そんな文字は存在しなかった。
    ASC�兇蓮⊃�字・アルファベット・制御符号を7ビットで表している、データ通信用の符号体系。

12/9(火)†

mbedで困ったら†

参考になりそうなページ↓
https://developer.mbed.org/users/okini3939/notebook/mbed256/

fpsの話†

  • 1フレームにつきデータは8byte、シリアル通信を115200bpsで行っているので14400byte/s、1800fpsと計算したがそれはシリアル通信速度の話でカメラのフレームレートとは違う。
  • 高速視線検出カメラシステムに使われているLynx社のIPX-VGA210-Lは垂直方向の読み出し解像度によってフレームレートが変化する(過去の外部発表データに記述あり)。
    640*480[pixel] → 210fps
    640*175[pixel] → 500fps
    640*64[pixel] → 1000fps

12/11(木)†

速度の壁か†

PSoCでサッケード中のみLEDを点灯させるのがどうにもうまくいってない。
LEDは点滅し、カメラ全体を白か黒で1値にしてやると消灯する。サッケード測定中でも点滅が見えてしまうため閾値を再調整したがやはりおかしい。
PSoCシリアルデータを送って確認してみたところ本来のフォーマットになっていなかった。一応カメラシステムから直接シリアルデータをもらって確認したが正常。
その後main.cの記述を大幅にコメントアウトしたところPSoCから送られるシリアルデータも正常になり、コメントアウト部分を減らしていったところ徐々にシリアルデータのフォーマットが崩れていくような状態が確認できた。
→PSoCの処理がシリアルデータに追いついていないためシリアルデータの取り逃しが発生しているのか。