attempt at getting ams to work
This commit is contained in:
parent
111e8a6fe4
commit
4f3e76ae94
@ -226,7 +226,7 @@
|
|||||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||||
</cconfiguration>
|
</cconfiguration>
|
||||||
</storageModule>
|
</storageModule>
|
||||||
<storageModule moduleId="com.silabs.ss.framework.ide.project.core.cpp" project.generation="74" projectCommon.boardIds="brd2500a:0.0.0" projectCommon.buildArtifactType="EXE" projectCommon.importModeId="COPY" projectCommon.partId="mcu.arm.efm32.pg1.efm32pg1b200f256gm48" projectCommon.sdkId="com.silabs.sdk.stack.super:1.1.1._310456152"/>
|
<storageModule moduleId="com.silabs.ss.framework.ide.project.core.cpp" project.generation="126" projectCommon.boardIds="brd2500a:0.0.0" projectCommon.buildArtifactType="EXE" projectCommon.importModeId="COPY" projectCommon.partId="mcu.arm.efm32.pg1.efm32pg1b200f256gm48" projectCommon.sdkId="com.silabs.sdk.stack.super:1.1.1._310456152"/>
|
||||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||||
<project id="EFM32.com.silabs.ss.framework.ide.project.core.cdt.cdtMbsProjectType.1696568425" name="SLS CDT Project" projectType="com.silabs.ss.framework.ide.project.core.cdt.cdtMbsProjectType"/>
|
<project id="EFM32.com.silabs.ss.framework.ide.project.core.cdt.cdtMbsProjectType.1696568425" name="SLS CDT Project" projectType="com.silabs.ss.framework.ide.project.core.cdt.cdtMbsProjectType"/>
|
||||||
</storageModule>
|
</storageModule>
|
||||||
|
@ -20,7 +20,11 @@
|
|||||||
<property object="PA1" propertyId="ports.settings.pulldirection" value="Pullup"/>
|
<property object="PA1" propertyId="ports.settings.pulldirection" value="Pullup"/>
|
||||||
<property object="PA1" propertyId="ports.settings.pullup" value="Enabled"/>
|
<property object="PA1" propertyId="ports.settings.pullup" value="Enabled"/>
|
||||||
<property object="PA3" propertyId="ports.settings.pinmode" value="Push-pull"/>
|
<property object="PA3" propertyId="ports.settings.pinmode" value="Push-pull"/>
|
||||||
|
<property object="PA4" propertyId="ports.settings.dout" value="1"/>
|
||||||
|
<property object="PA4" propertyId="ports.settings.filter" value="Enabled"/>
|
||||||
<property object="PA4" propertyId="ports.settings.pinmode" value="Wired-and pullup filter"/>
|
<property object="PA4" propertyId="ports.settings.pinmode" value="Wired-and pullup filter"/>
|
||||||
|
<property object="PA4" propertyId="ports.settings.pulldirection" value="Pullup"/>
|
||||||
|
<property object="PA4" propertyId="ports.settings.pullup" value="Enabled"/>
|
||||||
<property object="PA5" propertyId="ports.settings.dout" value="1"/>
|
<property object="PA5" propertyId="ports.settings.dout" value="1"/>
|
||||||
<property object="PA5" propertyId="ports.settings.filter" value="Enabled"/>
|
<property object="PA5" propertyId="ports.settings.filter" value="Enabled"/>
|
||||||
<property object="PA5" propertyId="ports.settings.pinmode" value="Push-pull"/>
|
<property object="PA5" propertyId="ports.settings.pinmode" value="Push-pull"/>
|
||||||
@ -66,7 +70,16 @@
|
|||||||
<property object="PD15" propertyId="ports.settings.pinmode" value="Push-pull"/>
|
<property object="PD15" propertyId="ports.settings.pinmode" value="Push-pull"/>
|
||||||
<property object="PD15" propertyId="ports.settings.pulldirection" value="Pullup"/>
|
<property object="PD15" propertyId="ports.settings.pulldirection" value="Pullup"/>
|
||||||
<property object="PD15" propertyId="ports.settings.pullup" value="Enabled"/>
|
<property object="PD15" propertyId="ports.settings.pullup" value="Enabled"/>
|
||||||
|
<property object="PF2" propertyId="ports.settings.dout" value="1"/>
|
||||||
|
<property object="PF2" propertyId="ports.settings.filter" value="Enabled"/>
|
||||||
|
<property object="PF2" propertyId="ports.settings.pinmode" value="Push-pull"/>
|
||||||
|
<property object="PF2" propertyId="ports.settings.pulldirection" value="Pullup"/>
|
||||||
|
<property object="PF2" propertyId="ports.settings.pullup" value="Enabled"/>
|
||||||
|
<property object="PF3" propertyId="ports.settings.dout" value="1"/>
|
||||||
|
<property object="PF3" propertyId="ports.settings.filter" value="Enabled"/>
|
||||||
<property object="PF3" propertyId="ports.settings.pinmode" value="Wired-and pullup filter"/>
|
<property object="PF3" propertyId="ports.settings.pinmode" value="Wired-and pullup filter"/>
|
||||||
|
<property object="PF3" propertyId="ports.settings.pulldirection" value="Pullup"/>
|
||||||
|
<property object="PF3" propertyId="ports.settings.pullup" value="Enabled"/>
|
||||||
<property object="PF4" propertyId="ports.settings.pinmode" value="Push-pull"/>
|
<property object="PF4" propertyId="ports.settings.pinmode" value="Push-pull"/>
|
||||||
<property object="PF5" propertyId="ports.settings.pinmode" value="Push-pull"/>
|
<property object="PF5" propertyId="ports.settings.pinmode" value="Push-pull"/>
|
||||||
<property object="PF6" propertyId="ports.settings.dout" value="1"/>
|
<property object="PF6" propertyId="ports.settings.dout" value="1"/>
|
||||||
|
@ -25,6 +25,7 @@ void printing_init();
|
|||||||
#define TEST
|
#define TEST
|
||||||
#define TEST_POWER
|
#define TEST_POWER
|
||||||
|
|
||||||
|
// GPIO assignments
|
||||||
|
#define NFC_DEV_SS gpioPortF,2
|
||||||
|
|
||||||
#endif /* SRC_APP_H_ */
|
#endif /* SRC_APP_H_ */
|
||||||
|
@ -626,7 +626,7 @@ extern void PORTIO_enter_DefaultMode_from_RESET(void) {
|
|||||||
GPIO_PinModeSet(gpioPortA, 3, gpioModePushPull, 0);
|
GPIO_PinModeSet(gpioPortA, 3, gpioModePushPull, 0);
|
||||||
|
|
||||||
/* Pin PA4 is configured to Open-drain with pull-up and filter */
|
/* Pin PA4 is configured to Open-drain with pull-up and filter */
|
||||||
GPIO_PinModeSet(gpioPortA, 4, gpioModeWiredAndPullUpFilter, 0);
|
GPIO_PinModeSet(gpioPortA, 4, gpioModeWiredAndPullUpFilter, 1);
|
||||||
|
|
||||||
/* Pin PA5 is configured to Push-pull */
|
/* Pin PA5 is configured to Push-pull */
|
||||||
GPIO_PinModeSet(gpioPortA, 5, gpioModePushPull, 1);
|
GPIO_PinModeSet(gpioPortA, 5, gpioModePushPull, 1);
|
||||||
@ -670,8 +670,11 @@ extern void PORTIO_enter_DefaultMode_from_RESET(void) {
|
|||||||
|
|
||||||
// $[Port F Configuration]
|
// $[Port F Configuration]
|
||||||
|
|
||||||
|
/* Pin PF2 is configured to Push-pull */
|
||||||
|
GPIO_PinModeSet(gpioPortF, 2, gpioModePushPull, 1);
|
||||||
|
|
||||||
/* Pin PF3 is configured to Open-drain with pull-up and filter */
|
/* Pin PF3 is configured to Open-drain with pull-up and filter */
|
||||||
GPIO_PinModeSet(gpioPortF, 3, gpioModeWiredAndPullUpFilter, 0);
|
GPIO_PinModeSet(gpioPortF, 3, gpioModeWiredAndPullUpFilter, 1);
|
||||||
|
|
||||||
/* Pin PF4 is configured to Push-pull */
|
/* Pin PF4 is configured to Push-pull */
|
||||||
GPIO_PinModeSet(gpioPortF, 4, gpioModePushPull, 0);
|
GPIO_PinModeSet(gpioPortF, 4, gpioModePushPull, 0);
|
||||||
|
@ -18,7 +18,6 @@
|
|||||||
#include "nfc.h"
|
#include "nfc.h"
|
||||||
#include "app.h"
|
#include "app.h"
|
||||||
|
|
||||||
#define NT3H2111_ADDR 0xAA
|
|
||||||
|
|
||||||
I2C_TransferReturn_TypeDef I2CSPM_Transfer(I2C_TypeDef *i2c, I2C_TransferSeq_TypeDef *seq)
|
I2C_TransferReturn_TypeDef I2CSPM_Transfer(I2C_TypeDef *i2c, I2C_TransferSeq_TypeDef *seq)
|
||||||
{
|
{
|
||||||
@ -26,6 +25,7 @@ I2C_TransferReturn_TypeDef I2CSPM_Transfer(I2C_TypeDef *i2c, I2C_TransferSeq_Typ
|
|||||||
uint32_t timeout = 10000;
|
uint32_t timeout = 10000;
|
||||||
/* Do a polled transfer */
|
/* Do a polled transfer */
|
||||||
ret = I2C_TransferInit(i2c, seq);
|
ret = I2C_TransferInit(i2c, seq);
|
||||||
|
|
||||||
while (ret == i2cTransferInProgress && timeout--)
|
while (ret == i2cTransferInProgress && timeout--)
|
||||||
{
|
{
|
||||||
ret = I2C_Transfer(i2c);
|
ret = I2C_Transfer(i2c);
|
||||||
@ -36,7 +36,7 @@ I2C_TransferReturn_TypeDef I2CSPM_Transfer(I2C_TypeDef *i2c, I2C_TransferSeq_Typ
|
|||||||
// data must be 16 bytes
|
// data must be 16 bytes
|
||||||
void read_block(uint8_t block, uint8_t * data)
|
void read_block(uint8_t block, uint8_t * data)
|
||||||
{
|
{
|
||||||
uint8_t addr = NT3H2111_ADDR;
|
uint8_t addr = NFC_DEV_ADDR;
|
||||||
I2C_TransferSeq_TypeDef seq;
|
I2C_TransferSeq_TypeDef seq;
|
||||||
I2C_TransferReturn_TypeDef ret;
|
I2C_TransferReturn_TypeDef ret;
|
||||||
uint8_t i2c_read_data[16];
|
uint8_t i2c_read_data[16];
|
||||||
@ -64,7 +64,7 @@ void read_block(uint8_t block, uint8_t * data)
|
|||||||
// data must be 16 bytes
|
// data must be 16 bytes
|
||||||
void write_block(uint8_t block, uint8_t * data)
|
void write_block(uint8_t block, uint8_t * data)
|
||||||
{
|
{
|
||||||
uint8_t addr = NT3H2111_ADDR;
|
uint8_t addr = NFC_DEV_ADDR;
|
||||||
I2C_TransferSeq_TypeDef seq;
|
I2C_TransferSeq_TypeDef seq;
|
||||||
I2C_TransferReturn_TypeDef ret;
|
I2C_TransferReturn_TypeDef ret;
|
||||||
uint8_t i2c_write_data[1 + 16];
|
uint8_t i2c_write_data[1 + 16];
|
||||||
@ -90,7 +90,7 @@ void write_block(uint8_t block, uint8_t * data)
|
|||||||
|
|
||||||
void write_reg_flash(uint8_t reg_addr, uint8_t mask,uint8_t data)
|
void write_reg_flash(uint8_t reg_addr, uint8_t mask,uint8_t data)
|
||||||
{
|
{
|
||||||
uint8_t addr = NT3H2111_ADDR;
|
uint8_t addr = NFC_DEV_ADDR;
|
||||||
I2C_TransferSeq_TypeDef seq;
|
I2C_TransferSeq_TypeDef seq;
|
||||||
I2C_TransferReturn_TypeDef ret;
|
I2C_TransferReturn_TypeDef ret;
|
||||||
uint8_t i2c_write_data[4];
|
uint8_t i2c_write_data[4];
|
||||||
@ -116,7 +116,7 @@ void write_reg_flash(uint8_t reg_addr, uint8_t mask,uint8_t data)
|
|||||||
}
|
}
|
||||||
void write_reg(uint8_t reg_addr, uint8_t mask,uint8_t data)
|
void write_reg(uint8_t reg_addr, uint8_t mask,uint8_t data)
|
||||||
{
|
{
|
||||||
uint8_t addr = NT3H2111_ADDR;
|
uint8_t addr = NFC_DEV_ADDR;
|
||||||
I2C_TransferSeq_TypeDef seq;
|
I2C_TransferSeq_TypeDef seq;
|
||||||
I2C_TransferReturn_TypeDef ret;
|
I2C_TransferReturn_TypeDef ret;
|
||||||
uint8_t i2c_write_data[4];
|
uint8_t i2c_write_data[4];
|
||||||
@ -145,16 +145,16 @@ uint8_t read_reg(uint8_t reg_addr)
|
|||||||
{
|
{
|
||||||
I2C_TransferSeq_TypeDef seq;
|
I2C_TransferSeq_TypeDef seq;
|
||||||
I2C_TransferReturn_TypeDef ret;
|
I2C_TransferReturn_TypeDef ret;
|
||||||
uint8_t write_data[2];
|
uint8_t write_data[1];
|
||||||
uint8_t read_data[1];
|
uint8_t read_data[1];
|
||||||
|
|
||||||
seq.addr = NT3H2111_ADDR;
|
seq.addr = NFC_DEV_ADDR;
|
||||||
seq.flags = I2C_FLAG_WRITE_READ;
|
seq.flags = I2C_FLAG_WRITE_READ;
|
||||||
write_data[0] = 0xFE;
|
write_data[0] = (0x1f & reg_addr) | (0x20);
|
||||||
write_data[1] = reg_addr;
|
printf("mode: 0x%x = 0x%02x\n",NFC_DEV_ADDR, (int)write_data[0]);
|
||||||
|
|
||||||
seq.buf[0].data = write_data;
|
seq.buf[0].data = write_data;
|
||||||
seq.buf[0].len = 2;
|
seq.buf[0].len = 1;
|
||||||
seq.buf[1].data = read_data;
|
seq.buf[1].data = read_data;
|
||||||
seq.buf[1].len = 1;
|
seq.buf[1].len = 1;
|
||||||
|
|
||||||
@ -168,15 +168,19 @@ uint8_t read_reg(uint8_t reg_addr)
|
|||||||
return read_data[0];
|
return read_data[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// data must be 17 bytes long
|
||||||
void read_reg_block(uint8_t * data)
|
void read_reg_block(uint8_t * data)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < 7; i++)
|
for (i = 0; i < 15; i++)
|
||||||
{
|
{
|
||||||
|
|
||||||
*data = read_reg(i);
|
*data = read_reg(i);
|
||||||
// printf("data %d: %x\n" ,i,(int)(*data));
|
printf("data %d: %x\n" ,i,(int)(*data));
|
||||||
data++;
|
data++;
|
||||||
}
|
}
|
||||||
|
*data++ = read_reg(0x1E);
|
||||||
|
*data++ = read_reg(0x1F);
|
||||||
}
|
}
|
||||||
#define NS_REG_ADDR 6
|
#define NS_REG_ADDR 6
|
||||||
typedef enum{
|
typedef enum{
|
||||||
@ -204,7 +208,7 @@ typedef struct {
|
|||||||
|
|
||||||
void nfc_test()
|
void nfc_test()
|
||||||
{
|
{
|
||||||
uint8_t data[16];
|
uint8_t data[17];
|
||||||
uint8_t ns_reg;
|
uint8_t ns_reg;
|
||||||
uint8_t last_ns_reg;
|
uint8_t last_ns_reg;
|
||||||
// magic-number,
|
// magic-number,
|
||||||
@ -214,6 +218,26 @@ void nfc_test()
|
|||||||
|
|
||||||
printf("-NFC test-\n");
|
printf("-NFC test-\n");
|
||||||
|
|
||||||
|
GPIO_PinOutSet(NFC_DEV_SS);
|
||||||
|
delay(10);
|
||||||
|
GPIO_PinOutClear(NFC_DEV_SS);
|
||||||
|
delay(10);
|
||||||
|
|
||||||
|
read_reg_block(data);
|
||||||
|
|
||||||
|
printf("regs:\n");
|
||||||
|
dump_hex(data,17);
|
||||||
|
|
||||||
|
while(1)
|
||||||
|
;
|
||||||
|
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
delay(1090);
|
||||||
|
read_reg_block(data);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
//
|
//
|
||||||
////
|
////
|
||||||
|
Loading…
x
Reference in New Issue
Block a user