GR-SAKURA
GR-KURUMI
GR-COTTON
GR-CITRUS
GR-PEACH
GR-KAEDE
GR-ADZUKI
GR-LYCHEE
GR-ROSE
GR-MANGO(*)
SNShield
Web Compiler
IDE for GR
TOPPERS関連
女子美コラボ
その他
※プロデューサミーティング中
作り方使い方資料
イベント関連
作品記事
体験記事
ライブラリ
ツール
その他・過去ファイル
風鈴音源をGR-KURIMIで作ってみたのですが、これを秋月で販売の10pin RL78(5F10Y16ASP)へもっていきたいと考えてます。 GR-KURUMIのバイナリをそのまま、使えるのでしょうか? また、そのまま使った場合、ピン配置の対応は、どうなるんでしょうか? GR-KURUMIのpin3 (PWM), pin2 (INTR0) を使います。 あと、E1/E20を使ってプログラムを書き込み方法を、易しく説明しているページがあれば、ご紹介ください。 書き込みツールは、「【無償評価版】Renesas Flash Programmer V2.05.00」が使えそうですが、バイナリファイルの形式が、hexとかbinから変換が必要な感じがします。 http://japan.renesas.com/support/downloads/download_results/C1000000-C9999999/tools/evaluation_software_rfp.jsp 注)pin2の割り込みは、まだ、下のプロラムに反映されてないです。 【風鈴音源】音源系のソース公開が少ないようなので、サンプルソースコードを下にあげときます。ただし、音質は悪いアルゴリズムです。
/*GR-KURUMI Sketch Template Version: V1.06*/ #include // Pin 22,23,24 are assigned to RGB LEDs. int led_red = 22; // LOW active int led_green = 23; // LOW active int led_blue = 24; // LOW active // the setup routine runs once when you press reset: void setup() { // initialize the digital pin as an output. Serial.begin(9600); pinMode(led_red, OUTPUT); pinMode(led_green, OUTPUT); pinMode(led_blue, OUTPUT); pinMode( 3, OUTPUT ); // turn the LEDs on, glow white. digitalWrite(led_red, LOW); digitalWrite(led_green, LOW); digitalWrite(led_blue, LOW); analogWriteFrequency( 4000 ); // 4000Hz analogWrite( 3, 0 ); } int val = 0xEF; // the loop routine runs over and over again forever: void loop() { analogWrite( 3, 127 ); delay(100); for ( int cnt=0; cnt < 8; cnt++ ); val = (val >> 1); analogWrite( 3, val ); delay(200); } delay(2000); }
上記のプログラムで、pin3が音出力。 要注意事項として、このプログラムを実行するときは、pin3には、プラス電源とGNDに保護ダイオードを付けて、圧電スピーカへ接続してください。
【音質改善板】(指数関数減衰をあきらめ版です)
/*GR-KURUMI Sketch Template Version: V1.06*/ #include <Arduino.h> // Pin 22,23,24 are assigned to RGB LEDs. int led_red = 22; // LOW active int led_green = 23; // LOW active int led_blue = 24; // LOW active // the setup routine runs once when you press reset: void setup() { //setPowerManagementMode(PM_STOP_MODE, 0, 1023); //Set CPU STOP_MODE in delay() //setOperationClockMode(CLK_LOW_SPEED_MODE); //Set CPU clock from 32MHz to 32.768kHz // initialize the digital pin as an output. Serial.begin(9600); Serial.print("Temperature: "); Serial.println(getTemperature(TEMP_MODE_CELSIUS)); //temperature from the sensor in MCU pinMode(led_red, OUTPUT); pinMode(led_green, OUTPUT); pinMode(led_blue, OUTPUT); pinMode( 3, OUTPUT ); // turn the LEDs on, glow white. digitalWrite(led_red, LOW); digitalWrite(led_green, LOW); digitalWrite(led_blue, LOW); analogWriteFrequency( 4400 ); // 4400Hz analogWrite( 3, 0 ); } // the loop routine runs over and over again forever: void loop() { int val = 0xEF; long cnt = 1; for ( val=127;;) { analogWrite( 3, val ); delay( cnt ); cnt = cnt + 1; val = (val - 2); if ( val <= 0 ) break; } delay( 2000 ); analogWrite( 3, 0 ); }
GR-KURUMIのバイナリをそのまま、使えるのでしょうか?
CPUコアがGR-KURUMI搭載のRL78/G13はRL78-S2、5F10Y16ASPのRL78/G10はRL78-S1と違い、レジスタの数と命令のごく一部が違うので使えません。
Webコンパイラで使用しているコンパイラ rl78-elf-gcc にコマンドラインオプション -mg10 を指定すればRL78/G10用のコードを吐くようになりますが、その他スタートアップやリンカスクリプトはRL78/G10用に合わせて修正する必要があります。
E1との接続は、『RL78/G10 ユーザーズマニュアル ハードウェア編』の「21. 1 E1オンチップ・デバッギング・エミュレータとの接続」に書かれており、(株)北斗電子から接続に便利な市販品も出ているようです(買ったけど使ってない)。他、コミュニティにある『GR-KURUMIとE1接続』や『GR-KURUMIとE1,E20接続コネクタ』等の記事も参考になるかもしれません。
秋月で販売されてるこれやこれは搭載されてるフラッシュROMが2kBしかなく(北斗電子のこれやこれは4kB)、GR-KURUMIのライブラリを利用するのはサイズ的に無理があると思われます。現在のところでは、開発ツールにはCS+を使用し、自前でポートを叩くのが現実的でしょう。かふぇルネの『サンプルプログラム等』にRL78/G10を使用した作例が複数公開されており(タイトルにRL78/G10と書かれていないので判り辛い)、参考になると思います。
レス有難うございます。
なんとも、G13の10pin版が欲しいですね。結局、G10用に作り直すということになるのですね。PICを置き換えようかと考えてましたが、G10の10pinでも、PWMは1チャネルあるので、そんなに大きなプログラムにはならないような気はするのだけど、そのままPICを使った方が、よさそうですね(;^ω^)
RL78/G10の書き込みプロトコルについてはかふぇルネの
『RL78/G10 のフラッシュプログラミング』
『RL78/G10の外部UARTによる書き込み』
この辺で語られてますが追って検証も可能だと思います。細かいところは Renesas Flash Programmer の信号を確認することになるでしょう。ルネサスから資料が出てくるのはちょっと期待できない感じですね。
確認の結果、E20の場合、秋月の回路図に、外部電源を加えるだけで、良いそうです。
akizukidenshi.com/.../k8780_r5f10y16_E1_kakikomi_kairo.pdf
なんと、これによると、GR-KURUMIのライターツールの改造でも対応可能な感じですね。
GR-KURUMIのライターツールの改造でも対応可能な感じ
Kurumi Writerの改良を考えているのでついでにやるかなとか思っています。
そうであれば、期待してます。
Renesas Flash Programmer が使えるんならとりあえずのところはプライオリティは低めです。
Renesas Flash Programmer は
この辺が我慢できれば問題なく、何といっても純正ツールなので書き込みプロトコルを解析してデッチ上げた怪しいシロモノとは比較にならんので。
秋月の回路図通りに作ったはずなのですが、今、外部電源で5V加えると、チップが高熱になる症状をくらってます。
「秋月の回路図通りに作ったはずなのですが、今、外部電源で5V加えると、チップが高熱になる症状をくらってます。」
お騒がせしました。私のチョンボでした。チップを逆差しして壊したようです。とりあえず、CS+とRenesas Flash Programmer V2.05(フリー版)からE20経由で接続に成功しました。
お、繋がりましたか。おめでとうございます。
youtu.be/XPbsC7lPlnA
E20経由で、書き込んだサンプルプログラムも正常動作しました。
秋月の10ピンDIP変換ボードだと、PWM出力のP04が、pin10に割り当てってるんで、1と10を削って8ピンに収めるのができないことも判明。
PWMの周波数を変えてみました。風鈴音源も作れそうですね。
動作の様子
ダメ押しで、音量をビットシフト演算で減音するようにしてみました。しかし、アセンブラいじるのは、20年ぶりでしょうかね
音量をビットシフト演算で減音するようにしてみました。
デューティー比を変えて音量を減衰してる風ですかね? イイ感じになってますね。
はい、デューティー比を変えて音量を減衰してます。さらに、P00のINTP1の割り込みで、音が鳴るようにしてみました。これで、やっつけ改造( documentation.renesas.com/.../r01an1458jj0200_rl78g10.pdf )ですが、風鈴音源としては、一通り完成です。
youtu.be/NNT46DOOjoc
結局、pin10, pin6, pin 5, pin4を使うので、10ピンソケットが必要みたいです。
アセンブラのプログラムの修正部分もここに掲載しておきたいけど、許可を得ないと転載禁止なので、保留しときます。
秋月から16ピンの製品も出たみたいですね。
http://akizukidenshi.com/catalog/g/gK-09035/
まあ以前から北斗電子からほぼ同等の製品も出ていたわけだけども。
http://www.hokutodenshi.co.jp/7/HSB78G10_16.htm
あるいは純正(?)でこんなのもあったみたい(どこで買えんの??)。
http://japan.renesas.com/products/tools/introductory_tools/cpu_board/rte510y470tgb00000r/index.jsp
秋月のは秋葉原の店頭でホイホイ気軽に買えるというのがメリット大きそうですね。
RL78/G10(10pin)で作った風鈴音源を、試しに、ガイガー風鈴で採用した電子基板を注文してみました。
twitter.com/.../1
来週後半に届く予定。初めての電子基板外注で、うまくできてるかは、届いてからのお楽しみ。ピンホールの穴サイズが一部、不安があったり。
とりあえず、届いたので、部品をはんだ付け。380Vの電圧はでることは確認。疎通テストは、
twitter.com/.../573775883611172864