fc2ブログ

LTC2642をmbedから制御

Linear Technology社のLTC2642というDACをmbedから制御させてみました。


SPIのタイミングチャートです。シンプルなので、他のデバイスでも、使えると思います。

DACからは、Sin波を出力させます。
5MHzでSPIのシリアルクロックを動作させ、予めExcelで算出した32ポイントのSin波データをSPI経由でDACに送出します。
このようなシンプルなファームだと、Sin波を約6KHzくらいで出力させることができました。

ソースを掲載させて頂きます。


#include "mbed.h"
#include "TextLCD.h"

SPI spi(p5, p6, p7); // mosi, miso, sclk
DigitalOut cs(p8);
DigitalOut myled(LED1);
TextLCD lcd(p24, p26, p27, p28, p29, p30);

int main() {

int ii;
lcd.printf("SineWave\n" );

lcd.locate(0,1);
spi.format(16,0);
spi.frequency(5000000);

while (1) {

uint16_t Sin_Out1[]={0x7FFF,0x98F4,0xB0F4,0xC713,0xDA77,0xEA62,0xF638,0xFD83,0xFFFD,0xFD8E,0xF64C,0xEA7F,0xDA9C,0xC73E,0xB124,0x9927,0x8033,0x673C,0x4F39,0x3916,0x25AB,0x15B8,0x9D9,0x0284,0x0000,0x0265,0x099D,0x1561,0x253C,0x3894,0x4EA9,0x66A3};

for (ii=0;ii<32;ii++) {
cs = 0;
spi.write(Sin_Out1[ii]);
cs = 1;
myled = ~myled;
}
}
}



<考察>
今回は、SPIクロックを5MHzで動作させています。10MHzくらいまで上げれば、10KHzくらいでSIN波を出力出来そうですよ。

お仕事でも、ホビーでも、mbed大活躍ですね。









コメント

非公開コメント