Mod for common spi routines for all protocols

This commit is contained in:
midelic 2016-07-28 03:57:52 +03:00 committed by GitHub
parent 34203fbc9a
commit 4822851993

View File

@ -24,10 +24,10 @@ void A7105_WriteData(uint8_t len, uint8_t channel)
{ {
uint8_t i; uint8_t i;
CS_off; CS_off;
A7105_Write(A7105_RST_WRPTR); spi_write(A7105_RST_WRPTR);
A7105_Write(0x05); spi_write(0x05);
for (i = 0; i < len; i++) for (i = 0; i < len; i++)
A7105_Write(packet[i]); spi_write(packet[i]);
CS_on; CS_on;
A7105_WriteReg(0x0F, channel); A7105_WriteReg(0x0F, channel);
A7105_Strobe(A7105_TX); A7105_Strobe(A7105_TX);
@ -39,64 +39,27 @@ void A7105_ReadData() {
CS_off; CS_off;
A7105_Write(0x45); A7105_Write(0x45);
for (i=0;i<16;i++) for (i=0;i<16;i++)
packet[i]=A7105_Read(); packet[i]=spi_Read();
CS_on; CS_on;
} }
void A7105_WriteReg(uint8_t address, uint8_t data) { void A7105_WriteReg(uint8_t address, uint8_t data) {
CS_off; CS_off;
A7105_Write(address); spi_write(address);
NOP(); NOP();
A7105_Write(data); spi_write(data);
CS_on; CS_on;
} }
uint8_t A7105_ReadReg(uint8_t address) { uint8_t A7105_ReadReg(uint8_t address) {
uint8_t result; uint8_t result;
CS_off; CS_off;
A7105_Write(address |=0x40); //bit 6 =1 for reading spi_write(address |=0x40); //bit 6 =1 for reading
result = A7105_Read(); result = spi_Read();
CS_on; CS_on;
return(result); return(result);
} }
void A7105_Write(uint8_t command) {
uint8_t n=8;
SCK_off;//SCK start low
SDI_off;
while(n--) {
if(command&0x80)
SDI_on;
else
SDI_off;
SCK_on;
NOP();
SCK_off;
command = command << 1;
}
SDI_on;
}
uint8_t A7105_Read(void) {
uint8_t result=0;
uint8_t i;
SDI_SET_INPUT;
for(i=0;i<8;i++) {
if(SDI_1) ///if SDIO =1
result=(result<<1)|0x01;
else
result=result<<1;
SCK_on;
NOP();
SCK_off;
NOP();
}
SDI_SET_OUTPUT;
return result;
}
//------------------------ //------------------------
void A7105_SetTxRxMode(uint8_t mode) void A7105_SetTxRxMode(uint8_t mode)
{ {
@ -131,11 +94,11 @@ uint8_t A7105_Reset()
void A7105_WriteID(uint32_t ida) { void A7105_WriteID(uint32_t ida) {
CS_off; CS_off;
A7105_Write(0x06);//ex id=0x5475c52a ;txid3txid2txid1txid0 spi_write(0x06);//ex id=0x5475c52a ;txid3txid2txid1txid0
A7105_Write((ida>>24)&0xff);//53 spi_write((ida>>24)&0xff);//53
A7105_Write((ida>>16)&0xff);//75 spi_write((ida>>16)&0xff);//75
A7105_Write((ida>>8)&0xff);//c5 spi_write((ida>>8)&0xff);//c5
A7105_Write((ida>>0)&0xff);//2a spi_write((ida>>0)&0xff);//2a
CS_on; CS_on;
} }
@ -179,7 +142,7 @@ void A7105_SetPower()
void A7105_Strobe(uint8_t address) { void A7105_Strobe(uint8_t address) {
CS_off; CS_off;
A7105_Write(address); spi_write(address);
CS_on; CS_on;
} }