0

atmel M90e26s チップを使用してエネルギー消費を監視する学校のプロジェクトに取り組んでいます。

私は mcp2210 ライブラリを使用して、この小さなテストスクリプトを書きました:

void talk(hid_device* handle) {
ChipSettingsDef chipDef;

//set GPIO pins to be CS
chipDef = GetChipSettings(handle);

for (int i = 0; i < 9; i++) {
    chipDef.GP[i].PinDesignation = GP_PIN_DESIGNATION_CS;
    chipDef.GP[i].GPIODirection = GPIO_DIRECTION_OUTPUT;
    chipDef.GP[i].GPIOOutput = 1;
}
int r = SetChipSettings(handle, chipDef);

//configure SPI
SPITransferSettingsDef def;
def = GetSPITransferSettings(handle);

//chip select is GP4
def.ActiveChipSelectValue = 0xffef;
def.IdleChipSelectValue = 0xffff;
def.BitRate = 50000l;
def.SPIMode = 4; 

//enable write
byte spiCmdBuffer[3];


//read 8 bytes
def.BytesPerSPITransfer = 3;
r = SetSPITransferSettings(handle, def);
if (r != 0) {
    printf("Errror setting SPI parameters.\n");
    return;
}

spiCmdBuffer[0] = 0x01; //0000 0011 read
spiCmdBuffer[1] = 0x00; //address 0x00

SPIDataTransferStatusDef def1 = SPISendReceive(handle, spiCmdBuffer, 3);

for (int i = 0; i < 8; i++)
    printf("%hhu\n", def1.DataReceived[i]);
}

どのアドレスを試しても、応答がありません。問題は次のようです。

spiCmdBuffer[0] = 0x01; //0000 0011 read
spiCmdBuffer[1] = 0x00; //address 0x00

データシートから、spi インターフェイスが次のようになっていることがわかり ます。

Can somebody help me to find the address registers from the atm90e26? All the addresses look like '01H', but that is not hexadecimal and it's not 7 bit either.

4

1 に答える 1