Hallo, ich habe das Problem mit dem SPI1, dass zwar alle Leitungen genau das machen was sie sollen, jedoch das CS immer high bleibt. Hier mal mein Code zum Init. void initSPI1() { spi_options_t spiOptions; //GPIO MAP for SPARE SPI static const gpio_map_t SPI1_GPIO_MAP = { { AVR32_SPI1_SCK_0_0_PIN, AVR32_SPI1_SCK_0_0_FUNCTION }, //SPI Clock { AVR32_SPI1_MISO_0_0_PIN, AVR32_SPI1_MISO_0_0_FUNCTION }, //MISO { AVR32_SPI1_MOSI_0_0_PIN, AVR32_SPI1_MOSI_0_0_FUNCTION }, //MOSI { AVR32_SPI1_NPCS_0_0_PIN, AVR32_SPI1_NPCS_0_0_FUNCTION }, //Chip Select NPCS }; spiOptions.reg = SPI_PRESSURE_CHANNEL; spiOptions.baudrate = SPI_MASTER_SPEED; spiOptions.bits = SPI_BITS; spiOptions.spck_delay = 10; spiOptions.trans_delay = 10; spiOptions.stay_act = 1; spiOptions.spi_mode = 0; spiOptions.modfdis = 1; // Assign I/Os to SPI gpio_enable_module(SPI1_GPIO_MAP, sizeof(SPI1_GPIO_MAP) / sizeof(SPI1_GPIO_MAP[0])); // resets the SPI Controller //spi_reset(PRESSURE_SPI); // Initialize as master. spi_initMaster(PRESSURE_SPI, &spiOptions); // Set SPI selection mode: variable_ps, pcs_decode, delay. spi_selectionMode(PRESSURE_SPI, 0, 0, 10); // Initialize Sensor spi_setupChipReg(PRESSURE_SPI, &spiOptions, FOSC0); //spi_selectChip(PRESSURE_SPI, 0); // Enable SPI module. spi_enable(PRESSURE_SPI); } Und so sende ich Daten. spi_selectChip(PRESSURE_SPI, SELECTCHIP_MODE); spi_write(PRESSURE_SPI, 0x35); spi_unselectChip(PRESSURE_SPI, SELECTCHIP_MODE); Hat jemand eine Ahnung, warum das nicht funzen kann? Danke schon mal und nebenbei Frohe Weihnachten ;). Gruß Thomas
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.