Hi, I am relatively new to PlatformIO. I cannot seem to get SPI working for my Raspberry Pi Pico.
Attached is the following code
#include <Arduino.h>
#include <SPI.h>
#define GPIO_MOSI 19
#define GPIO_MISO 16
#define GPIO_SCLK 18
#define GPIO_CS 17
#define GPIO_LE 14
#define GPIO_CE 15
#define SPI_CLOCK_SPEED 1000000
void SPI_Init() {
Serial.println("Initializing SPI and GPIO...");
pinMode(GPIO_LE, OUTPUT);
pinMode(GPIO_CE, OUTPUT);
digitalWrite(GPIO_LE, HIGH);
digitalWrite(GPIO_CE, HIGH);
SPI.begin();
SPI.beginTransaction(SPISettings(SPI_CLOCK_SPEED, MSBFIRST, SPI_MODE0));
Serial.println("SPI Initialized");
}
void ADF4351_WriteRegister(uint32_t data) {
uint8_t tx_buf[4] = {(uint8_t)((data >> 24) & 0xFF),
(uint8_t)((data >> 16) & 0xFF),
(uint8_t)((data >> 8) & 0xFF), (uint8_t)(data & 0xFF)};
Serial.print("Writing register: 0x");
Serial.println(data, HEX);
digitalWrite(GPIO_LE, LOW);
delayMicroseconds(1);
for (int i = 0; i < 4; i++) {
SPI.transfer(tx_buf<em>);
Serial.print(" Byte ");
Serial.print(i);
Serial.print(": 0x");
Serial.println(tx_buf<em>, HEX);
}
delayMicroseconds(1);
digitalWrite(GPIO_LE, HIGH);
delayMicroseconds(10);
}
void ProgramADF4351() {
const uint32_t registers[6] = {0x00580005, 0x00EC803C, 0x000004B3,
0x00004E42, 0x08008029, 0x00400000};
Serial.println("\nProgramming ADF4351...");
for (int i = 5; i >= 0; i--) {
ADF4351_WriteRegister(registers<em>);
delay(10);
}
Serial.println("Programming complete\n");
}
void setup() {
Serial.begin(115200);
while (!Serial);
delay(1000);
Serial.println("ADF4351 Programmer Starting...");
SPI_Init();
digitalWrite(GPIO_CE, LOW);
ProgramADF4351();
}
void loop() { delay(1000); }
Any help or advice on this would be greatly appreciated.