kopia lustrzana https://github.com/solokeys/solo1
attempt at getting ams to work
rodzic
111e8a6fe4
commit
4f3e76ae94
|
@ -226,7 +226,7 @@
|
|||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
</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">
|
||||
<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>
|
||||
|
|
|
@ -20,7 +20,11 @@
|
|||
<property object="PA1" propertyId="ports.settings.pulldirection" value="Pullup"/>
|
||||
<property object="PA1" propertyId="ports.settings.pullup" value="Enabled"/>
|
||||
<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.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.filter" value="Enabled"/>
|
||||
<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.pulldirection" value="Pullup"/>
|
||||
<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.pulldirection" value="Pullup"/>
|
||||
<property object="PF3" propertyId="ports.settings.pullup" value="Enabled"/>
|
||||
<property object="PF4" 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"/>
|
||||
|
|
|
@ -25,6 +25,7 @@ void printing_init();
|
|||
#define TEST
|
||||
#define TEST_POWER
|
||||
|
||||
|
||||
// GPIO assignments
|
||||
#define NFC_DEV_SS gpioPortF,2
|
||||
|
||||
#endif /* SRC_APP_H_ */
|
||||
|
|
|
@ -626,7 +626,7 @@ extern void PORTIO_enter_DefaultMode_from_RESET(void) {
|
|||
GPIO_PinModeSet(gpioPortA, 3, gpioModePushPull, 0);
|
||||
|
||||
/* 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 */
|
||||
GPIO_PinModeSet(gpioPortA, 5, gpioModePushPull, 1);
|
||||
|
@ -670,8 +670,11 @@ extern void PORTIO_enter_DefaultMode_from_RESET(void) {
|
|||
|
||||
// $[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 */
|
||||
GPIO_PinModeSet(gpioPortF, 3, gpioModeWiredAndPullUpFilter, 0);
|
||||
GPIO_PinModeSet(gpioPortF, 3, gpioModeWiredAndPullUpFilter, 1);
|
||||
|
||||
/* Pin PF4 is configured to Push-pull */
|
||||
GPIO_PinModeSet(gpioPortF, 4, gpioModePushPull, 0);
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
#include "nfc.h"
|
||||
#include "app.h"
|
||||
|
||||
#define NT3H2111_ADDR 0xAA
|
||||
|
||||
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;
|
||||
/* Do a polled transfer */
|
||||
ret = I2C_TransferInit(i2c, seq);
|
||||
|
||||
while (ret == i2cTransferInProgress && timeout--)
|
||||
{
|
||||
ret = I2C_Transfer(i2c);
|
||||
|
@ -36,7 +36,7 @@ I2C_TransferReturn_TypeDef I2CSPM_Transfer(I2C_TypeDef *i2c, I2C_TransferSeq_Typ
|
|||
// data must be 16 bytes
|
||||
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_TransferReturn_TypeDef ret;
|
||||
uint8_t i2c_read_data[16];
|
||||
|
@ -64,7 +64,7 @@ void read_block(uint8_t block, uint8_t * data)
|
|||
// data must be 16 bytes
|
||||
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_TransferReturn_TypeDef ret;
|
||||
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)
|
||||
{
|
||||
uint8_t addr = NT3H2111_ADDR;
|
||||
uint8_t addr = NFC_DEV_ADDR;
|
||||
I2C_TransferSeq_TypeDef seq;
|
||||
I2C_TransferReturn_TypeDef ret;
|
||||
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)
|
||||
{
|
||||
uint8_t addr = NT3H2111_ADDR;
|
||||
uint8_t addr = NFC_DEV_ADDR;
|
||||
I2C_TransferSeq_TypeDef seq;
|
||||
I2C_TransferReturn_TypeDef ret;
|
||||
uint8_t i2c_write_data[4];
|
||||
|
@ -145,18 +145,18 @@ uint8_t read_reg(uint8_t reg_addr)
|
|||
{
|
||||
I2C_TransferSeq_TypeDef seq;
|
||||
I2C_TransferReturn_TypeDef ret;
|
||||
uint8_t write_data[2];
|
||||
uint8_t write_data[1];
|
||||
uint8_t read_data[1];
|
||||
|
||||
seq.addr = NT3H2111_ADDR;
|
||||
seq.addr = NFC_DEV_ADDR;
|
||||
seq.flags = I2C_FLAG_WRITE_READ;
|
||||
write_data[0] = 0xFE;
|
||||
write_data[1] = reg_addr;
|
||||
write_data[0] = (0x1f & reg_addr) | (0x20);
|
||||
printf("mode: 0x%x = 0x%02x\n",NFC_DEV_ADDR, (int)write_data[0]);
|
||||
|
||||
seq.buf[0].data = write_data;
|
||||
seq.buf[0].len = 2;
|
||||
seq.buf[1].data = read_data;
|
||||
seq.buf[1].len = 1;
|
||||
seq.buf[0].len = 1;
|
||||
seq.buf[1].data = read_data;
|
||||
seq.buf[1].len = 1;
|
||||
|
||||
ret = I2CSPM_Transfer(I2C0, &seq);
|
||||
|
||||
|
@ -168,15 +168,19 @@ uint8_t read_reg(uint8_t reg_addr)
|
|||
return read_data[0];
|
||||
}
|
||||
|
||||
// data must be 17 bytes long
|
||||
void read_reg_block(uint8_t * data)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < 7; i++)
|
||||
for (i = 0; i < 15; i++)
|
||||
{
|
||||
|
||||
*data = read_reg(i);
|
||||
// printf("data %d: %x\n" ,i,(int)(*data));
|
||||
printf("data %d: %x\n" ,i,(int)(*data));
|
||||
data++;
|
||||
}
|
||||
*data++ = read_reg(0x1E);
|
||||
*data++ = read_reg(0x1F);
|
||||
}
|
||||
#define NS_REG_ADDR 6
|
||||
typedef enum{
|
||||
|
@ -204,7 +208,7 @@ typedef struct {
|
|||
|
||||
void nfc_test()
|
||||
{
|
||||
uint8_t data[16];
|
||||
uint8_t data[17];
|
||||
uint8_t ns_reg;
|
||||
uint8_t last_ns_reg;
|
||||
// magic-number,
|
||||
|
@ -214,6 +218,26 @@ void nfc_test()
|
|||
|
||||
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;
|
||||
//
|
||||
////
|
||||
|
|
Ładowanie…
Reference in New Issue