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.

Regarding Flash Reading doubt ???

Status
Not open for further replies.

Embedded_Geek

Full Member level 6
Full Member level 6
Joined
Jul 5, 2010
Messages
342
Helped
58
Reputation
116
Reaction score
56
Trophy points
1,318
Location
Germany
Activity points
2,974
While reading flash do we have to send dummy bytes in order to bring the data to the MISO line, or sending the command is enough?

Thanks in advance,
Ajish Gopal R
 

Sir,

May I know then why the manufacturer don't specify it in the datasheet

---------- Post added at 17:55 ---------- Previous post was at 17:49 ----------

yes as slaves pins are in tristate you have to send dummy bytes to it.. but they are not recognised by slaves...

**broken link removed**
**broken link removed**

its common for all devices..

In page 3 of the first datasheet it is specified that while MISO pin has no transition (in state diagram). It is given as either only LOW or only HIGH
 

specified in the application notes of the device....

---------- Post added at 18:00 ---------- Previous post was at 17:59 ----------

datasheet dont give full information... make a habit of reading application notes ... that will be very useful...
 
Does that mean that the slave will receive clock from the master only when the master sends something (data) ?
 

Yes slaves cannot have or trigger clock and are dependent on master...

Read this article
**broken link removed**
 
Yes slaves cannot have or trigger clock and are dependent on master...

I know that the slave depends on the MASTER for the clock.

But why is that the dummy bytes are required only while reading from slave?
 
it is more or less same concept like the I2c... when you start writing the data the memory location increments.. and suddenly you read the data from it it reads from the location from where the memory location is pointed... or the slave too goes into idle state and to wake it up you need to send a dummy data to wake it and then read the data....
 
I know that the slave depends on the MASTER for the clock.

But why is that the dummy bytes are required only while reading from slave?

The device reads and writes data in edges of the clock, unless there is a clock there can be no data transfer in the SPI lines and the clock can only be provided by the master so what you do is send a dummy byte to provide the necessary clock and the data are transferred from the eeprom to the mcu during that clock edges, the data that you send to the slave during that dummy write are ignored, only the data send from the slave to the master are important in this phase.

Alex
 
The device reads and writes data in edges of the clock, unless there is a clock there can be no data transfer in the SPI lines and the clock can only be provided by the master so what you do is send a dummy byte to provide the necessary clock and the data are transferred from the eeprom to the mcu during that clock edges, the data that you send to the slave during that dummy write are ignored, only the data send from the slave to the master are important in this phase.

Alex

Thank you very much Alexan.

So, what you mean is that the MASTER generates clock only while data is being sent from MASTER, otherwise the clock is idle(no transition)
 

SPI has a MISO and MOSI pin, in each clock edge data is moved in both directions (send and received at the same time) and that is why the spi function gets a value as a parameter which is what to send and returns a result which is what has been received, depending on the devices there can be valid data in both directions at the same time or one of the two directions may have dummy data.
For eeprom you send the address you want and then the eeprom sends valid data, that is how it works, there are no valid data received from the mcu while you are sending the address to the eeprom so you discard what the mcu receives in that stage and then when the eeprom sends the memory content it discards what the mcu sends in that phase because it doesn't matter.
 
Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top