ラジオ少年の楽しい電子工作、その他

AVRを使った簡単な回路の実験、そして日々のちょっとした出来事を書きます。

Psoc

2015年07月31日 | 日記

昔作ったPSoCの温度計。書き込み機もどこかにあるはず、プログラミングも忘れてしまいました。回路図を描くとプログラムが出来る?そんなICだと記憶してます。

ICの価格は高いですが。プログラムを作る方法が文字で書くのではなく絵を描くような感覚とでもいったらいいのか。

PSoC(ピーソック、Programmable System-on-Chip)とは「サイプレス・セミコンダクター社(Cypress Semiconductor Corporation.) が製造しているICチップの製品群である。」とあります。

今のところ、これをまたやる予定はありません。


コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

R8C/ M12A(8)

2015年07月26日 | 日記

hiraさんprojectのPluse_out_lcdのIDを変更して見ました。

commonにあるvect.cを変更します。

 

書き込み

 

erase

 

verify 当然エラーになりますね。

 

 

 

 

コメント (2)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

R8C/ M12A(7)

2015年07月26日 | 日記

HEW でIDの設定がうまく行きません。そこで、別のプログラムに代えてやってみるといとも簡単にIDが設定できます。

 


#include "sfr_r8m12a.h"
 
void main(void);
 
void main(void){
  volatile int i, j;
 
  // ポート1の1bit目を出力に設定
  pd1_0 = 1;
  _asm(" .id ""\"#1234567890abcd\" ");
  while(1){
    // ポート1の1bit目をHIGH
    p1_0 = 1;
    for(i = 0; i < 1000; i++){
      for(j = 0; j < 3; j++);
    }
    // ポート1の1bit目をLOW
    p1_0 = 0;
    for(i = 0; i < 1000; i++){
      for(j = 0; j < 3; j++);
    }
  }
}

そして.id ファイルの中味は下記です。

-ID#1234567890abcd -ofsregx FF
0FFDF : 12
0FFE3 : 34
0FFEB : 56
0FFEF : 78
0FFF3 : 90
0FFF7 : AB
0FFFB : CD
0FFFF : FF
ちゃんとIDが代わっています。 

一体何がおかしいのか??、、、、

mot info IDは設定の値になっています。

 

Reserve ID、 ALL 0xFF。

 

IDは新しいIDになる。

 

Reserve ID ALL 0xFFでverifyをクリック、設定後のIDを表示。

 

 

Reserve ID ALL 0xFF で Read Dataをクリック。

上記の二つはDEVICEのIDとr8cprogu-GUIのIDが異なるのでIDエラーにならないのかな?

コメント (7)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

R8C/ M12A(6)

2015年07月25日 | 日記

M12AのIDはデフォルトでFF(7バイト)になっている。これが何かの都合でFF以外に書き換わると一切のアクセスが出来なくなってしまう。

確かに、敢えてIDを書き換えた訳ではないのにアクセスを拒絶されてしまう状況は経験した。HEWでコンパイルを実行すると「*.id」が.motファイルのあるフォルダに出来る。これをテキストエディタで見ると

*.idの中味。

-ID#FFFFFFFFFFFFFF -ofsregx FF
0FFDF : FF
0FFE3 : FF
0FFEB : FF
0FFEF : FF
0FFF3 : FF
0FFF7 : FF
0FFFB : FF
0FFFF : FF

上記の様にID は all FFである。

IDを書き換えるにはプログラムに組み込む必要があるらしい。そこで下記のようにやって見た。(このやり方がいいのか、、、は、不明)

#include "sfr_r8m12a.h"

void main(void);

void main(void)
{
    int i;
    prc0 = 1;  //Protect off
    xrcut = 1; //purge XIN-XOUT feedback register
    //locodis = 0; //Low speed on-chip oscillator on
    hocoe = 1;   //High speed on chip OSC select
    exckcr = 0x02; //system clock --> P4_7
    //ckpt1 = 1;
    //ckpt0 = 0;
    for(i= 0; i<50; i++);
    phisel = 0x00;  //clock分周比選択(分周なし)
       hscksel = 1;  //High spped on chip OSC
    scksel = 1;  //System base clock select
    locodis = 1; //stop low-speed on-die oscilator
    prc0 = 0;   //Protect on
    
    _asm(".id ""\"#1234567890abcd\"");
    asm("nop");
   
}    

赤字の部分が書き込むIDで1234567890abcde。これをコンパイルするとwarningが出るが一応パスする。(下記がそれ)

L1180 (W) Directive command ".ID" is duplicated in "C:\WorkSpace\test_clock\test_clock\Debug\test_clock.obj"

*.id の中味は相変わらずFFのまま。どうもこの中味は変化せず、.motの中にIDが組み込まれるらしい。兎に角、motを書き込んでID チェックをやるとFFと表示され期待の 1234567890abcd とは表示されない。

.motをバイナリエディタで見るがモトローラ形式で見ずらい。ID書き換えについては検索してもこれと云った情報はなさそう。

バイナリエディタで書き換えてもサムチェックの変更があるので面倒。プログラムで書き換えが出来れば、その方がいいはず。


   

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

R8C/ M12A(5)

2015年07月20日 | 日記

今度はM12Aとキャラクタ タイプのLCDをつないで何か表示させてみるかな、このLCDはAVRではやったのですが。

異なるCPUでやってもショウガナイか、、、、。I2Cタイプの温度センサーで温度表示、これもAVRでヤッタシなー、どうも今一、モチベーションが上がらないですね。

それに倒立ロボ、リモコンで制御する方法が分かったのですが、ArduinoでIR部分の記述がコンパイルエラーで先へ進まず停止中。

これもなんとかしたいのですがね。

関係ないですが、倒立状態は1時間は持続します、ただそれだけ、まあ倒立させるまでのチューニングにかなり苦労しましたが。

     

梅雨明けで急に暑くなり涼しくなるまで暫く休憩ですね。頭の中はオールリセットされてしまうでしょう。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする