{"id":134,"date":"2018-08-01T20:51:27","date_gmt":"2018-08-01T10:51:27","guid":{"rendered":"http:\/\/simmohacks.zapto.org\/wordpress\/?p=134"},"modified":"2018-11-14T20:50:18","modified_gmt":"2018-11-14T10:50:18","slug":"ecb2650-part-2-building-a-prototype","status":"publish","type":"post","link":"https:\/\/simmohacks.com\/wordpress\/2018\/08\/01\/ecb2650-part-2-building-a-prototype\/","title":{"rendered":"ECB2650 &#8211; Part 2 &#8211; Building a prototype"},"content":{"rendered":"<p>Since I was ultimately wanting to interface with the Retrobrew Computers group ECB designs, it was logical to make a prototype on a Eurocard prototyping board, so I could plug it up to the ECB backplane and test out interfacing with the other I\/O boards and ensure it all worked before committing to a proper PCB.<\/p>\n<p>I drew out a bit of a layout that allowed enough space for wiring without cluttering the board too much.<\/p>\n<figure id=\"attachment_117\" aria-describedby=\"caption-attachment-117\" style=\"width: 840px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180523_213628.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-117 size-large\" src=\"https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180523_213628-1024x768.jpg\" alt=\"\" width=\"840\" height=\"630\" srcset=\"https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180523_213628-1024x768.jpg 1024w, https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180523_213628-300x225.jpg 300w, https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180523_213628-768x576.jpg 768w, https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180523_213628-1200x900.jpg 1200w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/a><figcaption id=\"caption-attachment-117\" class=\"wp-caption-text\">Bare board starts to take shape.<\/figcaption><\/figure>\n<figure id=\"attachment_137\" aria-describedby=\"caption-attachment-137\" style=\"width: 840px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180602_092805.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-137 size-large\" src=\"https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180602_092805-1024x768.jpg\" alt=\"\" width=\"840\" height=\"630\" srcset=\"https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180602_092805-1024x768.jpg 1024w, https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180602_092805-300x225.jpg 300w, https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180602_092805-768x576.jpg 768w, https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180602_092805-1200x900.jpg 1200w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/a><figcaption id=\"caption-attachment-137\" class=\"wp-caption-text\">Close-up of the underside showing the power rails.<\/figcaption><\/figure>\n<p>For the power rails, I ran a length of wire down each side of the board, one for the positive 5V and the other for Ground.\u00a0 They also line up with the power connections on the 96-pin DIN 41612 EuroCard connector, so I can power the board from the backplane.\u00a0 Then I ran wires up the middle of each of the chips for VCC and GND.\u00a0 I also threw in bypass capacitors for each chip for good measure.<\/p>\n<p>To make the board a little easier to wire, I took Grant Searle&#8217;s excellent <a href=\"http:\/\/searle.hostei.com\/grant\/labels\/index.html\">Chip Label <\/a>sheet and added a few of my own, and taped them to the sockets.\u00a0 This saved an enormous amount of time, not having to look back and forth to the schematic.\u00a0 I started with A0 and wired it to all the chips it needed to go, and then crossed it off the list.\u00a0 This way I would be sure not to miss any.\u00a0 I worked systematically through the address, data and control lines, until it was all done.<\/p>\n<figure id=\"attachment_136\" aria-describedby=\"caption-attachment-136\" style=\"width: 840px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180526_175742.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-136 size-large\" src=\"https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180526_175742-1024x768.jpg\" alt=\"\" width=\"840\" height=\"630\" srcset=\"https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180526_175742-1024x768.jpg 1024w, https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180526_175742-300x225.jpg 300w, https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180526_175742-768x576.jpg 768w, https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180526_175742-1200x900.jpg 1200w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/a><figcaption id=\"caption-attachment-136\" class=\"wp-caption-text\">Lots of wiring to do.<\/figcaption><\/figure>\n<figure id=\"attachment_138\" aria-describedby=\"caption-attachment-138\" style=\"width: 840px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180626_214715.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-138 size-large\" src=\"https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180626_214715-1024x576.jpg\" alt=\"\" width=\"840\" height=\"473\" srcset=\"https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180626_214715-1024x576.jpg 1024w, https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180626_214715-300x169.jpg 300w, https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180626_214715-768x432.jpg 768w, https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180626_214715-1200x675.jpg 1200w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/a><figcaption id=\"caption-attachment-138\" class=\"wp-caption-text\">Wiring all finished&#8230;hopefully.<\/figcaption><\/figure>\n<p>Before throwing the chips in, I did some basic short\/open checking with a multimeter and checked that 5V was getting to the correct pins.\u00a0 Then I put in the TTL logic chips and oscillator, and powered it up to do a smoke test.\u00a0 All good, and a logic probe test of the oscillator finds life, so in went the CPU and memory ready for an all up test.<\/p>\n<figure id=\"attachment_139\" aria-describedby=\"caption-attachment-139\" style=\"width: 840px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180717_172221.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-139 size-large\" src=\"https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180717_172221-1024x576.jpg\" alt=\"\" width=\"840\" height=\"473\" srcset=\"https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180717_172221-1024x576.jpg 1024w, https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180717_172221-300x169.jpg 300w, https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180717_172221-768x432.jpg 768w, https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180717_172221-1200x675.jpg 1200w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/a><figcaption id=\"caption-attachment-139\" class=\"wp-caption-text\">Chips installed!!<\/figcaption><\/figure>\n<p>The jumpers in the top left hand corner near the reset switch, are to select the ROM size (1K, 2K, 4K or 8K).\u00a0 You will notice I left the ECB bus buffers out at this stage until I have made sure that the basic computer functions.\u00a0 I will put them in when I am ready to start testing it with an ECB I\/O board (probably the <a href=\"https:\/\/www.retrobrewcomputers.org\/doku.php?id=boards:ecb:diskio-v3:start\">DiskIO V3 board<\/a>).<\/p>\n<figure id=\"attachment_140\" aria-describedby=\"caption-attachment-140\" style=\"width: 840px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180812_132821.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-140 size-large\" src=\"https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180812_132821-1024x576.jpg\" alt=\"\" width=\"840\" height=\"473\" srcset=\"https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180812_132821-1024x576.jpg 1024w, https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180812_132821-300x169.jpg 300w, https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180812_132821-768x432.jpg 768w, https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180812_132821-1200x675.jpg 1200w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/a><figcaption id=\"caption-attachment-140\" class=\"wp-caption-text\">Wired up for testing.<\/figcaption><\/figure>\n<p>You will also notice the EEPROM socket has a header and cable running elsewhere and that the EEPROM is not actually in circuit.\u00a0 I have a ROM emulator which I can load with the boot image I want to present to the CPU, which of course will be the original PIPBUG binary for my initial tests.<\/p>\n<p>OK, so let&#8217;s see if this thing works. Switching on, hopefully expecting a console prompt, but nothing.\u00a0 A few clicks of the reset switch, nothing.\u00a0 I check for smoke and a hot chip or two, but that all seems OK.\u00a0 So I start probing around with the logic probe to see if there is any life.\u00a0 I&#8217;m not getting much from the serial output of the CPU and the main logic enable signal (OPREQ) doesn&#8217;t seem to be oscillating like I would expect it too.\u00a0 OK, so lets get to some troubleshooting.<\/p>\n<figure id=\"attachment_155\" aria-describedby=\"caption-attachment-155\" style=\"width: 840px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180826_134624.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-155 size-large\" src=\"https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180826_134624-1024x576.jpg\" alt=\"\" width=\"840\" height=\"473\" srcset=\"https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180826_134624-1024x576.jpg 1024w, https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180826_134624-300x169.jpg 300w, https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180826_134624-768x432.jpg 768w, https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180826_134624-1200x675.jpg 1200w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/a><figcaption id=\"caption-attachment-155\" class=\"wp-caption-text\">The cheap and nasty test rig&#8230;but it works.<\/figcaption><\/figure>\n<p>I wired up some LEDs on a breadboard and just used jumpers for the address bus and plugged them into the CPU socket.\u00a0 White wires are the data lines, blue for the address lines and yellow for control.\u00a0 I can use the address lines to step through the ROM image and use the LEDs to verify what the CPU is seeing on the data lines.\u00a0 Doing this I can slow down the process of reading from the ROM and reading and writing to the RAM, double checking that the logic is doing what it should.\u00a0 Using this process I can usually find most wiring problems.<\/p>\n<figure id=\"attachment_154\" aria-describedby=\"caption-attachment-154\" style=\"width: 840px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180826_133936.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-154\" src=\"https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180826_133936-1024x576.jpg\" alt=\"\" width=\"840\" height=\"473\" srcset=\"https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180826_133936-1024x576.jpg 1024w, https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180826_133936-300x169.jpg 300w, https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180826_133936-768x432.jpg 768w, https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180826_133936-1200x675.jpg 1200w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/a><figcaption id=\"caption-attachment-154\" class=\"wp-caption-text\">Close-up of the wiring in the CPU socket.<\/figcaption><\/figure>\n<p>I found a few wires not soldered down properly (or at all), but once they were fixed it sprang into life.\u00a0With the board now giving a console prompt, I could check the functionality that the boot image, PIPBUG, gives me and I loaded a couple of short programs into memory to test.<\/p>\n<p><a href=\"https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/Answerback.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-173\" src=\"https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/Answerback.jpg\" alt=\"\" width=\"602\" height=\"515\" srcset=\"https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/Answerback.jpg 863w, https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/Answerback-300x257.jpg 300w, https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/Answerback-768x657.jpg 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/a>I started with the shortest program I could find to start with.\u00a0 That program was from the March 1977 edition of Electronics Australia and was written by Jim Rowe in July of 1976 to test a Signetics development board, the PC1500.\u00a0 I wonder if he would care if someone in 2018 is typing a program, he wrote over 40 years ago, into a newly built 2650 microcomputer, at 110 baud?<\/p>\n<p>All was looking good, until I ran a memory test program to test out the full 31K of RAM (32K minus the 1K ROM image) that was installed.\u00a0 I was testing blocks of RAM and everything was looking good, until I ran the test at address 0x2000h and above.\u00a0 As soon as the memory test got to this point, it was telling me I couldn&#8217;t write to memory.\u00a0 I expected this memory space to be RAM, so what was going on?<\/p>\n<p>Part 3 will detail how I find the problem and the changes I make to the prototype.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Since I was ultimately wanting to interface with the Retrobrew Computers group ECB designs, it was logical to make a prototype on a Eurocard prototyping board, so I could plug it up to the ECB backplane and test out interfacing with the other I\/O boards and ensure it all worked before committing to a proper &hellip; <a href=\"https:\/\/simmohacks.com\/wordpress\/2018\/08\/01\/ecb2650-part-2-building-a-prototype\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;ECB2650 &#8211; Part 2 &#8211; Building a prototype&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[21,14,22],"tags":[25,23,13,15,7,27,24,26,8],"class_list":["post-134","post","type-post","status-publish","format-standard","hentry","category-8-bit-microcomputers","category-electronics","category-retrobrew-computers","tag-25","tag-8-bit","tag-diy","tag-electronics","tag-hardware","tag-kicad","tag-microcomputer","tag-signetics","tag-software"],"_links":{"self":[{"href":"https:\/\/simmohacks.com\/wordpress\/wp-json\/wp\/v2\/posts\/134","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/simmohacks.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/simmohacks.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/simmohacks.com\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/simmohacks.com\/wordpress\/wp-json\/wp\/v2\/comments?post=134"}],"version-history":[{"count":12,"href":"https:\/\/simmohacks.com\/wordpress\/wp-json\/wp\/v2\/posts\/134\/revisions"}],"predecessor-version":[{"id":222,"href":"https:\/\/simmohacks.com\/wordpress\/wp-json\/wp\/v2\/posts\/134\/revisions\/222"}],"wp:attachment":[{"href":"https:\/\/simmohacks.com\/wordpress\/wp-json\/wp\/v2\/media?parent=134"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/simmohacks.com\/wordpress\/wp-json\/wp\/v2\/categories?post=134"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/simmohacks.com\/wordpress\/wp-json\/wp\/v2\/tags?post=134"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}