Continue to Site

Welcome to

Welcome to our site! is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

A problem with reading SD card through SPI with ATmega128

Not open for further replies.


Full Member level 4
Oct 21, 2006
Reaction score
Trophy points
Activity points
I have connected an SD through SPI to Atmega128L.
I have enabled SPI bus and chip select and all nessesary connection.
But when I load a byte into SPDR and wait to transmit it, SCK has no any transaction and recieved response will be 0xFF.
Who can suggest me a solution?

Re: A problem with reading SD card through SPI with ATmega12

If the initialisation SPI in master mode is OK, probably you must to
check SS pin in master MODE:
Master Mode When the SPI is configured as a master (MSTR in SPCR is set), the user can determine the
direction of the SS pin.
If SS is configured as an output, the pin is a general output pin which does not affect the SPI
system. Typically, the pin will be driving the SS pin of the SPI slave.
If SS is configured as an input, it must be held high to ensure Master SPI operation. If the SS pin
is driven low by peripheral circuitry when the SPI is configured as a master with the SS pin
defined as an input, the SPI system interprets this as another master selecting the SPI as a
slave and starting to send data to it. To avoid bus contention, the SPI system takes the following
1. The MSTR bit in SPCR is cleared and the SPI system becomes a slave. As a result of the
SPI becoming a slave, the MOSI and SCK pins become inputs.
2. The SPIF flag in SPSR is set, and if the SPI interrupt is enabled, and the I-bit in SREG is
set, the interrupt routine will be executed.
Thus, when interrupt-driven SPI transmission is used in master mode, and there exists a possibility
that SS is driven low, the interrupt should always check that the MSTR bit is still set. If the
MSTR bit has been cleared by a slave select, it must be set by the user to re-enable SPI master


    Points: 2
    Helpful Answer Positive Rating
Not open for further replies.

Part and Inventory Search

Welcome to