TI MSP430を使用して測定アプリケーションを開発していますが、使用できるメモリのタイプに関する提案を聞きたいのですが。
これは、一定時間のログに使用して、デバイスがUSB経由で接続されているときにPCにデータをダウンロードするという考え方です。推定では、最大5MBのデータを保持し、各サンプルは約25バイトのデータです。
単純なEEPROMチップで十分でしょうか、それとももっと良いものがありますか?
TI MSP430を使用して測定アプリケーションを開発していますが、使用できるメモリのタイプに関する提案を聞きたいのですが。
これは、一定時間のログに使用して、デバイスがUSB経由で接続されているときにPCにデータをダウンロードするという考え方です。推定では、最大5MBのデータを保持し、各サンプルは約25バイトのデータです。
単純なEEPROMチップで十分でしょうか、それとももっと良いものがありますか?
回答:
5MByteは、保存する大量のデータです。USB経由で読み取ることは、USBデバイスインターフェイスが組み込まれた新しいパーツの1つを使用していることを意味します。そうでない場合は、USBシリアルコンバーター(FTDIなど)を使用し、非同期シリアルに限定されます。データを読み取るためのデータレート。
SDメモリーカードをMSPに接続し、そこにデータを保存してから、カードをPCに移動して、保存されたデータを読み取ることを検討しましたか?私はこのデバイスへのインターフェースを書いていませんが、インターフェースはたくさんあります。
このアプリケーションでは、シリアルフラッシュがEEPROMより優れています。Atmelは素晴らしいラインナップになります。どちらを選択するかは、主に次の2つの要素に依存します。(1)マイクロでログを編集/セクター化する必要性、および(2)MSP430でのRAMの可用性。
フラッシュは、EEPROMとは異なり、1から0にのみ書き込むことができます。データを0から1に変更するには、パーツのセクションを消去する必要があります。これは、通常、データのページまたはブロックでのみ使用できます。このページをRAMにバッファーし、ページを消去し、RAMで編集を行い、何か変更したい場合は書き戻す必要があります。
AT45Dシリーズは、すでに指摘したように、マイクロコントローラーでRAMを使用せずにこのプロセスを容易にするために、チップにRAMバッファーを備えた多数の部品を提供します。
結局、シリーズ全体はピン互換なので、8-SOIC(150mil)のフットプリントを置くだけで、後で別のオプションが必要になった場合にパーツを交換できます。
AT25Dシリーズは、AT45Dより少し使いやすいように見えるので、お勧めします。ただし、処理速度はやや遅く、データ転送オプションやSRAMバッファの数は多くありません。これには、安価であるという利点があり、データロギングなどのほとんどのアプリケーションで十分高速です。
5MBのデータが必要な場合、通常1Mビット未満のパッケージで提供されるため、EEPROMが機能することはほとんどありません。Atmelのフラッシュチップは、最大64メガビットまたは8 MBをサポートします。
[これはイアンの答えに続くコメントへの応答です]。
SDカードは単なるSPIデバイスなので、チップ/インターフェイスは必要ありません。他のプロトコルには、2線式インターフェース(I2Cなど)と4線式インターフェース(複雑なCRC付き)が含まれますが、最も一般的に使用されるのはSPIです。
ここに TIからMSP430用のSDカードアプリケーションノートがあります。簡単ですが、サンプルコードが含まれています。SDカードのさまざまなセクターの読み取りと書き込みを処理します。SDカードをPCに接続しない場合は、これで十分です。また、Fustt(推奨)またはMSUのEvansによるこれらの実装も確認してください。
セクターを読み書きするための基本的な関数を取得したら、USB経由でシンプルなカスタムファイルシステムを抽象化するか、既存のファイルシステムライブラリを使用できます。 FatFS、EFSL、またはDOSFはすべて後者のオプションです。必要なすべての機能を実装するのが難しいと思われる場合は、一部を除いてすべてがスタブになる可能性があることを覚えておいてください。
ただし、ファイルシステムはUSBインターフェイスを介してある程度抽象化されます。実際のファイルシステムライブラリがあり、カードが読み取り可能なファイルシステムにある場合、これは簡単ですが、作業が必要です。独自の「ファイルシステム」を作成し、USB実装の作業/時間/メモリを節約したい場合は、ログ1が0x0で始まり、ログ2が0x10 0000で始まり、ログ3が0x20 0000であるため、定義を単純で柔軟性のないものにすることができます。 、ログ4を0x30 0000に記録します。その後、このデータをUSB経由で送信できます。
USBインターフェイスは、シリアルインターフェイスから大容量記憶装置まで、好きなだけ複雑にすることができます。