mille feuille / DAmoduleLPC1114

DAmoduleLPC1114

(日本語は英語の次に書いてあります。)

This library is for MCU Gear 12bit DA module with LPC1114FN28. You do not need thik about wiring to DA module. It contain wiring setting function.

http://www.mcugear.com/en/

How to use it?

include

#include "mbed.h"

#include "MCUGearBaseALPC1114.h"
#include "MCUGearALPC1114.h"
#include "commonALPC1114.h"

#include "DAmoduleLPC1114.h"

You need SPI bus, cs pin, dout1 pin and I2C bus.

bus

SPI spi(dp2, dp1, dp6); // mosi, miso, sclk
DigitalOut cs(dp25); //for SPI communications
DigitalOut Dout1(dp26);

make MCU Gear instance.

MCU Gear instance

MCUGear DAM(dp5, dp27, N_SCL_SCL_SCL);        //DA Module

Save location data in the instance.

DAmodule instance

    DAM.detectModule();    //save location data in MCUGear class.

make DAmodule instance.

DAmodule instance

    DAmodule myDA(spi,dp25,dp26,&DAM); //make instance for DA module

There are 2 type of DA function. These are same operation,

1, separately connect (you can check the operation separately.)

1, separately connect

        myDA.initDA(&DAM);
        DAM.connectModuleA();
        myDA.writeDAm(&DAM, data);
        DAM.disconnectModule();

2, automatically connect (same as separately connect )

1, manually connect

        myDA.writeDAa(&DAM, data);

The sample progarm is here.

sample

#include "mbed.h"

#include "MCUGearBaseALPC1114.h"
#include "MCUGearALPC1114.h"
#include "commonALPC1114.h"

#include "DAmoduleLPC1114.h"

Serial pc(dp16, dp15); // tx, rx
SPI spi(dp2, dp1, dp6); // mosi, miso, sclk
DigitalOut cs(dp25); //for SPI communications

MCUGear DAM(dp5, dp27, N_SCL_SCL_SCL);        //DA Module

//output pins = P0_3, P0_7, P0_11, P1_0, P1_1, P1_2, P1_4, P1_5
DigitalOut Dout1(dp26);
DigitalOut Dout2(dp28);
DigitalOut Dout3(dp4);
DigitalOut Dout4(dp9);
DigitalOut Dout5(dp10);
DigitalOut Dout6(dp11);
DigitalOut Dout7(dp14);
DigitalOut Dout8(dp15);

//inputpins = P1_8, P1_9
DigitalIn Din1(dp17);
DigitalIn Din2(dp18);

int main() {
    
    pc.printf("Hello World!\r\n");
        
    wait(1);
    
    initBase(); //initialize Baseboard
    
    DAM.detectModule();    //save location data in MCUGear class.
    DAmodule myDA(spi,dp25,dp26,&DAM); //make instance for DA module
    
    int data = 0x00;
    int pm = 1;
    while(1) {

        //automatically connect
        myDA.writeDAa(&DAM, data);  //automatically initDA(), connectA() and disconnect()
        
        data = data + 10 * pm;
        wait(0.001);
        
        if(data > 0xfff){
            data = 0xfff;
            pm = -1;
            
        }else if(data < 0){
            data = 0;
            pm = 1;
            
        }

    }
}

このライブラリはMCU Gear の12bit DA モジュールをLPC1114で使用する場合のライブラリです。 ライブラリの中に配線情報が入っているため、回路に差し込むだけで簡単に使用できます。

http://www.mcugear.com/

使い方

include

#include "mbed.h"

#include "MCUGearBaseALPC1114.h"
#include "MCUGearALPC1114.h"
#include "commonALPC1114.h"

#include "DAmoduleLPC1114.h"

SPI、cs, dout1 , I2Cを準備します。

bus

SPI spi(dp2, dp1, dp6); // mosi, miso, sclk
DigitalOut cs(dp25); //for SPI communications
DigitalOut Dout1(dp26);

MCU Gear のインスタンスを作ります。

MCU Gear instance

MCUGear DAM(dp5, dp27, N_SCL_SCL_SCL);        //DA Module

次に接続位置を保存します。

Save location data

    DAM.detectModule();    //save location data in MCUGear class.

DAモジュール のインスタンスを作り先ほどのインスタンスに渡します。

DAmodule instance

    DAmodule myDA(spi,dp25,dp26,&DAM); //make instance for DA module

ライブラリには2つの種類がありますが、処理をバラバラに行いたい場合と、まとめて一行で行いたい場合とで使い分けてください。 結果は同じものです。

1, separately connect (you can check the operation separately.)

1, separately connect

        myDA.initDA(&DAM);
        DAM.connectModuleA();
        myDA.writeDAm(&DAM, data);
        DAM.disconnectModule();

2, automatically connect (same as separately connect )

1, manually connect

        myDA.writeDAa(&DAM, data);

以下、サンプルプログラムです。

sample

#include "mbed.h"

#include "MCUGearBaseALPC1114.h"
#include "MCUGearALPC1114.h"
#include "commonALPC1114.h"

#include "DAmoduleLPC1114.h"

Serial pc(dp16, dp15); // tx, rx
SPI spi(dp2, dp1, dp6); // mosi, miso, sclk
DigitalOut cs(dp25); //for SPI communications

MCUGear DAM(dp5, dp27, N_SCL_SCL_SCL);        //DA Module

//output pins = P0_3, P0_7, P0_11, P1_0, P1_1, P1_2, P1_4, P1_5
DigitalOut Dout1(dp26);
DigitalOut Dout2(dp28);
DigitalOut Dout3(dp4);
DigitalOut Dout4(dp9);
DigitalOut Dout5(dp10);
DigitalOut Dout6(dp11);
DigitalOut Dout7(dp14);
DigitalOut Dout8(dp15);

//inputpins = P1_8, P1_9
DigitalIn Din1(dp17);
DigitalIn Din2(dp18);

int main() {
    
    pc.printf("Hello World!\r\n");
        
    wait(1);
    
    initBase(); //initialize Baseboard
    
    DAM.detectModule();    //save location data in MCUGear class.
    DAmodule myDA(spi,dp25,dp26,&DAM); //make instance for DA module
    
    int data = 0x00;
    int pm = 1;
    while(1) {

        myDA.writeDAa(&DAM, data);  //automatically initDA(), connectA() and disconnect()
        
        data = data + 10 * pm;
        wait(0.001);
        
        if(data > 0xfff){
            data = 0xfff;
            pm = -1;
            
        }else if(data < 0){
            data = 0;
            pm = 1;
            
        }

    }
}

All wikipages