Hyperflash programming

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
ABC
Level 1
Level 1
5 sign-ins First reply posted First question asked

I am trying to communicate with hyperflash through microblaze connected with hyperbus IP. But neither read nor write operation is taking place. I have simulated it and observed Command address field out from HYperbus IP. There is difference between the Hyperflash datasheet mentioned waveform and the one observed by me during simulation. I have attached images of code, waveform from simulation and from the datasheet

Can someone please let me know what mistake is causing problem in communicating with the hyperflash?HyperFlash.jpg

0 Likes
5 Replies
AlbertB_56
Moderator
Moderator
Moderator
500 replies posted 50 likes received 250 replies posted

Hello,

Thank you for contacting Cypress Semiconductor.

Please initiate the READ operation, first, and provide waveform the screen capture,

which should be identical as the waveform from the datasheet detailed directly below.

AlbertB_56_0-1610478741886.png

If the READ operation is unsuccessful, all other command operation will also be unsuccessful.

The READ operation (w/ waveforms) should be the simplest to to determine what may be wrong, if any.

 

Best regards,

Albert

Cypress Semiconductor Corp.

An Infineon Technologies Company

 

 

 

0 Likes
ABC
Level 1
Level 1
5 sign-ins First reply posted First question asked

Thank you Albert for the response.

 

I have attached screen capture for read operation. Since it is only simulation , data field is not present in waveform after command-address field is transmitted. 

1. In Write operation: CA2 =0x 6005(in waveform); CA2 = 0x0005(In datasheet). In read operation also 0x60 is present. Is this acceptable?

2. When I tried to read from address 0x123457, values mentioned in datasheet and waveform are different. Any issues here?

 

HyperFlash2.jpg

0 Likes
AlbertB_56
Moderator
Moderator
Moderator
500 replies posted 50 likes received 250 replies posted

Hello ,

Since this issue may be related to the HyperBus IP, I am enlisting the assistance of the 

HyperBus team to add insight as to this issue.

Please await for their response...

 

Best regards,

Albert

Cypress Semiconductor Corp.

An Infineon Technologies Company

 

0 Likes
AlbertB_56
Moderator
Moderator
Moderator
500 replies posted 50 likes received 250 replies posted

Hello,

Please find attached the response from (HyperBus) Applications Engineering:

  1. In Write operation: CA2 =0x 6005(in waveform); CA2 = 0x0005(In datasheet). In read operation also 0x60 is present. Is this acceptable? :

The 0x60 is an artifact from HyperBus controller design. It is harmless and acceptable to the HyperBus memories.

  1. When I tried to read from address 0x123457, values mentioned in datasheet and waveform are different. Any issues here? :

Can you try :

ValueRead = *( ( (volatile u16 *)0x20000000 ) + 0x123457);

 

Best regards,

Albert

Cypress Semiconductor Corp.

An Infineon Technologies Company.

0 Likes

Thank you Albert for the response.

When I tried to read from address 0x123457, as you suggested (ValueRead = *( ( (volatile u16 *)0x20000000 ) + 0x123457);)  values mentioned in datasheet and waveform are still different. In resulted waveform one extra transaction before the expected value is obtained(i.e 0x00 at beginning) one extra cycle  of 0x07 is obtained at end. Any issue here?

Refer Below waveform 

vij_4605301_3-1620191478993.png

 

But according to waveform in datasheet results should be as below.

vij_4605301_1-1620190864093.png

 CA2 value in read waveform in datasheet is 0x80 but the obtained result is 0x60. But according to  Command/Address bit assignment table mentioned in datasheet. 15th bit should be 0 and 13 and 14th bit should be 1. hence the value of CA2 should be 0x60. refer below table for detail.

vij_4605301_2-1620191242703.png

 

what is the correct value?

0 Likes