Yet another implementation of wave function generator

Dependencies:   mbed vt100

A function generator implemented using DAC of KL25Z on FRDM-KL25Z
On 13-Dec-2015 Support for FRDM-K64F added.

Kinetis の DAC を使用したファンクションジェネレータ(以下funcgen)です。
13-Dec-2015 FRDM-K64F のサポートも追加しました。


Generates a 1KHz sin wave of 3.0V (p-p) when started.

The analog signal output is analogOut (PTE30), for the GND I was using GND of J2.

起動直後には 1KHz 3V(p-p) のサイン波を生成しています。

アナログ信号は PTE30 から、 GNDについては、J2 の GNDを使用しています。

This funcgen can generate multiple sin, saw, sqr, tri waves in different freq, amp simultaneously.
All the waves are summed to form the output.

この funcgen では 複数の異なる周期、振幅の正弦波、のこぎり波、矩形波、三角波を同時に生成することが可能です。

For example following wave form was generated with
sin amp = 0.5V freq = 1000 Hz
sin amp = 0.5V freq = 123 Hz
sqr amp = 0.5V freq = 20 Hz
saw amp = 1.0V freq = 3Hz

サイン波 0.5V 1000Hz
サイン波 0.5V 123 Hz
矩形波 0.5V 20Hz
のこぎり波 1.0V 3Hz


Some tutorial (簡単な使い方)

When you connect a terminal program with 115200 baud, 8bit, no parity,
after reset command menu will be presented.
You may also want to enable local echo, so that you can see what you are typing.

ターミナルプログラムで 115200 baud 8bit ノーパリティで接続していると、
入力している文字が表示されるように Local Echo を有効にしておきます。


If you type "list" to the prompt, list of current wave(s) will be shown.

プロンプトに list と入力すると、現在の波形リストが表示されます。


So we can tell that 1 wave of sine whose amplitude is 3.0V
and Frequency is 1000Hz is currently running.
Please ignore duty for sin and saw waves ;-) 
The "*" letter in the left shows that this signal is currently selected for operation.

これから、1KHz 3V(p-p)の正弦波が生成されていることがわかります。

At this time the wave form would look like



If you type "amp 1" the wave form will be

ここで amp 1 と入力すると波形は下記のようになります


Next let's play with a square wave!
To remove current wave type "delete", then type "sqr 3 1000 50"
which means first delete the sin wave then add a square wave of 3V, 1KHz and duty 50%.

まず正弦波を消すのに“delete”とタイプして、次に“sqr 3 1000 50” とタイプしてください。
これは3V 1KHz デューティ50%の正弦波の追加することになります。


The wave form of Oscilloscope will be something like



Now if you type "duty 0" you will get

ここで “duty 0” と入力すると


For "duty 20" you will get

“duty 20”では


For "duty 80" you will get

"duty 80" では


And finally if you specify "duty 100", you will get

最後に“duty 100”を指定すると


This way, you can also get DC bias of this sqr wave's amplitude.


Next, let's try "tri wave", again type "delete" and "tri 3 1000 50", you will get

次に三角波行ってみましょう、再び“delete”、“tri 3 1000 50”と入力しますと


Again if we try, "duty 0", we will get

“duty 0”とすると


For "duty 20"

"duty 20" では


For "duty 80"

"duty 80" では


And finally "duty 100"

最後に "duty 100"


Please note that for the "duty 100",
the triangle wave is identical with "saw" wave,
which I noticed after implementing both of them orz

“duty 100”の三角波はのこぎり波と同じものになります。 
気が付いたのは両方の波形をプログラムしちゃってからでした・・・ orz

Multiple waves sample  複数波形の合成例

Now let's try multiple wave composition!


First let's delete the previous wave, by "delete"

最初に先の信号を"delete" で消しておきます。

Then type, "sqr 1 100 50", "sin 1 700", you will get

次に "sqr 1 100 50", "sin 1 700" とすると



And adding a saw wave by "saw 1 10" will give us

最後にのこぎり波を "saw 1 10" で追加すると


If we enter "list" command we will see

ここで list コマンドを入力すると


Note the "*" letter specify the selected wave,
so if you enter "amp", "freq", "duty", "delete" command,
it will be applied to this wave.
If you want to manipulate other wave,
use "select #" command to specify the wave you'd like to modify.
For example, if you enter "select 0" then the sqr wave at No.0 will be selected.

現在"amp", "freq", "duty", "delete" などのコマンドを入力した場合、
他の波形をモディファイしたい場合には"select #" コマンドを使用してその波形を選択してください。
たとえば "select 0" と入力すると 矩形波(sqr)が選択されることになります。