Fork

Dependencies:   mbed libscpi

Revision:
0:fe3c7dde9771
Child:
1:47cc6952e346
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Fri Dec 04 14:23:17 2020 +0000
@@ -0,0 +1,111 @@
+#include "mbed.h"
+#include "i2c_mbed_fpga.h"
+//#include "serial_fsm.h"
+
+/*Digital outputs*/
+DigitalOut led1(LED1);
+DigitalOut led2(LED2);
+DigitalOut led3(LED3);
+DigitalOut led4(LED4);
+DigitalOut fpga_rstb(p21);   //p21 of MBED is connectted to p4 of the FPGA CMOD for 90415FPGA_EVB2
+
+/*Creat serial port to coummunicate with pc*/
+Serial pc(USBTX, USBRX);
+
+///*Creat I2C master*/
+I2C i2c_master(p9, p10);
+
+void serial_init(){
+    pc.format(8, SerialBase::None, 1);
+    pc.baud(38400);
+}
+
+void i2c_init(){
+    i2c_master.frequency(350000);
+}
+
+void main_init(){
+    led1 = 1;
+    led2 = 0;
+    led3 = 0;
+    led4 = 0;
+
+    fpga_rstb = 0;
+    
+    i2c_init();
+    serial_init();
+    
+    i2c_master.start();
+    
+    pc.printf("Mbed is ready!");
+}
+
+/* Main function */
+int main() {
+    
+    char i2cTest[4] = {0x13, 0x8a, 0xac, 0x35};
+    char buff[4];
+    int ack;
+        
+    main_init();
+    
+    while (1) {
+        char c = pc.getc();
+        if(c=='s'){
+            fpga_rstb = 0;   //reset FPGA
+            wait_ms(10);
+            fpga_rstb = 1;   //enable FPGA
+            wait_ms(10);
+            //i2c_keyEntry(i2c_master);
+            ack+=i2c_word_write(i2c_master,i2cTest);
+            wait_ms(10);
+            ack+=i2c_word_read(i2c_master,buff);
+            led1 = ack;
+            pc.printf(buff);
+        }
+        if(c=='t'){
+            fpga_rstb = 0;   //disable FPGA
+            led1 = 0;
+            
+        }       
+    }
+
+    
+    
+//    fpga_rstb.write(1);
+//    
+//    wait_us(10000);  //10ms
+//    
+////    i2c_master.start();
+////    wait_ms(200);
+////    i2c_master.stop();
+//    
+//    ack+=i2c_keyEntry(i2c_master);
+//        
+//    //ack+=ctrPort_ReadActive(i2c_master);
+//    buff[0] = 0x00;
+//    buff[1] = 0x30;
+//    buff[2] = 0x00;
+//    buff[3] = 0x01;
+//    
+//    ack+=i2c_word_write(i2c_master, buff);
+//    buff[0] = 0x00;
+//    buff[1] = 0x0A;
+//    buff[2] = 0x00;
+//    buff[3] = 0x00;
+//    
+//    ack+=i2c_word_read(i2c_master, buff);
+//    
+//    wait_us(100);
+//    
+//    pc.printf("d[0]=%2d\n", buff[3]);
+//    pc.printf("d[1]=%2d\n", buff[2]);
+//    pc.printf("ack=%2d\n", ack);
+//    pc.printf("endl\n");
+//   
+//    
+//    while (1) {
+//        led1 = !led1;
+//        wait(1);
+//    }
+}
\ No newline at end of file