Jump to content

Problems with Banksticks


robinfawell

Recommended Posts

I have been battling very unsuccessfully  for about 16 hours, trying to load

my sysex messages into a 64k Bankstick (external EEProm).

I have tried many different ways but all is in vain.

I have used MPLab to compile a main.asm file with org at 400000 to include

39 individual sysex files.  This produces a main.hex and main.lst amongst

other files.The lst file looks perfect. At TK's suggestion I have defined

labels in asm file so that the sysex start addresses are tabulated. This also

will enable file length in bytes to be calculated conveniently using Excel.

All the addresses are shown correctly and all the sysex content is correct.

Using both methods (Serge's loader and MIOS Studio) I have uploaded the

main.syx file converted by the hex2syx program to the core. Both method show

block acknowlegement.  Hopefully this shows that the core is receiving the

data.

The MIOS studio also shows Midi In and Out activity.

Here comes the problem!  When I try to read back the sysex messages from the

Bankstick I get nothing from Serge's loader.

I have also used the suggested Midi_ox method bankstick dump and get the

following two sysex messages.

F0 00 00 7E 40 00 03 00 F7 F0 00 00 7E 40 00 01 40 00 40 00 F7

This is a repeat of the sent message requesting a 64k dump!

I have made 2 new 64k EEprom modules that both give send acknowledgements. 

Both seem to work on writing but not on reading. I'm going mad!

I'm obviously missing something.  My recent problems were caused by very

simple errors.

I notice that with MIOS 1.8 + the address structure is changed for banksticks

and that there is no need for the 03 command. 

I am wondering if this change could affect Serge's loader and the Midi-ox

request dump request method.

Please help.

Robin

Robin 

PS I have made the link between J4 SC to pin 28 of the core.

Link to comment
Share on other sites

I have spent a long time, most of today, coming to a conclusion that my probem was attempting to carry out bankstick write and read functions whilst the application was loaded.

You must do this task before loading the application.  ie in the READY state or with MIOS 1.9c whilst "BOOTLOADER IS UP T0 DATE."

Thorsten makes this clear in Page 2, Step 2 of Bankstick Transfer Example.  I missed the importance of the paragraph.

I think that I am right in pointing out that Serge's loader will not carry out Request Sysex Dump commands with 64k EEproms.

Neither will the instructions on Step 5.  The 03 command is obsolete.  I tried sending the 2nd sysex message only

F0 00 00 7E 40 00 01 40 00 40 00 F7 , but this produced 5393 bytes of mainly 00's.

Robin

Link to comment
Share on other sites

Just to bring this thread up to date....

I can verify that MIOS Studio successfuly uploads 64kEEProm Banksticks.

It is a requirement of my Organ design that stored Sysex messages are read from Banksticks. I have verified that the 64k contents were uploaded correctly  using the application software..

This still leaves a question mark on Serge's Loader and Step 5 of the Bankstick Transfer Example.  I am only referring to "reading back the data" procedures.

Is it intended that MIOS Studio will be extended to Read back Bankstick data?  Maybe it is already?

Robin

Link to comment
Share on other sites

Hi Robin,

good to know, that at least the upload is working.

Serge's Loader won't be maintained anymore, and I think that a more stable (and especially OS independent) implementation could be realized much easier with MIOS Studio. But this isn't planned yet...

So, currently only MIDI-Ox can be used for a stable read-out

Best Regards, Thorsten.

Link to comment
Share on other sites

Hi Robin,

I just tried this and also noticed that it doesn't work like expected. I think that this has to do with the latest changes in the address range checking for PIC18F4620...

I don't know exactly where the error is located, but I can give you a workaround:

With:

F0 00 00 7E 40 00 01 40 00 3F 00 F7

you can read the first 63 * 1k blocks

and with:

F0 00 00 7E 40 00 01 7F 00 01 00 F7

you can read the remaining 1k block

Or another solution:

with:

F0 00 00 7E 40 00 01 40 00 20 00 F7

you can read the lower half (0x0000-0x7fff)

and with:

F0 00 00 7E 40 00 01 60 00 20 00 F7

the upper half (0x8000-0xffff)

Best Regards, Thorsten.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...