Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com 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

Status
Not open for further replies.

Oveis.Gharan

Full Member level 4
Joined
Oct 21, 2006
Messages
197
Helped
34
Reputation
68
Reaction score
25
Trophy points
1,308
Location
Iran
Activity points
2,502
Hi,
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:
(from www.datasheetcatalog.com/...pdf/.../ATMEGA128.shtml)
"
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
actions:
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
mode.
"
 

    Oveis.Gharan

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

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top