Jump to content
Nop90

Driver for 24AAXXX EEPPROM mounted on karri's carts

Recommended Posts

Unrolling the loops brings the A0-clocked reading down to 5.3s! So about 10ms per page.

  • Like 1

Share this post


Link to post
Share on other sites
2 hours ago, 42bs said:

Reading page wise all 64K takes ~6.2s with A0 clock and 7.8s with A1 clock.

Not bad at all!

Share this post


Link to post
Share on other sites
24 minutes ago, Nop90 said:

Not bad at all!

True. I assume that it makes sense to change the wires and use A0. 20% speedup is a BIG deal.

 

My guess is that I may need around 8..16k for my game. So a 2 second load time is really great! Besides, I can always entertain the user while the eeprom is loading.

 

In case you want to change the A1 to A0 you can just cut the trace from A1 to the eeprom and solder a wire from A0 instead.

 

Here is the A0 routing:

1817102183_Screenshotfrom2020-12-3023-07-35.thumb.png.7ba9fe83b53329203751093b3bd43221.png

 

And the current A1 routing

508695251_Screenshotfrom2020-12-3023-05-30.thumb.png.1d141e400b15b32120085b0e2af9f1b0.png

  • Thanks 2

Share this post


Link to post
Share on other sites

Great, it worked. New driver uploaded.

 

I added also a busy check for the write bench: 6.8s for the whole 64k.

  • Thanks 1

Share this post


Link to post
Share on other sites

Fantastic work, everyone. Really looking forward to putting this to use.

In terms of creating physical cartridges to support the 24AA512, I have looked at the TsopCart in the atarilynx repo on Bitbukcket. The KiCAD file states that the part to use for the small PCB board is the SST39SF040-55-4I-NHE, which seems to be the one for Karri's first full sized PCB (like in the images above). Shouldn't this be the SST39SF040-70-4C-WHE-T for the small PCB? 

Is the design still correct, with the new insights on the routing of A0 and A1?

 

Share this post


Link to post
Share on other sites

That pcb board uses A1, I don't think the A0 revision is already available. The difference in the driver is a single instruction (two STZ RCART0 to change the clock signal on the A1 line instead of 1 for the A0), so with a little modify in the code both the two version can be used.

Share this post


Link to post
Share on other sites

I am planning to update the PCB real soon to have some new things:

- use A1 for 93c46 chip to be compatible with old games

- use A0 for 24AA512 chip for more speed

- route GND, A0, AUDIN, 5V to the top edge of the card to allow for easy addition of all kind of serial chips

- add a solder option for creating 2 chip logical setups (like Alpine Games, 42BS early software, perhaps others)

 

I also plan to order a number of these new boards with 24AA512 on board. The plan is to have hard gold fingers instead of submerged gold. And to use a black pcb for prettier design.

 

Currently I have no clue of the demand for these. Perhaps a 500 pieces order would be sufficient.

  • Like 1

Share this post


Link to post
Share on other sites
1 hour ago, LX.NET said:

Fantastic work, everyone. Really looking forward to putting this to use.

In terms of creating physical cartridges to support the 24AA512, I have looked at the TsopCart in the atarilynx repo on Bitbukcket. The KiCAD file states that the part to use for the small PCB board is the SST39SF040-55-4I-NHE, which seems to be the one for Karri's first full sized PCB (like in the images above). Shouldn't this be the SST39SF040-70-4C-WHE-T for the small PCB? 

Is the design still correct, with the new insights on the routing of A0 and A1?

 

You are correct. The chips is SST39SF040-70-4C-WHE.

The current KiCad model has the AG selector switch the wrong way. I need to change this. (I did this hack for a friend...)

 

PS. I just updated the design. The AO is now used for the 64k eeprom. I still have not added extra solder pads for the I2C pins. But the AG switch is now in "normal" position. Meaning 512k ROM. And not 2x256k.

Share this post


Link to post
Share on other sites

Actually I needed the balanced traces for another project so I changed to the KiCad-nightly. Sorry about that.  The stable version lacked the best tools in KiCad. The name of the files has also keycad_sch instead of just .sch. But the old version does not know about these naming changes. By just re-naming the files and remove the kicad_ part they should work in the stable release. This design does not need any fancy stuff.

 

1825076108_Screenshotfrom2021-01-1316-29-07.thumb.png.bd9d5ec4a9e380b3428e8218f2fa37db.png

 

Anyway, here is the design. Now everything is implemented and I added a 4-pin header for cool extensions. The data on the header is GND, A0, AUDIN, 5V. For AG you need to cut the trace between pins 1-2 and solder a blob between pins 2-3.

Share this post


Link to post
Share on other sites

This requires a new shell design too. The dent on the cart is missing the the the 4-pin header requires some space for cables to go out of the back of the cart.

 

Note: the label on the cart says 24AA256, why not 24AA512?

Share this post


Link to post
Share on other sites
8 minutes ago, Nop90 said:

This requires a new shell design too. The dent on the cart is missing the the the 4-pin header requires some space for cables to go out of the back of the cart.

 

Note: the label on the cart says 24AA256, why not 24AA512?

I just changed it to 24AA512.

 

The dent is in the same place as before. I just forgot to plot it correctly. It is there in yellow.

If you don't use the 4-pin stuff the cart shell is the same. No chips have moved.

 

If you want some acceleration device or LED strip you need to create a daughter board anyway. I would probably just solder a flat cable between the boards and not use connectors.

 

PS. I will still go through all the library settings and add the components to the local library of the board. That is why the pads are missing.

Share this post


Link to post
Share on other sites
On 1/13/2021 at 9:34 AM, karri said:

1825076108_Screenshotfrom2021-01-1316-29-07.thumb.png.bd9d5ec4a9e380b3428e8218f2fa37db.png

 

Anyway, here is the design. For AG you need to cut the trace between pins 1-2 and solder a blob between pins 2-3.

 

Hi Karri, me being a newbie on the Lynx, you've lost me... could you explain what the "AG" item in the layout is for?... is this defaulting to the 24AA512 chip (left side shorted), and if you instead short the "right side" (and cutting the left side), then you're selecting the 93C46 chip?

 

Also, it sounds like the 24AA512 is a new addition, so... for the 93C46, are there any demos/games available, for testing? Do any of the classic games use this chip?

 

Share this post


Link to post
Share on other sites

AG means, if you cut the wire, you can make yourself a copy of Alpine Games. 🙂

  • Like 1

Share this post


Link to post
Share on other sites
3 hours ago, sage said:

AG means, if you cut the wire, you can make yourself a copy of Alpine Games. 🙂

Okay, thanks! So, I guess it's normally leave the jumper the way it is, and populate the EEPROM that you want/need (if one is required).

 

I'm still interested in finding if there's any games that can be tested, that use the 93C46.

Share this post


Link to post
Share on other sites

BLL contains test routines for both the 93c46 and the new 64K EEPROM.

  • Like 1

Share this post


Link to post
Share on other sites
1 hour ago, 5-11under said:

I'm still interested in finding if there's any games that can be tested, that use the 93C46.

No classic game lynx uses the eeprom, but some of the homebrews released in the last year do.

 

For example almost all the games released by me, like Lawnmower, 4ttude, Nutmeg, Xump, Xump2.

  • Like 1

Share this post


Link to post
Share on other sites
42 minutes ago, Nop90 said:

No classic game lynx uses the eeprom, but some of the homebrews released in the last year do.

 

For example almost all the games released by me, like Lawnmower, 4ttude, Nutmeg, Xump, Xump2.

Awesome, thanks! That will be helpful when I've got my boards.

Share this post


Link to post
Share on other sites
On 1/14/2021 at 4:31 PM, sage said:

AG means, if you cut the wire, you can make yourself a copy of Alpine Games.

Interesting, If I understand the pcb layout, alpine games uses Audin to select the second block instead of the higher address bit.

 

Is this behaviour supported by emulators? And by LynxGD?

 

LynxGD states to support every officialand HB game,but without a flagh in the header to to handle this configuration, don't know how it could run AG.

 

EDIt: ok, I found the byte in the LNX header that says to use this addressing.

Edited by Nop90

Share this post


Link to post
Share on other sites
15 hours ago, Nop90 said:

Is this behaviour supported by emulators?

AG will not run in emulators. But there are other (tech demo) ROMs which make use of it (e.g. dragnet). They work if the emulator has a new core which supports it.

Share this post


Link to post
Share on other sites
4 hours ago, sage said:

AG will not run in emulators.

Why? unsupported features in the emulators or copy protections in the rom?

 

EDIT: don't worry, found the answer.

Edited by Nop90

Share this post


Link to post
Share on other sites
On 12/31/2020 at 7:33 AM, 42bs said:

Great, it worked. New driver uploaded.

 

I added also a busy check for the write bench: 6.8s for the whole 64k.

Whre did you upload it. I want to optimze the code and want to work on the latest version.

 

karri's bitbucket site has the old version.  I'm worried that different version spread on the net.

Edited by Nop90

Share this post


Link to post
Share on other sites
13 minutes ago, Nop90 said:

Whre did you upload it. I want to optimze the code and want to work on the latest version.

 

karri's bitbucket site has the old version.  I'm worried that different version spread on the net.

new_bll

 

Share this post


Link to post
Share on other sites

Who is the owner of newcc65? It would be good to also have that in a public place (as stated in the dev-containers thread as well). Is that yours, @42bs and would you be willing to host it in your GitHub repo?

Share this post


Link to post
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.
Note: Your post will require moderator approval before it will be visible.

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...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...