Yuta Kitagami / Mbed 2 deprecated EtherCAT_Nucleo_F401

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 
00003 #include "LAN9252.h"
00004 #include "LAN925X_SPI.h"
00005 
00006 
00007 //DigitalOut myled(LED1);
00008 Serial serial(USBTX, USBRX);
00009 
00010  void UART_TX_Stringth(char S1[])
00011 {
00012     serial.printf(S1);
00013 }
00014 
00015 
00016 int main() {
00017     uint32_t rdata;
00018     uint32_t rdata_buff[100];
00019     int cnt=0;
00020     uint32_t wdata;
00021     char  S1[100];
00022     uint16_t addr=0;
00023     
00024     serial.baud(115200);
00025     UART_TX_Stringth("================================================== \n\r");
00026     UART_TX_Stringth("   EtherCAT TEST   \n\r");
00027     UART_TX_Stringth("================================================== \n\r");
00028     
00029     LAN925X_SPI_Init();
00030     // RESET
00031     //LAN9252_RESET();
00032 
00033     addr = ID_REV;
00034     rdata = LAN925X_SPI_READ(addr);
00035     sprintf(S1,"ID_REV[0x%04X]: 0x%08lX \n\r",addr,rdata);
00036     UART_TX_Stringth(S1);
00037     
00038     addr = BYTE_TEST;
00039     rdata = LAN925X_SPI_READ(addr);
00040     sprintf(S1,"BYTE_TEST[0x%04X]: 0x%08lX \n\r",addr,rdata);
00041     UART_TX_Stringth(S1);
00042     
00043     addr = FREE_RUN;
00044     rdata = LAN925X_SPI_READ(addr);
00045     sprintf(S1,"FREE_RUN[0x%04X]: 0x%08lX \n\r",addr,rdata);
00046     UART_TX_Stringth(S1);
00047 
00048         
00049     addr = Type_Register;
00050     rdata = LAN9252_EtherCAT_CSR_READ(CSR_SIZE_32bit,addr);
00051     sprintf(S1,"Type_Register[0x%04X]: 0x%08lX \n\r",addr,rdata);
00052     UART_TX_Stringth(S1);
00053     
00054     addr = Product_ID;
00055     rdata = LAN9252_EtherCAT_CSR_READ(CSR_SIZE_32bit,addr);
00056     sprintf(S1,"Product_ID[0x%04X]: 0x%08lX \n\r",addr,rdata);
00057     UART_TX_Stringth(S1);
00058 
00059     addr = Vendor_ID;
00060     rdata = LAN9252_EtherCAT_CSR_READ(CSR_SIZE_32bit,addr);
00061     sprintf(S1,"Vendor_ID[0x%04X]: 0x%08lX \n\r",addr,rdata);
00062     UART_TX_Stringth(S1);
00063 
00064     addr = Process_Data_RAM;
00065     rdata = LAN9252_EtherCAT_CSR_READ(CSR_SIZE_32bit,addr);
00066     sprintf(S1,"Process_Data_RAM[0x%04X]: 0x%08lX \n\r",addr,rdata);
00067     UART_TX_Stringth(S1);
00068     
00069     addr = RUN_LED_Override;
00070     LAN9252_EtherCAT_CSR_WRITE(CSR_SIZE_32bit,addr,1<<4 | 0x0D);
00071     cnt=0;
00072     while(1);
00073     while(1) {
00074         addr = Process_Data_RAM;
00075         rdata = LAN9252_EtherCAT_CSR_READ(CSR_SIZE_32bit,addr);
00076         rdata_buff[cnt]=rdata;
00077         if(cnt==10)
00078         {
00079          for(int i=0;i<cnt;i++)
00080          {
00081             sprintf(S1,"Process_Data_RAM[0x%04X]: 0x%08lX \n\r",i,rdata_buff[i]);
00082             UART_TX_Stringth(S1);
00083          }
00084          cnt = 0;
00085         }
00086         else
00087             cnt++;
00088         //myled = 1; // LED is ON
00089         //wait(0.05); // 200 ms
00090         //myled = 0; // LED is OFF
00091         //wait(0.05); // 1 sec
00092     }
00093 }
00094