2016年06月29日

Renesas Synergy(30): Synergyのプロジェクトをゼロから作ってみよう(2)

それではプロジェクトを作っていきます(前回はこちら

プロジェクトを作ってプロジェクト名を入力すると、実は新しいツールが起動されます。そのため、EW for Synergy上で待っていても何も進まないのでバグでは?と思ってしまうかもしれません。その時はすこし落ち着きましょう。
そして、Windowsのタスクバーを見ましょう。下の図ではE2の文字が見えています。

RSA_0166.png

実はEmbedded Workbench for Synergyを使う時に、Synergyのコンフィギュレーションは別の画面で実施します。
そのコンフィギュレーションを実施するツールがSSC(Synergy Standalone Configurator)でタスクリストに出るときにはE2studioのアイコンで出てきます。

で、E2アイコンをクリックしてSSCに画面を変更します。
するとSSPやボードやマイコンを選ぶ画面になっているはずです。l違っていたらたぶんインストールが失敗しています。
手順を守って再度インストールしてみてください。ここでは、BoardはCustom User Board(S124), DeviceはR7FS124773A01CNEです。設定が終わったら”次へ”行きましょう
RSA_0167.png

カスタムボードなのでサンプルが無いため、”BSP”を選択し、”終了”を選択です。

今日はここまで。



タグ:Synergy
posted by EWARMJP at 18:00| Comment(0) | TrackBack(0) | Renesas | このブログの読者になる | 更新情報をチェックする

Cortex-M4FでDCモータ制御をプログラミング!(29)

DCモータ制御回路の検討を行い、ソフトウェアの実装と動作確認を行います。
モータドライバは、TA7291Pを使用します。
小型のDCモータ制御を行うので、電流容量と電圧は制限事項ではありません。
Nucleo Boardは、3.3V電源で動作するので、モータドライバの制御電圧仕様は3.3V対応している事が理想です。
TA7267P/BPを使うことを考えましたが....データシートを良く読むと、動作電源電圧範囲が、Vcc(opr)=6〜18Vとなり、手元の、ACアダプタも5V品なので、使えません。
TA7291を検討すると、動作電源電圧範囲が、Vcc(opr)=4.5V〜20Vとなり、5V電源で動作するので、回路を考えてみます。
しかし、データシートを良く読んでみみると....気になる仕様が....
制御電圧範囲(入力電圧範囲1(HIGH)=Vin1/Vin2(low)=Vin2)を確認すると、Vin1のHIGH側の電圧が問題です。
(詳しくは、TA7291P,TA7291S/SG,TA7291F/FGデータシートの電気的特性をご覧ください。)
1(HIGH)=Vin1 3.5v(min)から5.5v(max)となり、3.3Vロジックでは、電圧が不足して制御できません。
3.3Vロジックから5Vロジックへの変更は、電圧変換のデバイスを1個追加することで対処できます。
ブレッドボードで実験を行うので、DIPパッケージでレベル変換出来る74HCT14/74HCT04を探しに秋葉へGo....
入手できたので、以下の回路で実験を行います。
回路図.png

こんな感じで、作ってみました。
あ...実験用にスイッチを2個追加しています。(回路図にはありません)
IMG_1602.JPG

ここで、またまた問題が....
レベル変換回路を追加したので、モータドライバ回路の出力制御を反転する事が必要となり....
プログラムを変更します。


posted by EWCA9JP at 12:00| Comment(0) | TrackBack(0) | EWARM | このブログの読者になる | 更新情報をチェックする

2016年06月28日

Cortex-M4FでDCモータ制御をプログラミング!(28)

Nucleo Boardボードで、ST-Linkが接続できない問題が発生しました。
STM32 ST-LINK utility(STSW-LINK004)を使い、リセットボタンを押すと問題を解消出来るよとしましたが、もっと良い方法を教えていただきました。
ST-LINK utilityを起動して、「Target-Setting...」を選択します。
DEBUG_ERR2_0.png
Settingダイアログの「Mode」設定を「Connect Under Reset」を選択してください。
DEBUG_ERR4_0.png
そうすると....接続が出来ます。
DEBUG_ERR5.png
接続出来、フラッシュメモリの消去が出来ました
DEBUG_ERR7.png

posted by EWCA9JP at 12:00| Comment(0) | TrackBack(0) | EWARM | このブログの読者になる | 更新情報をチェックする

2016年06月27日

Renesas Synergy(29): Synergyのプロジェクトをゼロから作ってみよう(1)

Renesas SynergyをトライするためにワザワザUSからチップを購入し、拡張基板+ブレッドボードでICE接続が出来るところまで確認しました。

ここからもうすこし課題があります。
Renesas Synergyのサンプルはとうぜん評価ボードで動くように作られているので、今回のボード用のソフトは自分で作る必要があります。

それではEmbedded Workbench for Synergyを起動してソフトを作ってみましょう。バージョンが変わると動きが違うかもしれませので、バージョンを記述しておくと、7.40.5 11376のベータ版です。
ツールのメニューから[プロジェクト]-[新規プロジェクトの作成]を
RSA_0160.png

ここから”Renesas Synergy Project”を選択し、”OK”します。
RSA_0162.png

するとワークスペースの格納フォルダ、ワークスペース名、を決めたら、保存をクリックします。

RSA_0163.png

次にSSC/SSPのインストール場所とライセンスを聞かれます。
SSC/SSPを私はC:\Renesas\Synergy\SSC_510010の下にインストールしているのでそのまま指定します。
ラインセスは評価ライセンスが、SSC/SSPをインストールしたフォルダ以下にinternal\projectgen\arm\Licenses にXMLファイルがありますので、それを指定しましょう。この2つを設定したらOKです。
RSA_0164.png

次はプロジェクトのファイルの名前を入力します。フォルダは変えなくても良い思っているのでワークスペースと同じ場所にプロジェクトを作成します。終われば”保存”です。
RSA_0165.png

これで、設定画面が上ってくるのを待ちます。
初回は時間がかかります。

今日はここまで。

タグ:Synergy
posted by EWARMJP at 18:00| Comment(0) | TrackBack(0) | Renesas | このブログの読者になる | 更新情報をチェックする

Cortex-M4FでDCモータ制御をプログラミング!(27)

TIM3 CH1 (PC6)の波形を測定します
波形1.png

TIM3 CH2 (PC7)の波形を測定します

波形2.png

TIM3 CH3 (PC8)の波形を測定します


波形3.png

TIM3 CH4 (PC9)の波形を測定します

波形4.png

これで、モータドライバ回路を接続すれば、DCモータをPWM制御が出来ると思います。

posted by EWCA9JP at 12:00| Comment(0) | TrackBack(0) | EWARM | このブログの読者になる | 更新情報をチェックする

2016年06月26日

Cortex-M4FでDCモータ制御をプログラミング!(26)

PWM出力処理を追加します。
PWM出力の比率設定は、TIM3_ARRレジスタとTIM3_CCRxレジスタの比率で設定を行います。
TIM3_CCRxレジスタは、TIM3_CCR1からTIM3_CCR4の4種類の設定を行う事が出来ます。
TIM3_CCRx/ TIM3_ARR* 100 =デューティ比で計算する事が出来ます。
----------------------------------------------------------------
 double AAR_Val   = 26800000.0/2.0/20000.0;
 uint16_t CCR1_Val = (uint16_t)(AAR_Val * (50.0/100.0));
 uint16_t CCR2_Val = (uint16_t)(AAR_Val * (37.0/100.0)); 
 uint16_t CCR3_Val = (uint16_t)(AAR_Val * (25.0/100.0));
 uint16_t CCR4_Val = (uint16_t)(AAR_Val * (12.0/100.0));

  TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
  TIM_OCInitStructure.TIM_Pulse = CCR1_Val;
  TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
  TIM_OC1Init(TIM3, &TIM_OCInitStructure);
  TIM_OC1PreloadConfig(TIM3, TIM_OCPreload_Enable);

  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
  TIM_OCInitStructure.TIM_Pulse = CCR2_Val;
  TIM_OC2Init(TIM3, &TIM_OCInitStructure);
  TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable);

  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
  TIM_OCInitStructure.TIM_Pulse = CCR3_Val;
  TIM_OC3Init(TIM3, &TIM_OCInitStructure);
  TIM_OC3PreloadConfig(TIM3, TIM_OCPreload_Enable);

  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
  TIM_OCInitStructure.TIM_Pulse = CCR4_Val;
  TIM_OC4Init(TIM3, &TIM_OCInitStructure);
  TIM_OC4PreloadConfig(TIM3, TIM_OCPreload_Enable);
  TIM_ARRPreloadConfig(TIM3, ENABLE);

  /* TIM3 enable counter */
  TIM_Cmd(TIM3, ENABLE); 
---------------------------------------------------------------------
では、出力波形を測定してみましょう!


posted by EWCA9JP at 12:00| Comment(0) | TrackBack(0) | EWARM | このブログの読者になる | 更新情報をチェックする