Using MicroSD Breakout with Teensy 4.0

Status
Not open for further replies.

Tej

New member
Instead of using built in microSD card I want to use the external MicroSD breakout with teensy 4.0. I am having problem in reading the microSD card.

I tried to built the circuit that was provided in this link:https://learn.sparkfun.com/tutorials/microsd-breakout-with-level-shifter-hookup-guide?_ga=2.251206149.269912023.1580940887-1501752884.1580940887

I built this circuit on Arduino Uno and it works. But that same circuit when I used teensy, did not work. And because of the errors that I was getting for using word "Index", when I was compiling for teensy, I changed all of them to "indexChanged". And for confirmation I flashed that code onto Arduino Uno it did work but on teensy 4.0. I am getting in serial monitor "Initializing SD card... Initialization failed!"

I tried using PIN 10 on teensy 4.0 as CS instead of PIN 8 but no success. (CS = chipSelect in Code, which was also changed to "10")

I tired using the different Example codes but with no success, and one of them being:
Code:
/*
  SD card read/write
 
 This example shows how to read and write data to and from an SD card file 	
 The circuit:
 * SD card attached to SPI bus as follows:
 ** MOSI - pin 11, pin 7 on Teensy with audio board
 ** MISO - pin 12
 ** CLK - pin 13, pin 14 on Teensy with audio board
 ** CS - pin 4, pin 10 on Teensy with audio board
 
 created   Nov 2010
 by David A. Mellis
 modified 9 Apr 2012
 by Tom Igoe
 
 This example code is in the public domain.
 	 
 */
 
#include <SD.h>
#include <SPI.h>

File myFile;

// change this to match your SD shield or module;
// Arduino Ethernet shield: pin 4
// Adafruit SD shields and modules: pin 10
// Sparkfun SD shield: pin 8
// Teensy audio board: pin 10
// Teensy 3.5 & 3.6 on-board: BUILTIN_SDCARD
// Wiz820+SD board: pin 4
// Teensy 2.0: pin 0
// Teensy++ 2.0: pin 20
const int chipSelect = 10;  

void setup()
{
 //UNCOMMENT THESE TWO LINES FOR TEENSY AUDIO BOARD:
 //SPI.setMOSI(7);  // Audio shield has MOSI on pin 7
 //SPI.setSCK(14);  // Audio shield has SCK on pin 14
  
 // Open serial communications and wait for port to open:
  Serial.begin(9600);
   while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }


  Serial.print("Initializing SD card...");

  if (!SD.begin(chipSelect)) {
    Serial.println("initialization failed!");
    return;
  }
  Serial.println("initialization done.");
  
  // open the file. note that only one file can be open at a time,
  // so you have to close this one before opening another.
  myFile = SD.open("test.txt", FILE_WRITE);
  
  // if the file opened okay, write to it:
  if (myFile) {
    Serial.print("Writing to test.txt...");
    myFile.println("testing 1, 2, 3.");
	// close the file:
    myFile.close();
    Serial.println("done.");
  } else {
    // if the file didn't open, print an error:
    Serial.println("error opening test.txt");
  }
  
  // re-open the file for reading:
  myFile = SD.open("test.txt");
  if (myFile) {
    Serial.println("test.txt:");
    
    // read from the file until there's nothing else in it:
    while (myFile.available()) {
    	Serial.write(myFile.read());
    }
    // close the file:
    myFile.close();
  } else {
  	// if the file didn't open, print an error:
    Serial.println("error opening test.txt");
  }
}

void loop()
{
	// nothing happens after setup
}

I am getting in serial monitor "Initializing SD card... initialization failed!"

But this same code is working on Arduino Uno with only chipSelect in code being changed to "8".

Please excuse me, this is first time I am posting in the Forum.

Thanks!
 
The easiest way is to connect the uSD adapter to the same pins of T4.0 that are used by Audioboard Rev D. and uncomment lines that are labelled for audioboard.
 
Status
Not open for further replies.
Back
Top