シリアルSRAMとEEPROMのデータ転送について

このQ&Aのポイント
  • ルネサステクノロジのSHシリーズでCのプログラムを勉強しています。SH7125にはDMACの機能がないため、シリアルSRAMとEEPROMのデータ転送をするプログラムを考えています。
  • ハードウェアとしてはADCの入力ポートとシリアルRAM、EEPROMのICを付け、LCD表示器とLEDを追加しました。しかし、パラレルデータをシリアルデータに変換する方法や、23LC1024から25LC1024への一括データ転送のプログラムについての情報がわかりません。
  • 効率的ではありませんが、16ビットのデータを23LC1024に逐次保存し、計測が終了した後に25LC1024に一括的にデータを転送する機能のプログラムを作成する予定です。追加すべき機能についてもアドバイスが欲しいです。
回答を見る
  • ベストアンサー

シリアルSRAMとEEPROMのデータ転送について

ルネサステクノロジのSHシリーズでCのプログラムを勉強しています。私が採用したSH7125にはDMACの機能がありませんので、勉強ですので効率的ではありませんが、シリアルSRAMである23LC1024とEPROMの25LC1024を外部接続してのプログラムを考えています。 16ビットのデータを23LC1024に逐次保存していき、計測が終了してから25LC1024に一括してデータ転送をする機能のプログラムです。 ハードウェアとしてはADCの入力ポートとシリアルRAM、EEPROMのICを付け、データの内容を確認するLCD表示器とポートEにLEDを取り付けましたが、このほかに追加する機能が必要でしょうか。 ここでいくつか疑問点があります。パラレルデータをシリアルデータに変換するにはソフトで行うのかSH7125にその機能があるかの確認はできませんでした。また、23LC1024から25LC1024に一括してデータを転送するにはどのようなプログラムをすればよいか見当がつきません。

質問者が選んだベストアンサー

  • ベストアンサー
  • pyonmae
  • ベストアンサー率64% (40/62)
回答No.2

こんにちは。 >このほかに追加する機能が必要でしょうか。 #1さんの言われるものの他に、押しボタンスイッチをいくつか付けると便利かもしれません。 シリパラ変換については、23LC1024、25LC1024ともにSPIでの通信が可能ですので、内蔵SCIをクロック同期モードで動かす事で、ハードで読み書きできる可能性があります。 データフォーマットが適合するかどうか、データシートをよく見比べてみて下さいね。(多分大丈夫と思いますが) この場合、2つのデバイスを別々のチャネルに接続すれば簡単です。 チャネルをケチって一つで済ます場合は、適当な出力ポートをそれぞれのCSに接続し、SCLKとSIは共通で接続。 SOが問題で、CSでゲーティングしてあげる必要があるかと思います。 でも、ソフトで1bitずつやりとりするものも、どのみち動作確認の段階で、作るハメになると思いますが・・・。 なお、7125にはSPIしか無いようですが、SPIやIICといった種々のシリアルインターフェースは、多くのマイコンで内蔵されていますので、色々とデータシートを読んでみて下さいね。

その他の回答 (1)

回答No.1

>このほかに追加する機能が必要でしょうか。 具体的な回路が解らないと?? 電源とプログラム書込用のシリアルポートは最低限必要でしょう。 >SH7125にその機能があるかの確認はできませんでした。 そのような機能はSHばかりではなくほとんどのマイコンにはありません。 SCIを使えばシリアル変換できるなんて回答が付くかも知れませんがこれはシリアル通信用ですから使えません。 プログラムで直接CSやクロック等の制御線を制御して1bitづつデータの読み書きをすることになります。 極端に言えば1bit読み込んで1bit書き込むことも出来ますが実用としては一旦マイコン内のRAMに全部読み込んでから書込、ベリファイするものでしょう。

CatandCat
質問者

補足

秋月電子のSH7125Fベースボードキットを使用し、別の基板にLCD表示器とLEDランプ、SRAM、EEPROMを配線しました。シリアルポートはベースボードキットについています。 SH7145の解説書(C言語によるSH-2マイコンプログラミング入門、横山直隆著)はDMACの説明をしていますが外部ROM,RAMはシリアルではなくてパラレルなのですね?

関連するQ&A

  • MplabのRead_EEPROM

    Mplab8.92+PICkit3でPICのプログラムをしています。 ポート入力をPIC内蔵のEEPROMに書込むようなプログラムを作り ターゲットボード上で動作させた後、PICをボードから抜き取り Mplab上でReadしViewメニューのEEPROMで見ると ポートの入力とは異なる値になっています。 (ボードの入力はプルアップした上で固定してあります。) しかし、A社のプログラマーでReadすると ポート入力がEEPROMに正しく書込まれています。 (A社のプログラマーはサポートのデバイスが少ないので 現実的には使えないのですが。) 色々試してみると プログラムとして、「PIC内蔵EEPROMデータメモリに初期値として書込んだデータ」は 正しく、書込み、読取できましたが ボード上で動作しないと確定しないようなデータ (ポートの入力、カウント回数・・・等) は、正しく書込まれている (プログラムの動作から確認すると) けれどもMplab上のReadでは正しく表示されませんでした。 MplabのReadとはこういうものなのでしょうか? (私の推測ではMplabのRead-View-EEPROMはCPUを実機で 動作させることなくパソコン上でシュミレーションするための もののように思えてきたのですが・・・) それとも、何か設定すれば可能になるならば 教えてください。 私の場合Mplabを使う場合 シュミレーションとかは使いません。 コンパイルしてCPUに書込み(Program)するだけです。

  • EEPROMの種類を判定する方法について

    H8/3052Fボード(秋月より購入)でを使用してi2cのシリアルEEPROMとインターフェースする装置を作成してデータ書き込みは出来るようになったのですが、 EEPROMの種類(512KBなのか512KBなのか)をプログラムで判定して256KBのEEPROMがセットされたらエラーを返すようにしたいのですがいい方法ありませんか?

  • PIC16F1827のEEPROMへの書込み

    PCM V5.0(PIC用CCS社コンパイラ)を Mplab8.92に組込み、PICkit3を使ってプログラムしています。 PIC16F1827のEEPROMへの書込みがうまくいきません。 RAは入力ポートで固定してあります。 RBは出力ポートでLEDが接続してあります。 テストプログラムは一回のみの動作です。 実機で動作させると RAは固定してあるので当然(4)でLEDが点灯しますが、 実機からCPUを抜き取りMplab上でReadすると EEPROMのアドレス0,1,2は異なるデータであり 動作させるたびに違うデータが書込まれています。 しかし (1) a0=35h (2) a1=a6h (3) a2=93h と定数にすると EEPROMのアドレス0,1,2は正しいデータが 書込まれています。 Q1. a0,a1,a2をポート入力とする場合は CPU自体に何か設定する必要があるのでしょうか? それともプログラムに工夫が必要なのでしょうか? いままで使っていたPIC16F88では このようなことはなかったと思うのですが・・・。 ----- テストプログラム ----- a0 = RA; //(1) write_eeprom (0,a0); a1 = RA; //(2) write_eeprom (1,a1); a2 = RA; //(3) write_eeprom (2,a2); if (a0 == a1 && a1==a2) //(4) RB =255; else RB =0;

  • シリアルポートにデータを送るプログラム

    VISUALC初心者です。実際Cも良く分かってないと思います。パソコンにも詳しくないです。 シリアルポートにデータを送るプログラムをVISUALCで作りたいんですが、何をやって良いかさっぱり分かりません。 仕様はダイアログベースで、ボタンを押すと、エディットボックスに書いたファイルパスのファイルのデータをRS232Cに送るということをやりたいのですが、全くもって分かりません。 ファイルの指定の仕方。 および一ビットずつシリアルポートに転送の仕方。 のすべてを教えてください。 以下を参考にしていますが、やっぱり良く分からないというのが現状です。 http://www2.muroran-it.ac.jp/circle/yume/serialport/index.html

  • マイコンでダウンロードされたプログラムを受信し、SRAMに配置するプログラムの作成方法

    現在、sフォマットで作成したファイルをパソコンのシリアルポートからダウンロードするプログラムとそのダウンロードされたファイルをマイコンのSCIポートで受け取り、SRAM上に配置するプログラムを作成したいですが。その関連知識を足りなくて、作成が難航しています。 上記のダウンロードするプログラムと受信したsフォマットのコードをSRAMに配置するプログラムのサンプルもしくは参考資料がある方がいましたら、是非教えて頂きたいです。よろしくお願いします。

  • LC35256D SRAMの読み書き

    下記のICのロム・ライターを探して居ります。 LC35256D-10 SANYO 32768-word x 8-bit SRAM 28pin DIP型 これを読み書きしなければならないのです。 手持ちのロム・ライターはEETOOL社のChipMaxですが当該ICは 最新のリストにも載って居りませんで同社の上位機種でも同様です。 一方で老舗のミナトエレクトロニクス株式会社のロム・ライターにも 該当せず「なんで?」と疑問に思っています。 このロム・ライターならOKという様な情報を お持ちでしたら是非お教え下さい。 下記の類似したSRAMがWebでみつかるのですがダメモトで 読んでみようかとも思いましたがChipMaxでは該当しません。 μPD43256B  NEC SRM2B256SLMX55 EPSON TC55257CFL-10 TOSHIBA 宜しくお願い申し上げます。 デバイスのデータシートは下記URLからダウンロード可能です。 http://www.datasheetarchive.com/ 失礼致しました。 よく考えるとこれはSRAMなのだから例えばCPUなどが アクセスして読み書きする性質のデバイスで有って 最初からデータを書き込んで置く性質のものでは無い (プログラムならPROM/EEPROM等に書かれるべき) としか思えなく成ってきました、お客さんも詳しく 知らない事から言っている事が的外れなのかなと 考えて居ります、何かアドバイス有ればお教え下さい。

  • 故障時データ一括転送機能は申し込まないとダメ?

    ドコモの故障時データ一括転送機能というのを最近知りました。 私は今、ドコモF905iを修理に出してるんですが、ディスプレイが真っ黒な為、データ移行がショップでできませんでした。 「データは戻ってきませんか?」「ほとんど消えてしまうと思います」と言われました。 故障時データ一括転送機能の言葉を知らず、「故障時データ一括転送機能」をお願いします」というのを言えませんでしたし、案内されませんでした。 店員は「メーカーでデータの吸い出しができるかお願いしておきます」と言われました。 もらったお客様控えの備考欄にはデータ移行(番号・・・・)と書いてましたが、これは故障時データ一括転送機能を申し込んでもらえたと受け止めていいのでしょうか? 故障時データ一括転送機能はどこの店舗でも受け取れるのでしょうか?

  • Windows XP用USBシリアルポートドライバ

    ルネサス社製のSH-2Aマイコンにて、USBファンクション(デバイス)機能のボードを製作し、ソフト作成しました。 ホスト・デバイス側ともコミュニケーションクラスの上位に仮想COMポートを用意しました。 まずは、パソコンとボードをUSB接続し、仮想COMポートで通信テストを行いたいと考えています。 その為には、Windows XP用USBシリアルポートドライバが必要です。 ドライバのインストールソフトがほしいのですが、どなたかお持ちでないでしょうか? また、情報等を教えてくれませんか?

  • 高速シリアル通信での大容量のデータ転送について(mscomm)

    現在高速シリアル通信のプログラムを作成しています。なかなか検索で いろいろと探しているのですがデータ容量が増えるとどうしてもサンプル プログラムで同じ結果になってしまいます。 どういう現象かといいますと10000バイトぐらいのデータを転送するとどう してもデータ上のかけ落ちが発生します。 ボーレート:38400 or 19200bps データビット:8Bit パリティ:なし ストップビット:1Bit フロー制御:XonXoffRTSCTSあり データはバイナリィ転送です。 ==>送信側のプログラムでは以下通りです。   'バイナリデータファイルを読み込み For i& = LBound(bytBuf) To UBound(bytBuf) bytedata(LineCnt) = bytBuf(i&) If (LineCnt < 255) Then '255バイトずつ分割して送信 bytedata(LineCnt) = bytBuf(i&) Else 'タイマー処理(wait制御) MSComm1.Output = bytedata LineCnt = 0 bytedata(LineCnt) = bytBuf(i&) End If LineCnt = LineCnt + 1 Next i& 'WAIT掛けたり分割してデータを転送したり一括でデータを転送したり 行っています。 ==>受信側では以下の通りとなっております。 Select Case MSComm1.CommEvent    Case comEvReceive '受信データの取得 Buffer = MSComm1.Input 'あとはバイトデータを結合させて                    'おります。 データの送信や受信について教えていただきたいのですが特に受信側で 私が思うのでは送信データが早すぎて受信側が追いついていない状態 と思うのですが・・・ なにかいい方法や参考になるホームページ等がありましたら伝授お願いします。

  • ガラホの写真データ一括転送について

    docomo AQUOS ケータイ SH-06Gを使っております Bluetoothでペアリングしているスマホへ写真データを一括(複数枚)転送したいのですが思うようにできません。 転送方法を教えて頂ければと思います。 宜しくお願いします。 ※OKWaveより補足:「シャープのスマートフォン・携帯電話」についての質問です。

専門家に質問してみよう