FTDI Community

Please login or register.

Login with username, password and session length.
Advanced Search  

News:

Welcome to the FTDI Community!

Please read our Welcome Note

Technical Support enquires
please contact the team
@ FTDI Support


New Bridgetek Community is now open

Please note that we have created the Bridgetek Community to discuss all Bridgetek products e.g. EVE, MCU.

Please follow this link and create a new user account to get started.

Bridgetek Community

Show Posts

You can view here all posts made by this member. Note that you can only see posts made in areas to which you currently have access.

Messages - Pereubu123

Pages: [1]
1
Discussion - Software / Re: MPSSE commands on falling or rising edge?
« on: February 22, 2019, 12:53:16 PM »
Maybe I tried to explain the problem in rather confusing way. I will try again:

Let assume that memory device work in mode 0 or mode 3. let us decide to use mode 0.
Where CPOL = 0, CPHA = 0, mode 0.
For this mode, input data is latched in on the rising edge of serial clock (C), and
output data is available from the falling edge of C.
So when we let say  my program is used to read one word data from a random address:
one write command plus address is used  and then on the side mpsse we should use on the
raising edge sampling in to get the data from from spi flash componenet?

That is why the sample in "Interfacing FT2232H Hi-Speed Devices To SPI Bus Application Note AN_114" (page 13) looks very odd:

//send WRITE command  O
utputBuffer[dwNumBytesToSend++] = MSB_FALLING_EDGE_CLOCK_BIT_OUT; 
OutputBuffer[dwNumBytesToSend++] = 2; 
OutputBuffer[dwNumBytesToSend++] = READ; 
//send address 
OutputBuffer[dwNumBytesToSend++] = MSB_FALLING_EDGE_CLOCK_BIT_OUT; 
OutputBuffer[dwNumBytesToSend++] = 7; 
OutputBuffer[dwNumBytesToSend++] = (BYTE)(address); 
//read data   

OutputBuffer[dwNumBytesToSend++] = MSB_FALLING_EDGE_CLOCK_BYTE_IN;     
OutputBuffer[dwNumBytesToSend++] = '\x01';   
OutputBuffer[dwNumBytesToSend++] = '\x00'


The question is why we are using MSB_FALLING_EDGE_CLOCK_BYTE_IN?

Why FALLING_EDGE instead of RAISING_EDGE?

2
Discussion - Software / MPSSE commands on falling or rising edge?
« on: February 21, 2019, 10:48:01 AM »
Data is typically clocked in and out on clock edges. 
Either the rising or falling edge can be used on transmit or receive.
In the 93C46D example, the EEPROM clocks data in and out on the rising edge.
I have my own selected SPI flash component, with clocking in (sampling) data on rising clock edge,
and clocking out data for that particular SPI memory chip on falling edge. Actually, input data is latched in on the rising edge of serial clock (C), and
output data is available from the falling edge of C.

What is confusing is:

(taken form AN_135 FTDI MPSSE Basics Version 1.1)
"In the 93C46D example noted above, the EEPROM clocks data in and out on the rising edge. 
In this case, the MPSSE should be configured for data transfer on falling edges for both transmit and receive. 
This allows the data out from both the MPSSE and the target device to stabilize before being clocked in on the next edge."
Now, I expect that I have to use opposite: MPSSE should be configured clocking in data on falling edge while clocking out data
on rising edge. But what is the meaning "This allows the data out from both the MPSSE and the target device to stabilize before
being clocked in on the next edge"?

So, is that Ok to follow the logic above to configure MPSSE to  latch input data on the rising edge of serial clock (C), and
output data to be  available from the falling edge of C.

3
Discussion - Software / FT2232H How to create and work with two channels?
« on: September 28, 2018, 03:01:45 PM »
In the documentation: "..
each channel would be opened with a different instance
and ... Open: 
ftStatus = myFtdiDeviceCHA.OpenByIndex(0);
ftStatus = myFtdiDeviceCHB.OpenByIndex(1);
..."


The question is how to open two instances:

FTDI myFtdiDeviceCHB = new FTDI();
ftStatus = myFtdiDeviceCHB.OpenByIndex(1);

I am writing in C#.
From there I should  access BDBUS and BCBUS...

But I could not access B channel?
Have I done something wrong?

Pages: [1]