1
\$\begingroup\$

Apologies for a potentially frowned upon question, but Adafruit's documentation for the 2.2" TFT display with sd card breakout is a little lacking. Essentially, they describe the display and sd card functionalities separately, and thus it is hard to determine for sure of correct wiring. Using this board with the Adafruit Feather 328P.

Display wiring: https://learn.adafruit.com/2-2-tft-display/arduino-wiring

SD Breakout Wiring: https://learn.adafruit.com/adafruit-micro-sd-breakout-board-card-tutorial/arduino-wiring

I have what I think is correct wiring below, and making some assumptions on which ports to use for the Feather, as some of the pins mentioned aren't there, but the labels (MISO, etc) match up. I have also moved some pins which I think are movable, and can set that up in code.

Is this a correct wiring?

enter image description here

Port on Feather Port on TFT/ SD Notes
SCK SCK
MISO MISO
MOSI MOSI
6 CS Moved from pin 10 in guide for TFT
5 SDCS Moved from pin 10 in guide for SD breakout
9 D/C
3.3V rail VIN
GND Rail GND

(Separate unwired boards for reference, hard to read some port labels with wires in the way)

\$\endgroup\$
3
  • \$\begingroup\$ Show an I/O wiring list \$\endgroup\$ Commented Aug 6, 2021 at 1:42
  • \$\begingroup\$ @TonyStewartEE75 Done, good suggestion \$\endgroup\$
    – Snappawapa
    Commented Aug 6, 2021 at 2:22
  • \$\begingroup\$ Are you asking if the wiring is correct because the display isn't working? If so, then the odds are good that the SPI mode isn't set correctly. There are four different possible sets of polarities for the clock and data lines and there is no standard across devices. It's possible that the Adafruit library just doesn't set it correctly. But you can change the mode after initializing the library with the setDataMode() function. Try different modes to see if one of them works. See arduino.cc/en/Reference/SPI \$\endgroup\$
    – Supa Nova
    Commented Aug 6, 2021 at 23:38

1 Answer 1

1
\$\begingroup\$

Arduino is a great prototyping platform, but as you have discovered, there are sometimes pinout ambiguities or changes from one model or clone to another.

Adafruit is usually pretty good with lots of detail in their tutorials, but sometimes you have to dig around to find it.

The Feather (clone) you have is based on the ATmega328p and there are a couple of notes on the TFT display wiring instructions:

On '328 and '168 Arduinos, CLK must connect to digital 13 and MOSI must connect to digital 11.

Also, on the Feather 328P pinout page:

  • SCK / #13 - SPI Clock and GPIO #13, can do PWM output and is connected to the red LED next to the USB jack
  • MOSI / #11 - SPI Microcontroller Out Serial In and GPIO #11, can also do PWM output
  • MISO / #12 - SPI Microcontroller In Serial Out and GPIO #12

So these two pieces of information seem to match.

The TFT wiring info indicates you should connect the TFT CS to pin 10 and not connect the SD CS nor MISO at all:

  • GND connects to ground - black wire
  • VIN connects to +5V - red wire
  • DC (data/clock) connects to digital 9 on Atmega328
  • Skip SDCS (SD card chip select - used for SD card interfacing)
  • CS (chip select) connects to digital 10 on Atmega328
  • MOSI (data out) connects to digital 11 on Atmega328
  • SCK (clock) connects to digital 13 on Atmega328
  • Skip MISO (data in - used for SD card interfacing)

I'm a little confused about whether the SD card is mounted on the back of the TFT display module, or if you have a separate SD breakout board based on what you linked.

If you do in fact have a separate SD card breakout board, post a new question, but you'll also need to include how you've connected it to the Feather as that is not indicated by your diagrams.

\$\endgroup\$
2
  • \$\begingroup\$ The SD card is mounted on the back of the TFT, I used the separate breakout link for reference on where the remaining pins not specified by the TFT docs should go, as you have noted. I interpreted the "skip" in the TFT wiring as a "we aren't covering the SD portion in this guide", as none of the examples seem to?, and thus refer to the separate SD breakout docs for reference, assuming they might at least have the same pinouts \$\endgroup\$
    – Snappawapa
    Commented Aug 6, 2021 at 19:00
  • \$\begingroup\$ @Snappawapa I kind of got the impression from the TFT wiring information that communication with the SD card was basically handled on-board the TFT somehow. I didn't see anywhere that they later came back to connect it. I got the impression that the SD CS is there for more advanced usage scenarios or troubleshooting. Curious to know more as you discover it! \$\endgroup\$
    – JYelton
    Commented Aug 6, 2021 at 20:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.