Hi everybody,
I write this post because I am a little bit confused about the FlexBUS in the K64.
I want to use the FlexBUS with 16bit for data FB_AD[31-16] and 14bit for address FB_A[29-16] to connect an EPLD. Pin mapped to FB_AD[15-0] are used for other purpose (CAN, GPIO,…)
Does it is possible?
I see that BLS bit (p748 of ReferenceManual) is used to align 16bit on right or left side. I will use BLS=0b.
But at p751 in 31.4.3 Address driven on address bus it is written “FlexBus always drives a 32-bit address on the FB_AD bus regardless of the external memory's or peripheral's address size.”
So what will happen on pins used for other purpose : FB_AD[15-0] (CAN,GPIO,)?
And can the FlexBUS be configured in non-multiplexed mode with FB_A bus for address and FB_AD[31-16] for data?
Thanks for your help.
Have a great day.
Hi,
For your case, if you need 16bit data and 14 bit address, then you only need the FB_AD[31:0] lines.
FB_AD[13:0] for address and FB_AD[31:16] for data with the byte lante left justified. FB_A[29:16] is used for the case of non-multiplexed connection for a 16 bit external memory when the address range is large than 16 bits.
I am afraid that you can not use the FB_AD[15:0] as other functions.
Hi,
Thanks for your answer.
As I need to use CAN with ENET and FlexBUS, I really need to assigned FB_AD[15-0] pin’s for other purpose than FlexBUS.
Assume I use multiplexed mode 32b address and 16b data.
On FB_AD[31-16] I will physically obtain 16b address and next 16 bits data (so like a 16b address/data multiplexed bus).
Pin PTB18 can be assigned to FB_AD15 or CAN0_TX (and others).
Does the CAN will work correctly if I assigned the pin PTB18 to CAN0_TX.
Or does the FlexBUS operation will disturb it (FlexBUS component is configured as 32b address and 16b data)?
If internally pinout multiplexing is like the picture below, even if FB_AD15 change of state, CAN0_TX should not be disturb. What do you think?