{"id":166,"date":"2018-08-26T21:38:48","date_gmt":"2018-08-26T11:38:48","guid":{"rendered":"http:\/\/simmohacks.zapto.org\/wordpress\/?p=166"},"modified":"2018-11-14T20:51:18","modified_gmt":"2018-11-14T10:51:18","slug":"ecb2650-part-3-re-design-and-modifications","status":"publish","type":"post","link":"https:\/\/simmohacks.com\/wordpress\/2018\/08\/26\/ecb2650-part-3-re-design-and-modifications\/","title":{"rendered":"ECB2650 &#8211; Part 3 &#8211; Re-design and modifications"},"content":{"rendered":"<p>So, in Part 2 we found an issue where the ROM address space was reappearing in the memory map when it wasn&#8217;t meant too.\u00a0 I thought I&#8217;d try and use an excel spreadsheet to formulate the logic on the board and verify the design, and was able to put in a hex address and see the logic change. With this I soon found the problem with the design.<\/p>\n<figure id=\"attachment_141\" aria-describedby=\"caption-attachment-141\" style=\"width: 840px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/V1addressingflaw.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-141\" src=\"https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/V1addressingflaw-1024x521.jpg\" alt=\"\" width=\"840\" height=\"427\" srcset=\"https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/V1addressingflaw-1024x521.jpg 1024w, https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/V1addressingflaw-300x153.jpg 300w, https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/V1addressingflaw-768x391.jpg 768w, https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/V1addressingflaw-1200x611.jpg 1200w, https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/V1addressingflaw.jpg 1334w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/a><figcaption id=\"caption-attachment-141\" class=\"wp-caption-text\">Bad addressing design.<\/figcaption><\/figure>\n<figure id=\"attachment_164\" aria-describedby=\"caption-attachment-164\" style=\"width: 597px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/addressing_logic_old.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-164 \" src=\"https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/addressing_logic_old.jpg\" alt=\"\" width=\"597\" height=\"345\" srcset=\"https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/addressing_logic_old.jpg 963w, https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/addressing_logic_old-300x174.jpg 300w, https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/addressing_logic_old-768x444.jpg 768w\" sizes=\"auto, (max-width: 597px) 85vw, 597px\" \/><\/a><figcaption id=\"caption-attachment-164\" class=\"wp-caption-text\">Spreadsheet with addressing logic. Note that this is the fixed logic.<\/figcaption><\/figure>\n<p>In my haste to get a design which allowed different sized ROM images to work in an 8Kbytes EEPROM\/Flash device, I neglected to properly test the addressing logic.\u00a0 The answer of course is I didn&#8217;t take into consideration the proper states of A13 and A14, which is why the ROM is appearing to repeat itself through the memory map. Obviously my (brief and flawed) testing didn&#8217;t pick this up.<\/p>\n<p>You will notice that in the spreadsheet above, I have added the A13 and A14 address lines, to make the logic work properly, and it does what I intended.\u00a0 However this presented another problem.\u00a0 To make this happen, I needed 2 new NOT gates.\u00a0 To do this I needed another 74LS06 (or other free gates that could be used as a NOT) to make up the needed logic.\u00a0 How was I going to do this with my already populated prototype?\u00a0 I had no room left.\u00a0 Sure, I could add an extra piece of board, turn the chip upside down and just wire it in. But doing this kind of hack was ugly.\u00a0 A bit of thought was needed.<\/p>\n<figure id=\"attachment_163\" aria-describedby=\"caption-attachment-163\" style=\"width: 597px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/addressing_logic.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-163\" src=\"https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/addressing_logic.jpg\" alt=\"\" width=\"597\" height=\"421\" srcset=\"https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/addressing_logic.jpg 894w, https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/addressing_logic-300x211.jpg 300w, https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/addressing_logic-768x541.jpg 768w\" sizes=\"auto, (max-width: 597px) 85vw, 597px\" \/><\/a><figcaption id=\"caption-attachment-163\" class=\"wp-caption-text\">Logic design with a spreadsheet.<\/figcaption><\/figure>\n<p>Enter spreadsheet logic design V2.\u00a0 I found that by using 3-input NOR gates instead of the NAND gates, allowed me to eliminate the NOT gates on the address lines and save myself from adding an extra chip.<\/p>\n<figure id=\"attachment_167\" aria-describedby=\"caption-attachment-167\" style=\"width: 840px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/ECB2650v2sch.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-167\" src=\"https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/ECB2650v2sch-1024x724.jpg\" alt=\"\" width=\"840\" height=\"594\" srcset=\"https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/ECB2650v2sch-1024x724.jpg 1024w, https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/ECB2650v2sch-300x212.jpg 300w, https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/ECB2650v2sch-768x543.jpg 768w, https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/ECB2650v2sch-1200x849.jpg 1200w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/a><figcaption id=\"caption-attachment-167\" class=\"wp-caption-text\">Design V2.<\/figcaption><\/figure>\n<p>Above is the new V2 design, and I have properly tested this using the spreadsheet I developed.\u00a0 Some would say this is what I should have done the first time round, but you live and learn.\u00a0 The CPU, EEPROM and RAM section and the ECB buffers are the same. I have been able to replace the 74LS10 3x 3-input NAND gate chip with a 74LS27 3x 3-input NOR gate chip.\u00a0 I have moved some gates around now that I have a few spare, and I have added some better on-board I\/O addressing and a latch for the ROM enable\/disable control.\u00a0 Rather than just using a single latch for this purpose, I would use a 6 gate flip flop IC which will give me some future expandability, possibly RAM paging.<\/p>\n<p>Now, onward to modify the prototype.<\/p>\n<figure id=\"attachment_168\" aria-describedby=\"caption-attachment-168\" style=\"width: 840px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180819_092638.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-168\" src=\"https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180819_092638-1024x576.jpg\" alt=\"\" width=\"840\" height=\"473\" srcset=\"https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180819_092638-1024x576.jpg 1024w, https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180819_092638-300x169.jpg 300w, https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180819_092638-768x432.jpg 768w, https:\/\/simmohacks.com\/wordpress\/wp-content\/uploads\/2018\/08\/20180819_092638-1200x675.jpg 1200w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/a><figcaption id=\"caption-attachment-168\" class=\"wp-caption-text\">Ripped out the old wires, ready to install the new.<\/figcaption><\/figure>\n<p>I put back on some of the labels to help with wiring again and ripped out the wires that were incorrect.\u00a0 I used the old 74LS10 label, as it has the same internal connections as a 74LS27 NOR gate and wired it up according to the KiCAD schematic.<\/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=\"size-large wp-image-155\" 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 used the test rig again to just check my logic functionality and all seems fine. So I plug in the CPU again and fire it up.\u00a0 Woohoo, PIPBUG console prompt.\u00a0 I load and run the memory test program once again and all the RAM this time checked out correctly.\u00a0 Time to test it out with a few other programs from the Electronics Australia magazines.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>So, in Part 2 we found an issue where the ROM address space was reappearing in the memory map when it wasn&#8217;t meant too.\u00a0 I thought I&#8217;d try and use an excel spreadsheet to formulate the logic on the board and verify the design, and was able to put in a hex address and see &hellip; <a href=\"https:\/\/simmohacks.com\/wordpress\/2018\/08\/26\/ecb2650-part-3-re-design-and-modifications\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;ECB2650 &#8211; Part 3 &#8211; Re-design and modifications&#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-166","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\/166","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=166"}],"version-history":[{"count":4,"href":"https:\/\/simmohacks.com\/wordpress\/wp-json\/wp\/v2\/posts\/166\/revisions"}],"predecessor-version":[{"id":223,"href":"https:\/\/simmohacks.com\/wordpress\/wp-json\/wp\/v2\/posts\/166\/revisions\/223"}],"wp:attachment":[{"href":"https:\/\/simmohacks.com\/wordpress\/wp-json\/wp\/v2\/media?parent=166"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/simmohacks.com\/wordpress\/wp-json\/wp\/v2\/categories?post=166"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/simmohacks.com\/wordpress\/wp-json\/wp\/v2\/tags?post=166"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}