Si5351Aを使用したクロックジェネレータ1MHzから1MHz単位で任意のパルスを出力できる。出力電圧はLM317で変更可能
Dependencies: ACM1602NI DigitalSw Si5351A mbed
Revision 0:443d2954b3c3, committed 2017-06-19
- Comitter:
- suupen
- Date:
- Mon Jun 19 11:09:29 2017 +0000
- Commit message:
- ??;
Changed in this revision
diff -r 000000000000 -r 443d2954b3c3 ACM1602NI.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ACM1602NI.lib Mon Jun 19 11:09:29 2017 +0000 @@ -0,0 +1,1 @@ +http://developer.mbed.org/users/takuo/code/ACM1602NI/#661827681a12
diff -r 000000000000 -r 443d2954b3c3 DigitalSw.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DigitalSw.lib Mon Jun 19 11:09:29 2017 +0000 @@ -0,0 +1,1 @@ +http://developer.mbed.org/users/suupen/code/DigitalSw/#9198c5c0afcb
diff -r 000000000000 -r 443d2954b3c3 Si5351A.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Si5351A.lib Mon Jun 19 11:09:29 2017 +0000 @@ -0,0 +1,1 @@ +http://developer.mbed.org/users/kenjiArai/code/Si5351A/#af2d99cfb3f0
diff -r 000000000000 -r 443d2954b3c3 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Mon Jun 19 11:09:29 2017 +0000 @@ -0,0 +1,76 @@ +#include "mbed.h" +#include "ACM1602NI.h" //https://developer.mbed.org/users/takuo/code/ACM1602NI/docs/661827681a12/classACM1602NI.html +#include "DigitalSw.h" +#include "si5351a.h" //https://developer.mbed.org/users/kenjiArai/code/Si5351A/file/af2d99cfb3f0/si5351a.cpp + +//#define LPC1114 +/* +#ifdef LPC1114 +I2C i2c(dp5, dp27); // sda, scl +#else +I2C i2c(p9, p10); +#endif +*/ + + // I2C pins: p9 = sda, p10 = scl +ACM1602NI lcd(p9, p10); // (sda, scl) +// ACM1602NI lcd(p28, p27); // (sda, scl) + +// Vout mesure +AnalogIn Vout(p20); + +//************************************************************** +// Si5351a +SI5351A clk(p28, p27, 25000000UL); // Base clock = 25MHz + + // Digital Sw +#ifdef LPC1114 + DigitalSw upSw(dp18); + DigitalSw downSw(dp17); + DigitalSw startSw(dp16); +#else + DigitalSw upSw(p18); + DigitalSw downSw(p17); + DigitalSw startSw(p15); +#endif + + int16_t frequency = 1; + +DigitalOut myled(LED1); + +void swProcess(void) +{ + if(upSw.getOnEdge() == 1){ + if(frequency < 50){frequency++;} + clk.set_frequency(SI5351_CLK0, frequency * 1000000); + + } + + if(downSw.getOnEdge() == 1){ + if(frequency > 1){frequency--;} + clk.set_frequency(SI5351_CLK0, frequency * 1000000); + } + + if(startSw.getOnEdge() == 1){ + frequency = 25; + clk.set_frequency(SI5351_CLK0, frequency * 1000000); + } + +} + + +int main() { + clk.set_frequency(SI5351_CLK0, frequency * 1000000); + + while(1) { + + swProcess(); + + lcd.printf("Vout = %3.2f [V]\n", Vout * 3.3); + lcd.printf("%2d [MHz]\n",frequency); + myled = 1; + wait(0.2); + myled = 0; + wait(0.2); + } +}
diff -r 000000000000 -r 443d2954b3c3 mbed.bld --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Mon Jun 19 11:09:29 2017 +0000 @@ -0,0 +1,1 @@ +https://mbed.org/users/mbed_official/code/mbed/builds/0f02307a0877 \ No newline at end of file