䟋ずしおRL78ラむンを䜿甚したルネサスマむクロコントロヌラの玹介



マむクロコントロヌラ電子機噚の平均的なロシア語圏の開発者がマむクロコントロヌラの最も有名なたたは䞻芁なメヌカヌを3〜5名挙げるように求められた堎合、マむクロチップ、アトメル、TIたたはSTMなどの名前を聞く可胜性が最も高いでしょう。 誰かがNXP、Freescale、Samsung、たたはFujitsuを呌び出すこずもありたす。 しかし、他のメヌカヌを芚えおいる人はほずんどいたせん。これは、゜ビ゚ト埌の分野ではほずんど知られおいたせん。



日本䌁業Renesas Electronicsに぀いお話しおいたす。䞀方、その幎次報告曞では、このような興味深いむンフォグラフィックを誇っおいたす...




汎甚マむクロコントロヌラヌ自動車甚電子機噚を陀く、幅広い甚途のマむクロコントロヌラヌ



そのため、以䞋で補品を説明する「ダヌクホヌス」は、汎甚マむクロコントロヌラヌず車茉電子機噚垂堎の䞡方の䞖界垂堎のリヌダヌであり、「䞖界でナンバヌワンのマむクロコントロヌラヌサプラむダヌ」ず自称するすべおの暩利を持っおいたす。 同瀟の成功の秘Theは簡単です。ルネサステクノロゞは2003幎に日立ず䞉菱の合匁䌚瀟ずしお登堎し、2010幎にNec Electronicsが参加しお合匁䌚瀟Renesas Electronicsを蚭立したした。



この協力の結果、3瀟の十分に確立されたコアを、効率的な専甚呚蟺機噚ず組み合わせお䜿甚​​できるようになりたした。



このような倚くの開発を受けお、ルネサスは参加䌁業が利甚できる技術を䜿甚しお新しいラむンを開発し始めたした。 Hitachi H8SXずMitsubishi R32Cを眮き換えるために、32ビットRXマむクロコントロヌラヌのラむンが登堎したした。 人気のあるNEC V850の埌継ずしお、RH850が開発されたした-自動車甚電子機噚で䜿甚するためのマむクロプロセッサのラむンです。 R8Cコアは、䞉菱M16Cず互換性のある䜎コスト゜リュヌションずしおも開発されおいたす。



NECず合䜵したルネサスの最初の独立開発は、CISCアヌキテクチャを備えた新しい16ビットRL78コアでした。 その䞭で、開発者は、R8Cず78K0のプラスの偎面を1぀のファミリヌに統合しようずしたした。 珟時点では、ファミリヌはさたざたなアプリケヌションのために5぀の「ブランチ」に分割できたす。


  1. RL78 / G1x-汎甚マむクロコントロヌラヌ最倧28チャネルのADC、DAC、USB、I2C、SPI、PWM、RTCC。
  2. RL78 / L1x-LCDパネルマむクロコントロヌラヌUSB 2.0サポヌト、最倧4x53 / 8x48セグメントのLCDむンゞケヌタヌ管理。
  3. RL78 / F1x-自動車産業向けのマむクロコントロヌラヌCANむンタヌフェヌスサポヌト、゚ンゞン管理、+ 150ºCたでの拡匵枩床範囲。
  4. RL78 / D1x-蚈装甚マむクロコントロヌラヌ4チャンネルのステップモヌタヌのコントロヌラヌを「箱から出しお」盎接、最倧4x53セグメントのLCDむンゞケヌタヌの制埡、CAN。
  5. RL78 / I1x-照明制埡甚マむクロコントロヌラヌDALI / DMX512、PWM。

RL78マむクロコントロヌラの品揃えは単玔に膚倧であり、特定の甚途に適したモデルを遞択するこずは難しくありたせん。 すべおのファミリのコントロヌラヌは、DMAラむン、ADC / DACコンバヌタヌ、I2CおよびSPIむンタヌフェヌスのサポヌト、産業甚LINネットワヌクでの動䜜のサポヌトを誇りたす。



RL78コアCISCパむプラむンは3぀のステヌゞで構成され、呜什の玄86が1〜2プロセッササむクルで実行できたす。 16x16ビットMACコマンドのハヌドりェア実行もサポヌトされおいたす。



RL78マむクロコントロヌラヌの䞻な利点ずしお、メヌカヌは最小消費電力を宣蚀し、ラむンは真の䜎消費電力真に䜎消費電力であるず呌びたす。 それにもかかわらず、高い生産性ず幅広い動䜜電圧の維持に泚目するこずができたす。



わかりやすくするために、このコントロヌラヌの䞻芁な特城ず「人気のある」ブランドの䞻芁な競合他瀟を䞀般的な衚にたずめおいたす。



䞀般的なマむクロコントロヌラの特性の比范



STM8L


STM32L


Pic24 lite


MSP430


RL78


収容人数


8ビット


32ビット


16ビット


16ビット


16ビット


性胜


〜1 DMIPS / MHz、最倧16 MHz


〜1.04 DMIPS / MHz、最倧32 MHz


〜0.5 MIPS / MHz、最倧32 MHz


〜1 DMIPS / MHz、最倧25 MHz


〜1.3 DMIPS / MHz、最倧32 MHz


フラッシュ


2〜64 KB


32-384 KB


16-32 KB


0.5-512 KB


0.125-512 KB


RAM


1-4 KB


4-48 KB


1-2 kb


0.125-66 KB


1-32 KB


消費スレヌブ。


150-180ÎŒA/ MHz


214-230ÎŒA/ MHz


195-350ÎŒA/ MHz


80-280ÎŒA/ MHz


46-156.25ÎŒA/ MHz


睡眠消費+ RTC


1.3ÎŒA


0.9ÎŒA


0.5-0.7ÎŒA


0.7ÎŒA


0.56-0.68ÎŒA


パワヌレンゞ


1.65-3.6 V


1.65-3.6 V


1.8-3.6 / 2.0-5.5 V


1.65-3.6 B


1.6-5.5V


掚定䟡栌垯


0.5〜4.5ドル


1.5〜7.7ドル


0.8〜4.2ドル


0.34〜9.5ドル


0.68〜8ドル



この衚では呚蟺機噚に぀いおは意図的に蚀及しおいたせんが、ここでの利点は競合他瀟には絶察に有利ではありたせん。呚蟺機噚に関しおは、ルネサスは䌝統的に非垞にうたくいっおいたす。



回線の䞀郚の代衚者の有甚な機胜に぀いおは、次のこずに泚意しおください。



これらはどれも芋栄えがよく矎しいものですが、ルネサスマむクロコントロヌラは開発に非垞に䟿利ですか これを確認するには、ルネサスYRPBRL78G13デバッグボヌドを䜿甚しお、ルネサスRL78シリヌズマむクロコントロヌラを䜿甚するための゚ントリしきい倀を評䟡しおください。



R5F100LEAFBマむクロコントロヌラヌは、RL78 / G13ファミリヌに属する「オンボヌド」でむンストヌルされたす。64KBフラッシュメモリ、4 KB RAM、デヌタを保存するための曞き換えサむクルが増加した4 KBフラッシュメモリも割り圓おられたす。 12チャネルの内蔵ADCは最倧10ビットの解像床を提䟛し、2チャネルのDMAは受信デヌタをメモリに保存するのに圹立ちたす。 14個のタむマヌチャネル、7個のPWMチャネル、3個のUART、7個のI2Cは、1.60ドルのLFQFP64パッケヌゞの「赀ちゃん」に非垞に適しおいたす1000個以䞊のバッチで。



この掲瀺板は、ルネサス自䜓がプロモヌション掲瀺板のセクションに起因しおいるため、小売䟡栌は25ドルです。 公平には、これは䌚瀟にずっお最も興味深いオファヌではありたせん。RL78/ L12のデバッグボヌドYRPBRL78L12は珟圚わずか10ドルで提䟛されおいたす。 ご垌望の方には、倚数の倧芏暡な「アダルト」デバッグもありたす。




デバッグボヌドRenesas YRPBRL78G13



ボヌドは100x30 mmのコンパクトなフォヌムファクタヌで䜜られおおり、RL78 / G13コントロヌラヌ自䜓に加えお、USBを介しおボヌドをフラッシュするだけでなく、リアルタむムでむンサヌキットデバッグを実行できるハヌドりェアデバッガヌが含たれおいたす。 このボヌドは、USBバスず倖郚電源の䞡方から電力を䟛絊したす。




ルネサスYRPBRL78G13開発ボヌド図



倖郚電源+ 5Vは、J4コネクタを䜿甚しおボヌドに盎接接続でき、隣接するパッドを再接続する必芁がありたす。 ゞャンパJ6〜J9を䜿甚しお、USBポヌトが機胜するかどうかを遞択できたす。OCDオンチップデバッグたたは仮想UART前述の78K0ファミリの远加の8ビットコントロヌラΌPD78F0730を䜿甚するUSB​​経由のCOMポヌト゚ミュレヌタ。 ただし、仮想UARTは、デバッグ䞭にゞャンパを絶えず再配眮する必芁があるため、垞に䜿甚するず䟿利ではありたせん。 必芁に応じお、J5コネクタを介しお接続された倖郚デバッガRenesas E1を䜿甚できたす。



マむクロコントロヌラヌのほがすべおのピンは、長い行J1およびJ2に衚瀺されたす。 J10コネクタは、実皌働環境で78K0補助コントロヌラをフラッシュするために䜿甚されたす。 マむクロコントロヌラの電力消費を制埡するために、ゞャンパJ3を介しお電力が䟛絊されたす。



ボヌドには、2぀のLED電源むンゞケヌタずナヌザヌLEDず、10ビットADCマむクロコントロヌラヌに接続されたポテンショメヌタヌもありたす。 興味深いこずに、ポテンショメヌタヌを調敎するために、小さなドラむバヌがボヌドに付属しおいたす。



したがっお、ハヌドりェアを䜿甚するず、すべおが明確になりたす。次に、ルネサスが゜フトりェア開発者に提䟛するものを芋おみたしょう。



開発は文曞化から始たり、ここでルネサスは埓うべき䟋ず呌ぶこずができたす仕様は自由に簡単に芋぀けるこずができ、その関連性ず完党性でほずんどの堎合問題はありたせん-文曞の量は初心者でも怖がらせるこずができたす。 メヌカヌは埓来、呚蟺機噚の説明ずアプリケヌションノヌトに特別な泚意を払っおいたす。 ルネサスは広く普及しおいるため、控えめな名前のルネサスラルツを持぀独自のオンラむンコミュニティもありたす。



RL78のコヌド蚀語はCです。 開発環境ずしお、倚くの愛されおいるRL78サポヌトバヌゞョンEWRL78を備えたIAR Embedded Workbenchの倚くが提䟛されおいたす。 IARに組み蟌たれたC-SPYデバッガヌは完党にサポヌトされおいたす。レゞスタヌ/倉数を衚瀺しながら、ブレヌクポむントを蚭定し、コヌドを自由に歩き回るこずができたす。 たた、開発環境ずしお、e²studioEclipse Embedded StudioをGDBデバッガヌや他の倚くのナヌティリティずずもに䜿甚できたす。



ファヌムりェアコヌドは、ベアメタルずRTOSの䞡方で蚘述できたすメヌカヌは、FreeRTOS、CMX-RTX、MicriumÎŒC/ OS、OSEK Run Time InterfaceORTI、Express LogicたたはSegger embOSの実装を䜿甚するこずを掚奚しおいたす。 ホヌムオヌトメヌション愛奜家には、KNXスタックの実装がありたす。



コントロヌラヌにファヌムりェアをアップロヌドするための倚くのアプリケヌションがありたす。たずえば、無料のナヌティリティWriteEZ5です。 このナヌティリティは汎甚です。特定のマむクロコントロヌラモデルをサポヌトするには、察応する構成ファむルをpr5圢匏でダりンロヌドし、フラッシュする前にプログラムをポむントするだけで十分です。



ルネサスは、グラフィカルナヌティリティAppliletを䜿甚しお、プログラムコヌド開発の芳点から最も興味深いアプロヌチを瀺しおいたす。 このナヌティリティを䜿甚するず、マむクロコントロヌラヌ、gpio、割り蟌みサブシステム、ADC / DAC動䜜モヌドで䜿甚されるすべおの呚蟺機噚を人間が読める圢匏で構成し、この構成に基づいお、すべおのむベントハンドラヌの初期化コヌドず「スタブ」を生成できたす。 生成されたコヌドはプロゞェクトの基瀎ずしお䜿甚でき、コヌドを敎理するためのルヌル䞋蚘参照に埓っお、い぀でも完成したプロゞェクトの構成を倉曎できたす。



このようなアプロヌチにより、アプリケヌションロゞック、呚蟺の初期化、および管理甚のAPIに集䞭しお、生成されたナヌティリティコヌドを匕き継ぐこずができたす。 同時に、他のベンダヌの堎合のように、呚蟺機噚を操䜜するために巚倧なラむブラリを扱う必芁はなく、生成されたコヌドには最小限の冗長性が含たれるこずが保蚌されおいたす。



したがっお、RL78の゚ントリしきい倀は倧幅に削枛され、マむクロコントロヌラヌのプログラミングの経隓のない開発者でも、最小限の時間で簡単なファヌムりェアを䜜成できたす。



䟋ずしお、マむクロコントロヌラの䞖界から䌝統的なHelloの䞖界を曞く方法を瀺したす-LEDで点滅したす。 そしお、それがそれほど退屈ではないように、私たちは理由のために点滅したすが、パルス幅倉調ずタむマヌを䜿甚しおLEDをスムヌズにオン/オフしたす。 合蚈で3぀のタむマヌが必芁になりたす。そのうち2぀はPWMに䜿甚され、3぀目はパルスのデュヌティサむクルをスムヌズに倉曎したす。この堎合、茝床が倉化したす。



Renesas Appliletナヌティリティを開き、R5F100LEAFBコントロヌラヌの新しいプロゞェクトを䜜成したす。




RL78 / G13のナヌティリティりィンドりApplilet3の新しいプロゞェクト



これは、タむマヌチャネルのれロ蚭定タブで開いおいる珟圚のバヌゞョン3でのAppliletナヌティリティりィンドりの倖芳です。 適切な動䜜モヌドを䜿甚する堎合、チャネル0はPWM呚期を蚭定するタむマヌ甚に予玄されおいるため、蚭定が豊富ではありたせん。 呚蟺からの他の割り蟌みず同様に、INTTM00割り蟌みがオンになるず、この割り蟌みの「スタブ」のコヌドがナヌティリティによっお生成されたコヌドに自動的に远加および初期化されたす。



チャネル1は、期間のアクティブな郚分を盎接蚭定するため、その構成のタブで、アクティブレベルの幅チャネル0の期間の割合ずしおおよびレベル蚭定を蚭定できたす。




Applilet3のRL78 / G13のナヌティリティりィンドりでのチャネル1蚭定



たた、0.2秒ごずに割り蟌みを生成する、いわゆるむンタヌバルタむマヌも必芁です。 その構成は、Appliletナヌティリティむンタヌフェむスのいく぀かの「チェック」にもなりたす。




RL78 / G13のApplilet3のナヌティリティりィンドりでむンタヌバルタむマヌを蚭定する



そしおもちろん、LEDが接続されおいるP77ピンを出力モヌドにする必芁がありたす。




RL78 / G13のナヌティリティりィンドりApplilet3でピンP77を構成する



これで停止し、プロゞェクトを保存しお、倧切なボタン「コヌドを生成」を抌しおください。 IARを開発環境ずしお䜿甚したす。



生成されたプロゞェクトのファむルを芋おみたしょう。


r_cg_cgc.c


r_cg_cgc_user.c


r_cg_it.c


r_cg_it_user.c


r_cg_port.c


r_cg_port_user.c


r_cg_timer.c


r_cg_timer_user.c


r_main.c


r_systeminit.c



名前からわかるように、すべおのコヌドは実行される機胜に応じおモゞュヌルに分割されたすクロックゞェネレヌタヌ、むンタヌバルタむマヌ、gpio、タむマヌ、メむンプログラムサむクルこの堎合は空、およびコントロヌラヌの䜎レベル初期化コヌド。 * _user.cの圢匏のファむルには、察応する呚蟺機噚のむベントハンドラヌのスタブが含たれおいたす。



r_cg_it_user.cファむルを開き、むンタヌバルタむマヌハンドラヌを倉曎したす。 ハンドラヌを呌び出すたびに、ステップ数STEPS_NUMで指定された量だけPWMデュヌティサむクルが枛少たたは増加したす。 最倧たたは最小に達するず、茝床の倉化の方向が逆になりたす。



#pragma vector = INTIT_vect __interrupt static void r_it_interrupt(void) { /* Start user code. Do not edit comment generated here */ int16_t TDR0_value, TDR1_value, step; R_TAU0_Channel0_Stop(); TDR0_value = TDR00; TDR1_value = TDR01; step = TDR0_value / STEPS_NUM; if (moving_up == 1) { if (TDR1_value > TDR0_value - step) moving_up = 0; else TDR1_value += step; } else { if (TDR1_value < step) moving_up = 1; else TDR1_value -= step; } TDR01 = TDR1_value; R_TAU0_Channel0_Start(); /* End user code. Do not edit comment generated here */ } 


ご芧のずおり、生成されたプロゞェクトには、ナヌザヌによっお自動的に生成されお蚘述されたコヌドを分離するように蚭蚈されたコメントが倚数ありたす。 これらの境界を芳察しおコメントを保存するず、プロゞェクトの既存のナヌザヌコヌドを倱うこずなく、い぀でもAppliletナヌティリティを䜿甚しお呚蟺機噚の蚭定を倉曎できたす。



プロゞェクトに远加する必芁があるのは、LEDが接続されおいるPWMステヌタスずP77ピンの接続だけです。 これを行うには、チャネル0タむマヌ割り蟌みがトリガヌされたずきに、コントロヌラヌレッグを1に蚭定したす。



 #pragma vector = INTTM00_vect __interrupt static void r_tau0_channel0_interrupt(void) { /* Start user code. Do not edit comment generated here */ P7_bit.no7 |= 1; /* End user code. Do not edit comment generated here */ } 

たた、チャネル1では、この倀をれロにリセットしたす。



 #pragma vector = INTTM01_vect __interrupt static void r_tau0_channel1_interrupt(void) { /* Start user code. Do not edit comment generated here */ P7_bit.no7 &= 0; /* End user code. Do not edit comment generated here */ } 

すべおの準備が敎っおいたすプロゞェクトをコンパむルし、WriteEZナヌティリティを䜿甚しおコントロヌラヌに入力し、デバッグボヌドのゞャンパヌをデバッグモヌドから動䜜モヌドに再配眮し、必芁に応じおボヌド䞊のLEDがゆっくりずスムヌズに点灯および消灯する様子を芳察したす。



瀺されたアプロヌチを䜿甚するず、ルネサスRL78シリヌズマむクロコントロヌラヌの内郚機胜は私たちにずっお舞台裏のたたでしたが、耇雑なプロゞェクトを実装するずきに芁求の厳しい開発者のニヌズを満たしおいない可胜性がありたすが、簡単な操䜜アルゎリズムでは、ルネサスRL78コントロヌラヌ呚蟺機噚の広範なリストの初期化コヌドの自動生成を䜿甚するず、倧幅に削枛できたす時間、したがっお超䜎消費電力のデバむスの開発コスト。



質問やコメントを歓迎したす。

PSこの蚘事は、ゞャヌナルVestnik Elektronikiの最新号に掲茉されたした。 電子機噚の開発に䜿甚する他の電子郚品および技術に関する詳现情報は、PromwadチヌムのWebサむトの「技術」セクションにありたす。


Source: https://habr.com/ru/post/J227409/


All Articles