Wednesday, September 23, 2020

Building the : SIDBlaster-USB TicTac Edition

One of the many things that I love about the C64 is the music.  I've often looked at the HardSid and wanted to get my hands on one just to play the tunes, but to tell the truth unless I listen to a real Sid next to an emulated one or for that matter a 6581 vs a 8580 I simply can't tell the difference.

In early 2019 I stumbled across the SIDBlaster-USB TicTac Edition and added it to my build list, but more for mundane practical reasons, I'd like to try to program my own emulated SID chip and try it out outside of a C64.

The project is here http://crazy-midi.de/joomla/ and the source code and pcb is here on Github

It's taken me around 7 months to build this project, with COVID-19 about it's actually been a much harder task.

The thing I really like about this project was :

  1.  The documentation,  it is quite simply amazing and every little nuance has been recorded.

The things I didn't really like were :

  1. The difficulty in sourcing the parts.  Quite a number of them were difficult to source and a one or two items aren't manufactured anymore and are quite expensive (ignoring the SID).
  2. The number of through hole parts required.

Hopefully a new iteration of this project will be updated with more current and readily available parts.

Stealing a boost converter chip for the 9/12 volt supply. 

 
Here is the finished result,  I tested it with one of my ARMSID and it works very well.
 



 


 


Wednesday, August 19, 2020

Repair : Fixing the Video on my Amiga 600, after inadvertently breaking it


A good few months ago now I recapped one of my Amiga 600's.  The caps were really leaky and it needed immediate attention. However after I recapped it I noticed a horrible blue scan line that sat at the bottom of the floppy on the boot screen and slid upwards as the disk is inserted into the drive on screen.  This only appeared on the composite out and not the RGB.

After doing some reading I saw this blog entry ( amiga-600-video-encoder-upgrade ) with someone who had also recapped his Amiga with the same issue and he suggested the cleaning fluids went up into the 221 and 222 cans and broke them.  I did pour on a LOT of cleaning agents to clean off the acid.  He used a CXA1645M to replace the original chip and some Kapton tape to isolate the 221 and 222's. There seemed to be a lot of parts that you needed to solder on to the chip with that solution to get it working, it just looked way too fiddley.

Looking further I managed to find this blog entry with a solution that suited me a little better ( https://www.ikod.se/cxa2075m ). It used just a CXA2075M and one resistor.

So I ordered some CXA2075M 's from EBay and now here we go.

** Warning **  This was a little challenging so if you don't have the equipment or skills to do it, get someone experienced to do it for you.  When you remove the CXA1145M all display outputs stop working!!

Here is the board before I started with the Original CXA1145M and the 221 and 222 cans.  You can see the effects of the corrosion of the leaky Capacitors on the legs of the chip.


Here are the new parts as per the reference blog post ( https://www.ikod.se/cxa2075m ) 



The biggest issue I had was that the blog post was for an A1200 and not an A600.  So the removal of parts to disable the 221 and 222 parts wasn't valid for me.  As I have a desoldering gun I just removed the 221 and 222 parts instead which works just as well.  I also used a hot air rework station to remove the chip.
 
When removing the 221 and 222 parts you will likely need to add solder to the pins several times to help suck all of the old solder out.  Be patient and they will come out easily.

Taking the parts off was easy, putting the new parts on was a bit soldering of a challenge.  Oh I wish I had three hands sometimes. Here is the end result, all in all I am pretty happy with it.



The old parts removed from the motherboard

As you can see both the RGB and the composite out work a treat now and no more horrible blue line!!







Friday, June 26, 2020

Atmel ATF1504AS(L) CPLD Development Board - Part 6 - Alternate Programmer

As I mentioned before the blogger from hackup.net  has created his own programmer for the ATF1504AS CPLD so when I get the parts I'm going to document building the programmer and how to hook it up to and program my Dev Board.

Please visit the following original source sites first:

Building the Programmer

From reading the blog and the schematic I've sourced the following parts for the build:

 Part    URL NoReq Notes
 PCB Hackup Github
 1 You will need to generate your own gerber and nc drill files to get this manufactured from this file in KiCad : ATF2FT232HQ.kicad_pcb
FT232H AliExpress 1     
 ATF1504AS-10JU4-ND  Digikey U1 IC CPLD 64MC 10NS 44PLC
 ED90008-ND Digikey U1 CONN SOCKET PLCC 44POS TIN
 ED1543-ND Digikey J2 CONN HEADER VERT 10POS 2.54M
 700-MAX662AESA Mouser U2 Switching Voltage Regulators 12V
80-T491A475K16AT7280 Mouser C7, C8
 Tantalum Capacitors - Solid SMD 16V
 220nF     
 C5, C6
 220nF SMD 0805 Capacitors
 0.1uF  C1-4 0.1uF (100nF) SMD 0805 Capacitors

You will also need :
    Pin Headers  ( for J1 )
    Pin Header sockets  ( for J1 )
    Switches : I got these Sparkfun switches ( for JP1, JP2 )


Finally I have all of the parts and I've built my own programmer

 
Before you start, lets set JP1 to OFF and JP2 to 3.3V.
 

Setting up Windows 10 with the required software

You will need two pieces of software to run the programmer on Windows 10.
 
1) Zadig 2.5
 
Make sure you install the WinUSB driver first!

 
2) OpenOCD v0.10.0-14
 
        Unzip this into C:\OpenOCD
 

Trying it out

 

Put them in C:\OpenOCD\bin

Plug in your adapter

Run the command from Hackup.net
 
 



Sweet we are done!
 

 Lastly, can I program my Dev board with it!

. . . and the answer is yes, it is 100% working!!!
 
Thank you Hackup.net!
 
 


 






Atmel ATF1504AS(L) CPLD Development Board - Part 5 - Attach Switches and LEDs to demonstrate the working code

Now you have programmed the board you will need a Switch and two LEDs to show it working.  So lets build that now.

We will also build a more complex set of daughter boards for further experimentation.

Simple wire version

Let's just use the headers on the board for a quick and dirty demo to show the code we have just uploaded to the Dev board actually works.

You will need:
    • 2 x resistors 1K Ohm ( for LED's )
    • 1 x resistor 10K Ohm ( pull down for Switch GND )
    • 1 x resistor 330 Ohm ( for Switch +5v )
    • 2 x LED
    • 1 x tactile switch
    • 6 x jumper wires
    • 1 x bread board

You'll notice that pin 17 is connected both the switch and ground via a 10K resistor (pull down). This is so the pin is not floating when +5V is not being passed to it.  If it's allowed to float you will get some really weird results.  It's worth pulling it out just to observe the issue.

When complete one LED will light up.
Pressing the button will light the other LED and turn off the other.
When the button released it will switch back.

    


Simple daughter board version

Now create a couple of daughter boards for more complex code experimentation.
 

Thursday, June 25, 2020

Atmel ATF1504AS(L) CPLD Development Board - Part 4 - Write an example program and Program the CPLD

For a basic demonstration we will write a small piece of code to demonstrate the CPLD Dev board is working.  This code will use a single switch to turn on and off some LEDs.


Create a Quartus project

Start up Quartus 13.1 on your computer and we will create a new project from scratch.

  • File => New Project Wizard

  • Enter the project details and Next>
 Working Directory
 C:\altera\projects\swtichled_cpld
 Project Name
 switchLed
 Top-level Entity
 switchLed



  • Click Yes


  • Click Next>

  • Enter the following Details and Click Finish
 Family     7000s
 Package PLCC
 Pin count
 44
 Available Devices
 EPM7064SLC44-5


  • Open the pin planner

  • Setup the following pins with "node name" and "location"


  • Create the top level Design file, Click OK, Click OK and then close the pin planner




  • Double click to open the switchLed Entity


  • Replace the file contents with this! and save it

 `timescale 1ns/1ps

module switchLed
(
    output led1, led2,
    input switch1
);

assign led1 = switch1;
assign led2 = !switch1;

endmodule


  • Compile the code by double clicking on Assembler

  • You should end up with two warnings, but it will be successful.

  • You should now have a .pof file in the output directory.
       


Create the Jed file using POF2JED

  • Startup POF2JED and enter these details and click "Run"
Input File
 C:\altera\projects\swtichled_cpld\output_files\switchLed.pof
 Device 1504AS
Output File
 C:\altera\projects\swtichled_cpld\output_files\switchLed.jed


Program the CPLD using ATMISP v7.3

  • Attach the ATDH1150USK-K programmer to the Dev board and your computer



  • Startup ATMISP v7.3 and Click on Edit => Add New Device and Click OK


  • Enter the following details and Click OK
 Device Name
 ATF1504AS
 JTAG Instruction
 Program/Verify
 JEDEC File
 C:\altera\projects\swtichled_cpld\output_files\switchLed.jed




  • Now click Run


  • It should finish with success, time to move on to the next step