AtomMMC Confusion

emulators, hardware and classic software for atom + system machines
Post Reply
User avatar
TheCorfiot
Posts: 731
Joined: Mon Jan 08, 2007 5:22 pm
Contact:

AtomMMC Confusion

Post by TheCorfiot »

Firstly apologies if i have overlooked the obvious but i have tried searching for a good while.

i have 2 Atoms one tricked out with Primes ROM/RAM board the other just a basic 12K plus 12K system.
both have AtomMMC2 interfaces which are quite a few years old and running on fw 2.9
The One Atom uses E000 MMC firmware via Phil's board the other uses A000 MMC Firmware which boots very irregular

Having just obtained a yarrb mini for the Basic Atom im looking to compile a ROM for it so the MMC2 can also be used by E000 firmware and i thought whilst im at it lets update the fw to the latest.

And this is where my confusion begins, i will admit i have been away from the atom scene for 3-4 years but, im seeing reference to AtomMMC2, AtomMMC3 and AtomMMC4 all with fw offerings thanks to the brilliant hoglet.

What i dont understand is the compatibility of this firmware over these differering versions.
I tried to download a manual for the interface, couldnt find one, I cant even find steps on how to update the firmware.
If memory serves i know there is a *CFG option setting, cant find details on that either.

Documentation or some sort of wiki seems to be very scarce...

Is anyone kind enough willing to clarify what firmware goes with what, how to update it, link to a manual maybe ?

Thank you very much :)
User avatar
hoglet
Posts: 12663
Joined: Sat Oct 13, 2012 7:21 pm
Location: Bristol
Contact:

Re: AtomMMC Confusion

Post by hoglet »

There is not a quick answer to this, because AtoMMC has evolved through several generations of hardware, and several different people have been involved. It's particularly confusing because the AtoMMC ROM, the AtoMMC PCB and the PIC firmware have overlapping version numbers which don't really match up.

So in this post I'll go through each of these areas (ROM, PCB and Firmware), give some history, and make a few comments re: upgrading.

The short answer is:
- the AtoMMC ROM is generally backwards compatible, so the latest version 3.02 should work against any hardware/firmware combination
- the firmware on the AtoMMC v2 PCB (from SirMorris) can be updated to version 2D if you want to use the newer AtoMMC ROM features that depend on firmware additions (e.g. Random Access Files, *MKDIR, *RMDIR, *RENAME).
- the firmware on the AtoMMC v3 (from SirMorris) already supports the latest features, so there is no need to update
- the firmware on the AtoMMC v4 (from Roland) already supports the latest features, so there is no need to update
- in general, firmware the v2, the v3 and the v4 boards is not compatible. You are unlikely to brick the AtomMMC, but it won't work
- the manual is is here: https://github.com/charlierobson/atommc ... ine-Manual

For the long answer, continue reading....

AtoMMC ROM Versions:

As far as the AtoMMC ROM is concerned, the latest version is version 3.02 which can be found here:
https://github.com/hoglet67/AtoMMC2/releases

This version is backwards compatible with all PCB versions and with all Firmware versions.

If you try to use a new AtoMMC ROM feature (Random Access Files, *MKDIR, *RMDIR, *RENAME) that's not supported by your existing firmware, you'll just get an error,

For the AtoMMC version history: see this post by Kees.

AtoMMC Hardware Versions:

There have been four generations of AtoMMC hardware:

AtoMMC (2008)
AtoMMCv1.jpg
This is SirMorris's first version, which connected to the PL6/7 expansion port and used the the 6522 to bit-bang the SD card. It was supported by the SDDOS file system ROM.

As far as I understand, this was only ever a vero-board prototype.

Links:
- https://arduinonut.blogspot.com/2008/09/lash-up.html
- https://arduinonut.blogspot.com/2008/07 ... again.html

AtoMMC2 (2009)
AtoMMCv2.jpg
This is SirMorris's second version, which connected to the PL8 port and used a PIC18F4520/PIC18F4525 and the FatFS library which allowed the SD Card to use a standard FAT file system.

A PCB was produced for this version, and was sold by SirMorris for many years.

This is the most common version.

The first link below is a manual.

Links:
- https://github.com/charlierobson/atommc ... ine-Manual
- https://github.com/charlierobson/atommc2-vitamins
- https://arduinonut.blogspot.com/2009/06 ... m-rev.html
- https://groups.google.com/g/bbmmc

AtoMMC v3 (2020)
AtoMMCv3.jpg
SirMorris's started work on this in 2019, and the goal was just to make minor changes to AtoMMC2 to reduce the cost of the board and make it more manufacturable.

At some during the development a couple of PIC pin assignment changed were made:
- swap the PIC pins used for MISO and MOSI on the SD Card, so the firmware can use the PIC's SPI hardware
- the PIC pin used for IRQ changed from RC6 (pin 25) to RA4 (pin 6)

The schematics in the github repository include both of these changes.

Unfortunately, it seems some prototype boards exist that include the first change, but not the second. These are hard to identify because the board has no silk screen / version information.

KenLowe managed to buy one of these in November 2019 (photo above) . This came with a modified version of the 2C firmware to support the MISO/MOSI pin swap. When Ken tried to update to the 2D it, not surprisingly, stopped working! Hoglet produces a version 2E to help Ken out.

Because of the PIC pin changes, it's not recommended to update the firmware on these board unless you really need to.

Towards the end of 2020 SirMorris decided to open source the design because he had too many other projects on the go.

Links:
- https://github.com/charlierobson/atommc-v3
- viewtopic.php?p=362281#p362281

AtoMMC v4 (2021)
AtoMMCv4.jpg
Roland created this version based on the latest v3 schematic from SirMorris.

Specifically:
- MISO uses PIC pin RC4 (pin 23)
- MOSI uses PIC pin RC5 (pin 24)
- IRQ uses PIC pin RA4 (pin 6)

Because of the PIC pin changes, it's not recommended to update the firmware on this board.

Links:
- viewtopic.php?t=20836

KenLowe's Combined AtoMMC/Econet board

Ken has recently (2022) designed a board that integrates AtoMMC and Econet onto one board, that attaches to PL8.
AtoMMC_Econet.jpg
This is based on the SirMorris's final AtoMMC V3 schematics (IRQ on pin 6, MISO on pin 23, MOSI on pin 24), which is the configuration same as Roland's V4 PCB.

Links:
- viewtopic.php?p=360674#p360674

Roland's Atom2K14/15

This is a design for a modern Atom replacement, that includes a V2 compatible AtoMMC on the main PCB.

The only difference from V2 is that the IRQ line is not connected to the PIC, so the #A000 AtoMMC ROM cannot be initialized. This is not a problem, as it's better anyway to use the #E000 AtoMMC.

Links:
- Designing a new Atom main board
- Building Rolands new Atom design...




AtoMMC PIC Firmware:

Here's a summary of the PIC Firmware versions, with notes on compatability:

- 29 - for AtoMMC v2 PCB, original version (SirMorris)
- 2A - for AtoMMC v2 PCB, 19th Oct 2014, adds support for random access files (hoglet)
- 2B - for AtoMMC v2 PCB, 8th Feb 2016, bug fixes (hoglet)
- 2C - for AtoMMC v2 PCB, 27rd Aug 2016, adds support for MKDIR, RMDIR and RENAME commands, fixed some SDDOS issues (hoglet)
- 2D - for AtoMMC v2 PCB, 20th May 2020, fixes #A000 IRQ startup race condition(SirMorris)
- 2E - for AtoMMC v3 PCB, 19th June 2022, includes PIC MISO/MOSI pin swap (hoglet)
- 30 - for AtoMMC v4 PCB, 19th June 2022, includes PIC MISO/MOSI pin swap and IRQ pin change (hoglet)
Last edited by hoglet on Mon Dec 19, 2022 4:39 pm, edited 6 times in total.
User avatar
oss003
Posts: 3849
Joined: Tue Jul 14, 2009 12:57 pm
Location: Netherlands
Contact:

Re: AtomMMC Confusion

Post by oss003 »

hoglet wrote: Sat Dec 17, 2022 2:12 pmFor the AtoMMC version history: see this post by Kees.

That's missing version 3.02:
- Added support for a fixed library directory (/LIB) for * commands
Updated now ...... thanks ..
User avatar
hoglet
Posts: 12663
Joined: Sat Oct 13, 2012 7:21 pm
Location: Bristol
Contact:

Re: AtomMMC Confusion

Post by hoglet »

oss003 wrote: Sat Dec 17, 2022 3:17 pm Updated now ...... thanks ..
Ta very much!
User avatar
TheCorfiot
Posts: 731
Joined: Mon Jan 08, 2007 5:22 pm
Contact:

Re: AtomMMC Confusion

Post by TheCorfiot »

Thank you so much

Everything is crystal clear now and I have a way forward

I'm sure this will help many other folk too.

You are a true Gentleman ;)
User avatar
TheCorfiot
Posts: 731
Joined: Mon Jan 08, 2007 5:22 pm
Contact:

Re: AtomMMC Confusion

Post by TheCorfiot »

I take it the AtomMMC implementation on Roland's 2k15 atom boards is classed as V2
User avatar
hoglet
Posts: 12663
Joined: Sat Oct 13, 2012 7:21 pm
Location: Bristol
Contact:

Re: AtomMMC Confusion

Post by hoglet »

TheCorfiot wrote: Sun Dec 18, 2022 12:16 am I take it the AtomMMC implementation on Roland's 2k15 atom boards is classed as V2
Yes.

The only difference is the PIC is not connected to the 6502 IRQ line, so if you did want to use the #A000 version of AtoMMC it wouldn't auto-initialize on BREAK.

As everyone uses the #E000 version, this is not a problem.

Dave
User avatar
KenLowe
Posts: 4675
Joined: Mon Oct 18, 2004 5:35 pm
Location: UK
Contact:

Re: AtomMMC Confusion

Post by KenLowe »

Great summary. Although not available to the wider public (yet!), it might be worth mentioning my Combined Econet AtoMMC board in your summary. It works with the '3plus' firmware you built for me, which I think is the same as the 30 firmware you mention:
hoglet wrote: Sat Dec 17, 2022 2:12 pm - 30 - for AtoMMC v4 PCB, 19th June 2022, includes PIC MISO/MOSI pin swap and IRQ pin change (hoglet)
User avatar
TheCorfiot
Posts: 731
Joined: Mon Jan 08, 2007 5:22 pm
Contact:

Re: AtomMMC Confusion

Post by TheCorfiot »

Where can we obtain the actual firmware for updating the MMC2 itself please.
As your recomendation i would like to update it to V2D

Thanks
User avatar
hoglet
Posts: 12663
Joined: Sat Oct 13, 2012 7:21 pm
Location: Bristol
Contact:

Re: AtomMMC Confusion

Post by hoglet »

TheCorfiot wrote: Sun Dec 18, 2022 12:03 pm Where can we obtain the actual firmware for updating the MMC2 itself please.
As your recomendation i would like to update it to V2D
https://github.com/hoglet67/AtoMMC2Firm ... irmware/2D

The AtoMMC boot loader is a bit fussy about SD cards. Try to find a old (<1GB) SD card and format it with FAT16.

Then copy over the atommc25.bin file, put it in the AtoMMC, and hit BREAK.

The LED will start flashing to indicate an update is inprogress. It only takes about 20 seconds.

If the LED doesn't start flashing, try just hitting BREAK again.

Dave
User avatar
TheCorfiot
Posts: 731
Joined: Mon Jan 08, 2007 5:22 pm
Contact:

Re: AtomMMC Confusion

Post by TheCorfiot »

Thank you very much ;)
User avatar
hoglet
Posts: 12663
Joined: Sat Oct 13, 2012 7:21 pm
Location: Bristol
Contact:

Re: AtomMMC Confusion

Post by hoglet »

KenLowe wrote: Sun Dec 18, 2022 10:47 am Great summary. Although not available to the wider public (yet!), it might be worth mentioning my Combined Econet AtoMMC board in your summary.
I've added a section for this, and for Roland's Atom2K14/15 (is it 14 or 15?????)
User avatar
roland
Posts: 5148
Joined: Thu Aug 29, 2013 9:29 pm
Location: Born (NL)
Contact:

Re: AtomMMC Confusion

Post by roland »

hoglet wrote: Mon Dec 19, 2022 4:40 pm I've added a section for this, and for Roland's Atom2K14/15 (is it 14 or 15?????)
It's both. The first one was developed in 2014 but had some mistakes on the board. Those were corrected in the 2k15 version. The 2k14 with the patches is the same as 2k15 so you can consider them as identical hardware.
FPGAtom: 512 KB RAM, Real Time Clock and 64 colours
MAN WOMAN :shock:
User avatar
KenLowe
Posts: 4675
Joined: Mon Oct 18, 2004 5:35 pm
Location: UK
Contact:

Re: AtomMMC Confusion

Post by KenLowe »

hoglet wrote: Sat Dec 17, 2022 2:12 pm AtoMMC2 (2009)

This is SirMorris's second version, which connected to the PL8 port and used a PIC18F4520/PIC18F4525 and the FatFS library which allowed the SD Card to use a standard FAT file system.

A PCB was produced for this version, and was sold by SirMorris for many years.

This is the most common version.

The first link below is a manual.

Links:
- https://github.com/charlierobson/atommc ... ine-Manual
- https://github.com/charlierobson/atommc2-vitamins
- https://arduinonut.blogspot.com/2009/06 ... m-rev.html
- https://groups.google.com/g/bbmmc

AtoMMC v3 (2020)

SirMorris's started work on this in 2019, and the goal was just to make minor changes to AtoMMC2 to reduce the cost of the board and make it more manufacturable.

At some during the development a couple of PIC pin assignment changed were made:
- swap the PIC pins used for MISO and MOSI on the SD Card, so the firmware can use the PIC's SPI hardware
- the PIC pin used for IRQ changed from RC6 (pin 25) to RA4 (pin 6)

The schematics in the github repository include both of these changes.

Unfortunately, it seems some prototype boards exist that include the first change, but not the second. These are hard to identify because the board has no silk screen / version information.

KenLowe managed to buy one of these in November 2019 (photo above) . This came with a modified version of the 2C firmware to support the MISO/MOSI pin swap. When Ken tried to update to the 2D it, not surprisingly, stopped working! Hoglet produces a version 2E to help Ken out.

Because of the PIC pin changes, it's not recommended to update the firmware on these board unless you really need to.

Towards the end of 2020 SirMorris decided to open source the design because he had too many other projects on the go.

Links:
- https://github.com/charlierobson/atommc-v3
- viewtopic.php?p=362281#p362281
Gosh. This is confusing.

AtoMMC2 (v2?) is detailed in this site:

https://www.acornatom.nl/sites/atomrevi ... mmmc2.html

However, the schematic (which is dated 2010), has MISO on pin 23 and MOSI on pin 24. We had previously thought this was done at or around v3!

https://www.acornatom.nl/sites/atomrevi ... schema.pdf

In fact, I can't find any schematics where MISO is on pin 24 and MOSI is on pin 23?
hoglet wrote: Sat Dec 17, 2022 2:12 pm AtoMMC PIC Firmware:

Here's a summary of the PIC Firmware versions, with notes on compatability:

- 29 - for AtoMMC v2 PCB, original version (SirMorris)
- 2A - for AtoMMC v2 PCB, 19th Oct 2014, adds support for random access files (hoglet)
- 2B - for AtoMMC v2 PCB, 8th Feb 2016, bug fixes (hoglet)
- 2C - for AtoMMC v2 PCB, 27rd Aug 2016, adds support for MKDIR, RMDIR and RENAME commands, fixed some SDDOS issues (hoglet)
- 2D - for AtoMMC v2 PCB, 20th May 2020, fixes #A000 IRQ startup race condition(SirMorris)
- 2E - for AtoMMC v3 PCB, 19th June 2022, includes PIC MISO/MOSI pin swap (hoglet)
- 30 - for AtoMMC v4 PCB, 19th June 2022, includes PIC MISO/MOSI pin swap and IRQ pin change (hoglet)
I also wonder if it's worth updating this firmware version section to include the versions I created here:

viewtopic.php?p=382586#p382586

Although, I now wonder how relevant those are, given that the V2 hardware had the MOSI / MISO changes implemented some time ago.

Confused :?.
User avatar
hoglet
Posts: 12663
Joined: Sat Oct 13, 2012 7:21 pm
Location: Bristol
Contact:

Re: AtomMMC Confusion

Post by hoglet »

KenLowe wrote: Fri Apr 26, 2024 7:47 pm However, the schematic (which is dated 2010), has MISO on pin 23 and MOSI on pin 24. We had previously thought this was done at or around v3!
I've just beeped out the connections on the AtoMMC 2.0 PCB that I bought from Charlie in ~2013:
- PIC pin 24 (SDO/RC5) connects to IDC connector pin 5 which connects to SD Card Pin 7 (DO)
- PIC pin 23 (SDI/RC4) connects to IDC connector pin 7 which connects to SD Card Pin 2 (DI) via a 1K8/3K3 voltage divider which acts as a level shifter.

This wiring is sub-optimal and prevents the use of the SPI hardware on the PIC.

All of the Version 2.x firmware use bit banging use RC4/5 as follows:
- PIC pin 24 (RC5) configured as an input (i.e. MISO)
- PIC pin 23 (RC4) configured at an output (i.e. MOSI)

Roland's Atom 2015, which uses a compatible PIC, also has this wiring, and also runs the 2.x firmware:
https://diy.acornatom.nl/download/atom2015.pdf

So the schematic you linked to doesn't accurately reflect the black AtoMMC 2.0 PCBs in circulation (dated 2010). There is a footnote on it saying saying SPI pin swap.
KenLowe wrote: Fri Apr 26, 2024 7:47 pm Although, I now wonder how relevant those are, given that the V2 hardware had the MOSI / MISO changes implemented some time ago.
I don't believe that PCBs with that change were sold until ~2020.

Confusing indeed!

Dave
User avatar
hoglet
Posts: 12663
Joined: Sat Oct 13, 2012 7:21 pm
Location: Bristol
Contact:

Re: AtomMMC Confusion

Post by hoglet »

See also this post from Charlie circa 2014:
sirmorris wrote: Thu Dec 18, 2014 9:56 pm Oh and I think I should confess at this point - when I designed the PCB I made 2 mistakes. One was a pin to the latch. Another was that I swapped the MISO/MOSI lines :oops: :oops: So the SPI transfer is actually being done in software. I think you could improve the performance of AtoMMC on your board by reinstating the hardware SPI. It would be a small change to the firmware. And you could undo the 'fix' to your board. Sorry - I should have spoken up before. #-o
viewtopic.php?p=101309#p101309
User avatar
KenLowe
Posts: 4675
Joined: Mon Oct 18, 2004 5:35 pm
Location: UK
Contact:

Re: AtomMMC Confusion

Post by KenLowe »

Thanks Dave. I was trying to help out Prime in this post, and was getting very confused about the different board versions. What really threw me was the schematic on the V2 site and the date of it.

What you've established makes a lot more sense. The schematic that I linked to earlier is clearly the 'fixed V2', which is in effect the V3, and although dated 2010, it would appear that boards with this fix didn't actually appear until 2019ish.
hoglet wrote: Fri Apr 26, 2024 10:28 pm All of the Version 2.x firmware use bit banging use RC4/5 as follows:
- PIC pin 24 (RC5) configured as an input (i.e. MISO)
- PIC pin 23 (RC4) configured at an output (i.e. MOSI)

Roland's Atom 2015, which uses a compatible PIC, also has this wiring, and also runs the 2.x firmware:
https://diy.acornatom.nl/download/atom2015.pdf
Yeah, I looked at that schematic earlier, and that just added to my confusion. It's labelled as MOSI on 24 and MISO on 23 the same as the other V3 schematics, which threw me. However, I now notice that pin 24 is wired to SD card pin 7 and pin 23 is wired to SD card pin 2 (via potential divider), which is opposite to the V3 schematics.

Other than the Atom 2015, I don't think I've ever seen any standalone V2 schematics, with PIC 23 wired through to SD card 7 and PIC 24 wired through to SD card 2 (via potential divider), which is probably the most common board revision out there! But... the board layout drawing on the V2 site does match what you have belled out, so at least that's correct!
Post Reply

Return to “acorn atom and acorn system series”