144745 ランダム
 ホーム | 日記 | プロフィール 【ケータイで見る】 【ログイン】

工作工房

PR

キーワードサーチ

▼キーワード検索

ブログリンク

楽天プロフィール

設定されていません

カレンダー

お気に入りブログ

mbed で音声合成を自… CPU4Eduさん

久しぶりのハンダ付け さくら もものこさん

電子こうさくの家 PIC9801さん

コメント新着

e-device@ Re[1]:PSOC4で計測用カウンター(08/01) >先日のブロック図を見て、やっているこ…
PIC9801@ Re:PSOC4で計測用カウンター(08/01) PSOC使いこなしていますね! 先日のブロッ…
e-device@ Re[1]:PSOC3 Development Kit(04/12) PIC9801さん >トラ技の記事を見ると今ま…
PIC9801@ Re:PSOC3 Development Kit(04/12) トラ技の記事を見ると今までのPSoCに比べ…

フリーページ

モバイル

ケータイ
スマートフォン
>>ケータイにこのブログのURLを送信!

ニューストピックス

ランキング市場

 

2010年01月10日
楽天プロフィール XML
カテゴリ:カテゴリ未分類
今回、PSOCのEEPROMに書き込むとプログラムが停止状態になり、悩んでしまいました
EEPROMも最後の16個目が書かれていなく、EEPROM書き込み後のプログラムの
続行ができなく、停止状態になる現象になり、大いに悩みました。

原因は割り込みです、今回使用している、割り込みの種類は、タイマー、シリアル通信の
受信、入力(GPIO)です。割り込みを使用しているEEPROMの書き込みは注意が
必要です。

”E2PROM_1_bE2Write”の関数を使ってEEPROMにデータを書き込む場合、書き込む前
に全ての割り込みを禁止し、書き込み後、割り込み禁止を、解除すると、解決できます。

簡単なプログラムの内容です
M8C_DisableGInt; //CPU ALL Interrupt Disable
E2PROM_1_bE2Write(0,data,16,25); //data の内容でEEPROMのゼロから16個を書く
M8C_EnableGInt; //CPU ALL Interrupt Enable

EEPROM TEST.JPG






楽天SocialNewsに投稿!

最終更新日  2010年01月11日 02時13分47秒
コメント(6) | コメントを書く




■コメント


EEPROMについて   kaoaru さん
EEPROMというのはなかなかクセモノでして、書き込みコマンドを送ってから、しばらく何もしてはいけません。書き込みウェイトがあり、消費電力もMAXになります。マイコン内蔵タイプでしたら、この間は割込みすらかからなくなるのが一般的です。日立のSH-2やH300-2000Sシリーズなどでもそうでしたから、間違いないと思いますよ!数年前、仕事でハマりました。EEPROMはキャリブレーションデータを格納する用途で多用されていますから、慣れておくといいかも? (2010年03月24日 22時00分41秒)

Re:EEPROMについて(01/10)   e-device さん
kaoaruさん
>EEPROMというのはなかなかクセモノでして、書き込みコマンドを送ってから、しばらく何もしてはいけません。書き込みウェイトがあり、消費電力もMAXになります。マイコン内蔵タイプでしたら、この間は割込みすらかからなくなるのが一般的です。日立のSH-2やH300-2000Sシリーズなどでもそうでしたから、間違いないと思いますよ!数年前、仕事でハマりました。EEPROMはキャリブレーションデータを格納する用途で多用されていますから、慣れておくといいかも?
-----

正確にはEEPROMの書き込み完了時間がありますので次回の書き込みの条件を満たせば問題ないです。
PSOCのEEPROM書き込みは用意された関数を使用していますが、その関数が機能不足と思われます。マルチタスクで装置を動かしたりする時は問題です。

PSOCの関数は余計なお世話と思う関数が多々あり、自分で作ったほうが確実で早いといらいらします。特に割り込みが自由にならず、未熟者と思いたくなります。でもワンチップICとしてはすばらしく、内部のカウンターの速度は48MHzが使用可能です。
------
(2010年03月25日 02時57分54秒)

Re[1]:EEPROMについて(01/10)   kaoaru さん
e-deviceさん
>マルチタスクで装置を動かしたりする時は問題です。
-----
マルチタスクのことまで考えていないんでしょうね。OSなしでもマルチタスクっぽい処理に作ってしまうこともありますから、改善してほしいところですね!

>余計なお世話と思う関数が多々あり、
標準関数ってそんなものかもしれませんね。C++のSTLにも使えないテンプレートあります。BCDクラスなんですが5000がMAXなんで金額計算にはそのまま使えない。しょうがないから自分でBCD処理ルーチンを作りました。(ベクターにアップしてあります)

C言語ベースで本格的に開発するのはやっぱりルネサステクノロジの系統かなぁ?というのが私感です。お遊びでやるなら何も考えずに入手しやすいものでダマしてやりますけど。(笑) (2010年03月25日 11時52分44秒)

Re[2]:EEPROMについて(01/10)   e-device さん
kaoaruさん
>C言語ベースで本格的に開発するのはやっぱりルネ
サステクノロジの系統かなぁ?というのが私感です。

昔、8ビットの時代、Z80のマルチタスクモニターを自作し、各種自動機に搭載して制御しました。
時代とともに8ビットのメモリーアドレス16ビット分64Kバイトでは対応できなくなり16ビットCPU、ルネサステクノロジー(日立・三菱)のH8系を12年位前から使用しており、このCPUのマルチタスクモニーも自作し、C言語で制御しています。
------
(2010年03月25日 13時15分01秒)

Re[3]:EEPROMについて(01/10)   kaoaru さん
e-deviceさん
>ルネサステクノロジー(日立・三菱)のH8系を12年位前から使用しており、このCPUのマルチタスクモニーも自作し、C言語で制御しています。
-----
そうでしたか~!私のほうはH8S2000でエンジンコントロールをやったのが今から7年くらい前ですから私のほうがキャリア短いですね!製品ベースの実績はないですけどM7700のうほうがもうすこし前になりますが12年にまではならないかな?でも、H8S2000ってCでプログラムしている分にはSHと見分けがつかないくらいで驚いた記憶があります。特にOSとかは用意せず、モニタをつくって、あとは「力ワザ」のCプログラムです。モニタは主にキャリブレーションとかのメンテナンス用ですね。よく作ったなぁ!今はもうできないと思うし、そういう仕事もないし!(笑) (2010年03月25日 16時58分34秒)

Re[4]:EEPROMについて(01/10)   e-device さん
kaoaruさん

H8S2000ってCでプログラムしている分にはSHと見分けがつかないくらいで驚いた記憶があります。特にOSとかは用意せず、モニタをつくって、あとは「力ワザ」のCプログラムです。

12年前に使用したH8CPUはH8/3002です。
SRAM,EPROM,SIO(UPD72001C-11),RS-485 Driverなどを組み合わせた基板を設計製造しました。目的はDCモータ512個をRS-485通信で制御します。H8/3002はフラッシュメモリーがありませんのでEPROMです。デバッグはイエローソフトのリモートデバッグをつかいました。

2度目のCPUはH8/3067です。モーションコントローラ(PCD4511),PM Driver,PWM DC motor IC,RS485 Driverなどを組み合わせた基板の設計製造をしました。目的はパルスモータ256個(最大)多軸制御です。シーケンサーではできない(開発期間、価格)量産のメカトロ制御に使用します。基板単体の販売もしています。
-----



(2010年03月26日 16時32分43秒)

Powered By 楽天ブログは国内最大級の無料ブログサービスです。楽天・Infoseekと連動した豊富なコンテンツや簡単アフィリエイト機能、フォトアルバムも使えます。デザインも豊富・簡単カスタマイズが可能!

Copyright (c) 1997-2014 Rakuten, Inc. All Rights Reserved.