SD2IEC

From C64-Wiki

Revision as of 17:06, 4 April 2012 by Rafgc (Talk | contribs)
Jump to: navigation, search
SD2IEC 1.2

This page covers the SD2IEC hardware device. For the firmware used by the SD2IEC hardware, see sd2iec (firmware). For similar hardware projects, see MMC2IEC and uIEC.

SD2IEC is a hardware mass storage device using an SD/MMC card and interfacing with the IEC bus. It is based on the ATmega644 microcontroller from the Atmel AVR microcontroller family. The most prominent use of SD2IEC is emulation/replacement of a Commodore-1541 disk drive for a C64. Hardware and the microcontroller's firmware is available as open source (GPL).

Contents

History

The SD2IEC device is an enhanced version of the MMC2IEC device. In contrast to MMC2IEC, it uses the ATmega644 microcontroller (more RAM and Flash memory than ATmega32) and uses an improved circuit for driving the IEC bus that is more reliable if multiple drives are connected. Altough other MCUs can be used for building SD2IEC (atmega1284p or atmega1281 for uIEC), original atmega644p is still main target for keeping it usable as long as possible, even if that means to remove some rarely used functions. Additional resources of larger MCUs will be propably used for additional features, that should not affect smaller atmega644p version in terms of usability.


  • 2012-14-02: New schematics are available to download for arm2iec, this device is using ARM cpu instead of AVR, greater capabilities means more possibilities to bring to light. Current firmware is alpha version.
  • 2010-12-25: Support for GEOS is implemented in 10.1 firmware (stable).
  • 2009-02-06: SD2IEC hardware is available commercially at NKC now (SD2IEC, daughter board with standard IEC connectors. If you do not use the daughter board, you have to connect DB pins 1,3,4,5,10 for basic functionality. Get the 5V power for pin 1 for example from the datasette port)
  • 2008-03-15: SD2IEC 1.2 PCB layout release by Shadowolf (differences to MMC2IEC 1.9: ATmega644, better IEC line drivers, disk swap button, I/O pads, mount holes) - about 120 pieces made

Features

  • Compatible with C64, C64DTV, C128 (no burst mode), C16, etc.
  • Power consumption: Idle ~15mA, busy 30-80mA
  • sd2iec_1.2.zip - schematics and Eagle PCB files
    • R100/R101 are placeholders for a reset button (connecting the AVR reset pin with ground) or a connection with the IEC reset line (AVR reset pin connected via a standard diode with IEC reset - the cathode of the diode has to point towards the IEC reset line). This is optional.

Firmware features

For detailed information and features of the firmware, please see sd2iec.

How does the SD2IEC compare with the 1541-III and 1541 Ultimate?

1541-III vs. SD2IEC
The sd2iec firmware provides much better compatibility and support for some fastloaders - 20x speed and more!
SD2IEC does not feature a display. Exchanging disks is possible using the disk switch button though.
SD2IEC PCB is even smaller than 1541-III-DTV PCB.
SD2IEC features a bootloader that fetches firmware from the SD card at startup - so firmware updates are simple.
SD2IEC uses an ATmega644 microcontroller - open source C compilers are available for this platform.
1541 Ultimate vs. SD2IEC
SD2IEC is much cheaper.
Since the 1541 Ultimate completely emulates a 1541, it's much more compatible (supports all fastloaders).
SD2IEC does not provide any extra functionality the 1541 Ultimate provides cartridge, network and REU emulation.
SD2IEC is faster than 1541 Ultimate for all normal IEC operations it emulates since it emulates only protocol level (no slow mechanics).

Can I use a parallel cable with the SD2IEC?

No. Theoretically the hardware could be extended for that. However, the standard CBM serial bus is already quite fast (see the benchmarks on the sd2iec firmware article).

Software

Bootloader

  • It is the only file required to programm manually using serial (ISP) or parallel programmer, it reads firmware .bin file from SD card (FAT16 and FAT12 supported) and updates ATMega flash if needed
  • On powerup, red LED is on. If an updated firmware is found on SD card, green light blinks for some seconds during flashing. If no updated firmware is found, green light flashes once. When complete, both LEDs turn off.
  • Firmware (.bin) needs to reside in the SD card's root directory. Only file size and signature have to match.
  • avrdude flashing command: avrdude -p m644 -U flash:w:sd2iec_bootloader.hex:i -U hfuse:w:0xDA:m -U efuse:w:0xFD:m -U lfuse:w:0xE7:m
    • this programs lfuse/clock settings last so programming without attached crystal is possible (once!)
    • programming with a 5V programmer is possible (do not attach an SD card or IEC device during programming then)
  • Fuse settings explained...
    • BOOTSZ = 01 (boot size 2048 words, start $7800), BOOTRST = 0 (boot reset vector enabled)
    • Crystal osc., start-up 16CLK + 4.1ms: CKSEL = 0111, SUT = 10
    • CKDIV = 1 (disable clock divider by 8)
  • Download: sd2iec bootloader page

Firmware

It is a .bin file that is used by bootloader to update AVR from SD CARD. For detailed information and features of the firmware, please see sd2iec.

Download: sd2iec firmware page - the correct firmware binary for the SD2IEC PCB is sw2-m644.

See also

Weblinks

Personal tools
Help and Feedback
In other languages