dawsonjon / PicoRX

Build a SDR SW/MW/LW Receiver with a Raspberry Pi Pico
MIT License
238 stars 30 forks source link

Allocate GPIOs for SPI/SDcard interface? #44

Open penfold42 opened 2 months ago

penfold42 commented 2 months ago

SPI1 on GPIO10,11,12,13 ? and maybe GPIO 14 and 15 for additional SPI slave selects (or multiplexing via a HC139 ?)

dawsonjon commented 2 months ago

I have been working on a ili9341 TFT waterfall, I've provisionally allocated allocated these pins.

#define PIN_MISO 12
#define PIN_CS   13
#define PIN_SCK  14
#define PIN_MOSI 15 
#define PIN_DC   11
#define PIN_RST  10

Obviously, I'm not actually using the MISO pin, but thought it made sense to allocate it so that the SPI could be used with other peripherals such as SD card or similar. I will ditch the RST pin if I can, and might try to double up the DC pin with something else too if I can. I would like to keep GPIO28 spare for a microphone input, and 3 other pins for TX functions. Perhaps we should allocate GPIO9 as SD card CS pin?

MrSVCD commented 1 month ago

Since you are asking, what are your plans for the SD card?

penfold42 commented 1 month ago

@mryndzionek suggested sd card recording in the #15 features discussion issue

@dawsonjon re: PIN_CS on gpio 13 vs 9. Not sure there's much benefit one way or the other. Are we rapidly running out of pins? :) I guess theres 3 options:

MrSVCD commented 1 month ago

If you go the I2C expander route, you could "just" use another Pico. It is a bit more expensive than a MCP23017 but gives more options.

penfold42 commented 1 month ago

If you go the I2C expander route, you could "just" use another Pico. It is a bit more expensive than a MCP23017 but gives more options.

Quad core radio :)

Beware the I2C MCP23017 - silicon bugs require A7 and B7 be set to outputs

mryndzionek commented 1 month ago

What about the bandpass filter control pins (2, 3, 4)? The breadboard version doesn't use those pins.

penfold42 commented 1 month ago

Ideally the one firmware would work on both with no runtime config.

For best image rejection (and noise) you should really use the band select filters.

MrSVCD commented 1 month ago

As I was looking for other ways to add buttons. Can ADC2 be used to add a keypad? There is a way to add a keypad using a bunch of resistors. Here is some maths and designs Keypad.zip The only change to the circuit when the keyboard is not installed would be a 10k resistor from ADC2 to ground. The RP2350 has a currently a bug for the internal pull-down resistor and I don't know the value so a external one would be a safer bet.

dawsonjon commented 1 month ago

I'm quite keen to keep the spare ADC input as a mic input when I add TX capability. It will probably double as a morse paddle input too.

Another option to consider is to add an IR remote. Only needs one IO pin... IR remotes are also very cheap, often cheaper than a keypad.

MrSVCD commented 1 month ago

Not a really serious suggestion but something to be inspired by: Since I am computer collector I have some Apple Desktop Bus stuff and it uses only one I/O pin. There is another signal in the standard that is only used for a remote power button. https://en.wikipedia.org/wiki/Apple_Desktop_Bus