The Secure Digital Host (SD Host)controller on CC3200 provides an interface to standard SD memory cards in 1-bit transfer mode and handles the SD protocol and data packing at transmission level with minimum CPU intervention.
This application showcases the basic use case of initializing the controller to communicate with the attached card, reading and writing SD card block using the internal controller buffer via DriverLib API(s). The demo includes extracting the card capacity, capacity class and SD version information and displaying it on the UART terminal. The demo also reads out the first block from the attached card and displays in to the terminal.
Here is the SDCard booster board which can be mounted on CC3200 Launchpad
Warning: Writing to SD card block is disabled by default using a macro defined in the main.c file, this is to avoid accidental corruption of card Filesystem.
Source Files briefly explained
- main.c - Includes the main and DriverLib wrapper functions to initialize, read and write the attached card.
- pinmux.c - Generated by Pinmux utility to mux out the SD Host controller signal to chip boundary.
- uart_if.c - Implements the UART terminal.
- startup_ewarm.c - Implements interrupt vector table when using IAR ewarm tool chain
- startup_css.c - Implements interrupt vector table when using CC tool chain
Build the board
User can order a SD Card booster pack from 40Oh to work with the CC3200 Launchpad, but the connector definitions do not match. Some board modifications require to make it work with the CC3200 LAUNCHXL Rev 3.2(onwards).
Here is the ECO List
- Scratch out traces at SJ1 , SJ2, SJ3, SJ4
- Blue wire the following pins
|SDCard Pin no.||Header Pin|
The board looks as below with the changes
- Setup a serial communication application (HyperTerminal/TeraTerm) with following settings. For detail info visit Terminal setup
- Port: Enumerated COM port
- Baud rate: 115200
- Data: 8 bit
- Parity: None
- Stop: 1 bit
- Flow control: None
- Connect the SD Card to the LP board as shown below
LP Pin SD Card Pin Signal Name P2.3 2 CMD P3.2 3 GND/Vss P1.1 4 Vcc/Vdd P2.6 5 CLK P2.1 6 Vss P2.7 7 DAT0
- Set the macro definition to 1 to remove write protection
#define WRITE_TEST_EN 0
- Run the reference application (Flashing the bin/IAR/CCS).
- Observe the status messages on the host over serial port to understand the sequence of operations performed by the application.
For many SD cards pull up resistors are required on the bidirectional signal lines, DAT0 and CMD.