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 件のコメント:

コメントを投稿

UTC7642_AMラジオ Ver.2.0 (2Tr+1IC) スーパーヘテロダイン

 UTC7642を使用したヘテロダイン方式のAMラジオをブレッドボードで試しています。 アンテナとバリコンは、 電子ウサギさんの記事 を参考にスーパー用にしています。 Q2(2SC1815)は他励式の局部発信(OSC)で放送周波数+455kHzの信号を作成し、Q1(2SC1815...