This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

External Bus Controller

Hi all,
in spite of reading all threads I still didn't get my External Bus Controller working
for two Chip Selects at 16 Bit multiplexed bus. I use a XC164 and connect two ADCs to the Controller and do only need an access to the first and then to the second one using CS0 and CS1 - the ram adresses are not of any deeper interest. Normally (as I understood it) you don't need to use any further Pulldown/up resitors at startup.
Going through the Start_V2.A66 everthing seems to look fine, but the default CS0 works, but I can't see any Signal with my scope at CS1. I tried to use 0x20'0000 to 0x3F'FFFF and to calculate the DPPs like Stefan Fricke wrote in a thread.

Can anyone tell me what is further to be considered?
Anyone with the same problem? Any solution?
I'd go mad with joy when it works...

Kind regards

Parents Reply Children
  • Yes, I hope so. CS0 and CS1 are enabled and I tried a 4k address window.
    Could you possibly give me some piece of code, please?
    CS0 should be at address you choose with Options -> External Memory and you gain access to it by XVAR.
    Still it doesn't work...

  • You need to use the START_V2.A66 file in your project and the values:

    $SET (CONFIG_EBC = 1)
    $SET (CONFIG_CS0 = 1)
    $SET (CONFIG_CS1 = 1)
    

    need to be set. Also the section below contains the BUS characterisic. Is this the case in your project?

  • I edited my Start_v2.A66 as collapsed Text, but also tried to invoke CS1 by $Set command.
    Nevertheless it does not work. Still I ask you to send this piece of code, please, perhaps with your Dave Settings and the routine to gain access to peripheral components. That would be great. I still haven't found the crucial point what I have not considered so far...

  • I suggest that you send your project to
    support.intl@keil.com

  • If you don't mind, I would prefer / highly appreciate that you send a piece of code. This piece of code should contain the access to CS1.

    Thank you very much in advance.

    Kind regards
    Helmut

  • Hi Helmut,

    the following is from a former errata, maybe it can help.

    In case less than 4 chip select signals are selected (either by hardware reset via Port0 configuration, or
    by software via bitfield CSPEN in register EBCMOD0), signals CS0# and CS1# are not available in
    some configuration settings:
    EBCMOD0.CSPEN = 001: CS0# not available
    EBCMOD0.CSPEN = 010: CS0# and CS1# not available
    EBCMOD0.CSPEN = 011: CS0# not available
    EBCMOD0.CSPEN = 100: all 4 CS# signals available (as specified)
    EBCMOD0.CSPEN = 000: no CS# signals available (as specified)
    That means, that you will have at certain combinations NO CS-signal !!!, but your adjustments ARE the RIGHT.
    That's why I use in such situation a combination of CS0 AND CS1-signal.

    Additionally check the linker settings, where the locator places the code to be sure your access to the code window with CS1 matches the area you have selected.

    Stefan