2020年7月26日日曜日

おしゃべり時計withUSB開発日誌(1)、USBメモリがリセット後に起動せず。

USBメモリを使った音声の再生がようやく安定してきたので、”おしゃべり時計withUSB(仮)"のプログラムの開発を進める。

まずは音声再生機能だが、今回USBメモリ内にある音声データ(waveデータ)を8bitsのPWMで音声出力するのだが、このUSBメモリの扱いに手こずっている。

USBメモリからデータを吸い出す為に何段階もの層/インターフェースが存在するのだ。
1.ペリフェラル層
2.USBインターフェース
3.SCSIインターフェース
4.ファイルシステム層(Fatfs)

またそれぞれのUSBメモリの特性にバラつきがあるのだ。 USBメモリ側に乗っているコントローラの性能なのか、各コマンドに対するレスポンスにかなり差がある。

今回PIC32MX250をリセットした直後にUSBメモリとのインターフェースの確立及びファイルシステムのマウントが時々出来ない事に気が付いた。USBのATTACHからCONFIG DESCRIPTORの取得しファイルシステムのマウントまでエラー無く完了するのだが、USBメモリのファイルが読み出せないのだ。

デバッグプリントを入れたりあちらこちらいじって、半日かけてUSB ATTACH直後のリセット時間に問題がある事を突き止めて、リセット時間を270msにする事で落ち着いた。
この270msは手持ちのUSBメモリの中で一番の古株の8GBバイトメモリが、起動するのに要した時間である。

またこれには電源電圧もかなり影響を受けており、5v以下では、失敗する確率が高くなる。
20200725(+4.0)

0 件のコメント:

コメントを投稿

KT0913 FMラジオの作成(8) 出来上がったPCB基板にミスあり。

  FusionPCB から基板がとどきました。20240121. 1月11日に発注したので10日で出来上がって届きました。 早速組み立てましたがが、イヤホンジャックのフットプリントが裏返っており、痛恨のミス。。。 しかしながら、他にも問題が無いか一通り組み立ててチェックしました...