CCWO Embedded Space

CCWOの日々の開発を発信するブログ

2020-01-01から1年間の記事一覧

ラッチアップ

ラッチアップとは、CMOS系のIC内部に発生してしまうダイオードやトランジスタによって引き起こされる現象です。一度ラッチアップが発生してしまうと、電源を切るまでVDD端子からVSS端子に電流が流れ続け熱暴走が発生し、最悪の場合にはICを永久的に破壊して…

RS Component Search

PCB

最近、回路図を制作する際にこちらのサイトがとてもとてもとても役に立っております。 もうこれなしでは回路図を作れない身体になりそうです笑RS Component Search どんなサイトかというと、回路図に組み込みたいパーツを検索して、そのCADデータを提供して…

Fusion PCB 発注 基板到着編

PCB

Fusion PCBから基板が届きました。 注文1(8/7) embedded-blog.ccwo.net 注文2(8/14) embedded-blog.ccwo.net 2つ注文しました。バラバラに頼んだのですが両方同時に来ました。あと、困ったのがずっと注文のステータスがProcessingだったのですが、突然来…

Fusion PCB 発注 注文編2

PCB

ちょっと前から使っているマイコンがあって、ようやっとプログラムとかが整理できたので使いたい機能をあらかた引き出して基板にしました。 これもAD変換の関連なのですが、電源とグランドに少し気を配ってみましたとさ。 今回は青色で頼んでみました。 来る…

Fusion PCB 発注 注文編 1

PCB

Fusion PCBがセールをしてるとのことなので発注してみました。 ただし、10枚$4.9に送料がDHL(4~5営業日)で$18かかるので、ある程度まとめて注文するほうがいいのかな? 今回は簡単なAD変換のモニター基板を注文しました。 Fusion PCBで注文するのは初めてだ…

MDK-ARMとHAL Driver メモ書き

STM32CubeMXのメモ書き STM32CubeMXがMDK-ARM V5に生成するものの main.c 内蔵モジュールの初期化するコードが含まれるので基本的にユーザはmain.cのみを修正する。 Clock,GPIOもここに生成される。 stm32f4xx_hal_it.c 割り込み関連の設定が生成される。割…

STM32 開発環境の構築<3>

またまた、STMを使ってみようかなと思いまして開発環境を構築しました。 なんと・・・ embedded-blog.ccwo.net embedded-blog.ccwo.net 前回STMの開発環境を調べていたのがちょうど1年ほど前で、時の流れは残酷です。 今回はSTM32F303K8を使って、ペリフェラ…

STM32 開発環境の構築<2>

ここまでいろいろと開発環境見てきましたが、とりあえず使っていくもの決めました。 IDE STM32CubeMX(ハードウェアのGUI IDEということで) System Workbench for STM32 MDK-ARM で行こうと思います。プロジェクは適宜いろいろと使っていきたいです。 mbedか…

STM32 開発環境の構築<1>

STM32の評価ボードNucleoシリーズを何個か買って放置してたので、開発環境を構築したい(願望 もっているNucleoシリーズは F401RE STM32 Nucleo Board STM32F411RE: マイコン関連 秋月電子通商-電子部品・ネット通販 F401で開発…

Renesas RX Flash Programmer 追記

RX631開発でRenesas Flash Programmerでの書き込み方法を書いたのですが・・・(両方ともほぼおなじ内容、USB directかCOMでの書き込みかの違いくらい) RX631→ embedded-blog.ccwo.net なんと今は!v2.05.03ではなくてv3.01.00が出ていると今日教えてもらい…

Renesas RX621 余談<1>

これでRX621の通信以外の主だった機能の初期化を完了できたと思います。 ここまででhardware_setup.c内のHardwareSetup関数は void HardwareSetup(void) { Clock_initialize(); Pin_initialize(); SCI1_initialize(); CMT0_initialize(); CMT1_initialize();…

Renesas RX621 RTC

RTCの設定をしたいと思います。 RTC=リアルタイム・クロックとは、正確に1sなどを計測したり、カレンダー機能を使用するために用いられます。 今回は正確に1sを計測し、1s毎に割り込みを呼びたいと思います。 hardware_setup.cにて以下のRTC_initialize関数…

Renesas RX621 12bitADC

12bitADCの設定をしていきたと思います。 12bitADCとは12bit Analog Digital Converterの略で、マイコンのAVDDとAVSS間に印加された電圧を基準に、ピンに印加された電圧を12bitのディジタル値に変換することができます。 これにより、アナログ電圧を出力する…

Renesas RX621 エンコーダ

RX621では最大4つエンコーダを計測することができるので、MTU1,2,7,8を位相係数モード1に設定していきます。 hardware_setup.cにて以下のMTU2_initialize関数にMTU9(PWM)の設定に続けて設定していきます。MTU2_initialzie関数 void MTU2_initialize(void) { …

Renesas RX621 PWM

PB0をMTIOC9Aに設定し、PWMモード1を用いてPWMを出力していきます。 hardware_setup.cにて以下のMTU2_initialize関数を作成し、HardwareSetup関数で呼びましょう。MTU2_initialize void MTU2_initialize(void) { // MTU9 = PWM Mode 1 MSTP(MTU9) = 0; // Wa…

Renesas RX621 Timer割り込み

Timer割り込みとは、メインのプログラム実行から周期的(タイマー的)に割り込みプログラムを実行する機能です。 このため、プログラムを周期的に行いたい時や何かイベントが発生した時に実行したい時に割り込みは使用されます。 今回は周期的にプログラムを…

Renesas RX621 UART

UARTを用いて、RX621のデバッグをします。 SIM I/Oを用いて今回はpritnfをSCI1にリダイレクト出来るようにします。 (printfを自身で作成するのもアリかと思います。) 回路はRX621→SCI1→FT231XS→COM(パソコン)となります。 embedded-blog.ccwo.net 手順はRX6…

Renesas RX621 I/O

次にI/Oピンの設定をします。 出力ピンにPA2,PA3,PA4,PA5 入力ピンにPD0,PD1,PD2,PD3 を設定します。hardware_setup.cにて以下のようにPin_initialzie関数を作成し、HardwareSetup関数にて呼び出します。 #include "iodefine.h" void Clock_initialize(void)…

Renesas RX621 クロック

RX621のクロック設定は非常に簡単になっております。 hardware_setup.cにて以下のようにClock_initialzie関数を作成し、HardwareSetup関数にて呼び出します。hardware_setup.c #include "iodefine.h" void Clock_initialize(void); void HardwareSetup(void)…

Renesas RX621 下準備<プロジェクトファイルの確認>

生成されるプロジェクトファイルは以下の通りになります。 RX631と同様のプロジェクトファイルが自動で生成されます。 embedded-blog.ccwo.net dbsct.c(セクションの初期化処理用テーブル) hardware_setup.c(ハードウェア初期化ルーチン) interrupt_handlers…

Renesas RX621 下準備<プロジェクトの作成>

e2 studioとRenesas Flash Programmer(以下RFP)のプロジェクトの作成をし、作成プロジェクトファイルの確認と書き込みを行いたいと思います。 RX631とほぼ同じなので、 e2 studioのプロジェクトの作成はこちらを embedded-blog.ccwo.net RFPのプロジェクトの…

Renesas RX621 はじめに

RX631の初期設定みたいなことをしましたが、RX621のほうもやっていきたいと思います。 RX631に比べれると非常に簡単なので、RX631の記事も参考にしつつさくさくやりたいと思います。 使用するマイコンは秋月電子通商でも購入可能な RX621マイコン R5…

Renesas RX631 余談<1>

ここまででRX631開発は プロジェクトの作成 クロック I/O UART Timer割り込み PWM エンコーダ 12bitADC と扱えるようになり、 hardware_setup.cのHardwareSeup関数は void HardwareSetup(void) { Clock_initialize(); Pin_initialize(); SCI1_initialize(); …

Renesas RX631 12bitADC

アナログ電圧の計測等で必要不可欠な12bitADCの設定を行います。 12bitADC=12bit Analog Digital Converterの略でアナログ電圧を12bitのディジタル信号に変換することを指します。 これにより、アナログ電圧をディジタル信号つまりビットに変換し、取り扱う…

Renesas RX631 エンコーダ

モータ制御等に必要不可欠なエンコーダを計測していきたいと思います。 エンコーダとは、光とスリットによって、回転方向と回転量を計測することができるセンサーです。 広くモータの回転量の制御や回転量の変化を利用し移動量の計測に使用されます。 以下の…

Renesas RX631 PWM

モーター制御等さまざまな分野で必要不可欠なPWMを出力していきます。 PE2をMTIOC4Aに設定し、1kHzのPWMを出力していきます。 以下の手順で設定していきます。 1.消費電力低減機能の解除 2.ピンの設定 3.MTU2の設定 4.ユーザ関数の定義(今回、関数…

RX631開発 Timer割り込み

マイコンにおいて必要不可欠なタイマー割り込みの設定をします。 10msと5msのタイマー割り込みを設定してLEDを点滅させてみましょう。 タイマー割り込みとは、文字通り現在行っているプログラムにタイマー的(周期的)に割り込んでプログラムを実行する機能…

Renesas RX631 UART

UARTを用いて、RX631のデバッグをします。 回路はRX631→SCI1→FT231XS→COM(パソコン)となります。 ここでは、printf(IOStream)を使うために、RenesasのSIM I/O(シミュレーション用のデバッグコンソール)を用いて、PCにシリアル転送を行います。 (自身…

Renesas RX631 I/O

つぎにI/Oの設定をしていきたいと思います。 (先にクロックの設定http://ccwo.hatenablog.jp/entry/2016/08/18/012106を行って下さい。) I/O(Input/Output)とは、マイコンの入出力ピンのことを指します。 まずは出力設定をします。ピンよりHighを出力し…

Renesas RX631 クロック

ここではクロックの設定をしていきます。 ただ、RX631のクロック設定は非常に難しく、Renesas公式HPにて公開されている「RXショートセミナー」という資料を参考に、クロック設定を行いたいと思います。 といっても、参考資料を少し改変したものなります。 ha…