Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
LAN925X_SPI.cpp
00001 #include "LAN925X_SPI.h" 00002 #include <stdint.h> 00003 00004 #include "mbed.h" 00005 //********************************************************************// 00006 // HardWare Interface 00007 //********************************************************************// 00008 00009 #define SPI_CS_LOW() cs = 0; 00010 #define SPI_CS_HIGH() cs = 1; 00011 00012 SPI spi(PA_7, PA_6, PA_5); // mosi, miso, sclk 00013 DigitalOut cs(PB_6); 00014 00015 void LAN925X_SPI_Init(void) 00016 { 00017 SPI_CS_HIGH(); 00018 // Setup the spi for 8 bit data, high steady state clock, 00019 // second edge capture, with a 1MHz clock rate 00020 spi.format(8,3); 00021 spi.frequency(20000000); 00022 } 00023 uint8_t SPI_8bit_Read(void) 00024 { 00025 return spi.write(0x00); 00026 } 00027 void SPI_8bit_Write(uint8_t wdata) 00028 { 00029 spi.write(wdata); 00030 } 00031 00032 void SQI_RESET(void) 00033 { 00034 //SS2_SetDigitalInput(); 00035 //while(SS2_GetValue()!=1); 00036 SPI_CS_HIGH(); 00037 SPI_CS_HIGH(); 00038 SPI_CS_HIGH(); 00039 SPI_CS_HIGH(); 00040 SPI_CS_HIGH(); 00041 SPI_CS_HIGH(); 00042 SPI_CS_HIGH(); 00043 SPI_CS_HIGH(); 00044 SPI_CS_LOW(); 00045 SPI_8bit_Write(0xFF); 00046 SPI_CS_HIGH(); 00047 } 00048 00049 00050 00051 00052 uint32_t LAN925X_SPI_READ(uint16_t addr) 00053 { 00054 uint32_t rdata; 00055 SPI_CS_LOW(); 00056 SPI_8bit_Write(0x03); //Instruction 00057 SPI_8bit_Write( 0xFF&(addr>>8) ); //Address 00058 SPI_8bit_Write( 0xFF&(addr>>0) ); //Address 00059 rdata = (uint32_t)SPI_8bit_Read(); 00060 rdata |= (uint32_t)SPI_8bit_Read()<<8; 00061 rdata |= (uint32_t)SPI_8bit_Read()<<16; 00062 rdata |= (uint32_t)SPI_8bit_Read()<<24; 00063 SPI_CS_HIGH(); 00064 return rdata; 00065 } 00066 00067 uint32_t LAN925X_SPI_WRITE(uint16_t addr,uint32_t data) 00068 { 00069 uint32_t rdata; 00070 SPI_CS_LOW(); 00071 SPI_8bit_Write(0x02); //Instruction 00072 SPI_8bit_Write( 0xFF&(addr>>8) ); //Address 00073 SPI_8bit_Write( 0xFF&(addr>>0) ); //Address 00074 SPI_8bit_Write( 0xFF&(data>>0) ); 00075 SPI_8bit_Write( 0xFF&(data>>8) ); 00076 SPI_8bit_Write( 0xFF&(data>>16) ); 00077 SPI_8bit_Write( 0xFF&(data>>24) ); 00078 SPI_CS_HIGH(); 00079 return rdata; 00080 } 00081
Generated on Fri Jul 15 2022 00:02:54 by
