Z80B starts and stops?Z80 control pins not reading a defined logic levelCan a Z80 be powered at 3.3v and still run reliably at 3-4MHz?Memory design with 4 256K X 1 Bit IC's to a Z80Z80 Binary Front Panel DesignHow can z80 uses a 4-bit ALU and return results in a single clock cycle?SRAM isn't blank on powerup, is this normal?Prevent bit-bang data-in line from back powering device?Z80 RD and WR to RD/WR?Why am I Seeing A Weird “Notch” on the Data Line For Some Logical 1s?
How do we avoid CI-driven development...?
Is refreshing multiple times a test case for web applications?
Should I take out a personal loan to pay off credit card debt?
How quickly could a country build a tall concrete wall around a city?
How can glass marbles naturally occur in a desert?
Why is there a need to prevent a racist, sexist, or otherwise bigoted vendor from discriminating who they sell to?
Colleagues speaking another language and it impacts work
What happen if I gain the control of aura that enchants an opponent's creature? Would the aura stay attached?
Is this cheap "air conditioner" able to cool a room?
Can a College of Swords bard use Blade Flourishes multiple times in a turn?
Physics of Guitar frets and sound
How to write "upright" integrals with automatic sizing
Can an SPI slave start a transmission in full-duplex mode?
Arrange a list in ascending order by deleting list elements
Why are the inside diameters of some pipe larger than the stated size?
Dropdowns & Chevrons for Right to Left languages
How can I tell if a flight itinerary is fake?
Tikzcd pullback square issue
Why was CPU32 core created, and how is it different from 680x0 CPU cores?
Do other countries guarantee freedoms that the United States does not have?
Is there a way to create a report for the failed entries while calling REST API
Why should public servants be apolitical?
How to mark beverage cans in a cooler for a blind person?
How do I explain to a team that the project they will work on for six months will 100% fail?
Z80B starts and stops?
Z80 control pins not reading a defined logic levelCan a Z80 be powered at 3.3v and still run reliably at 3-4MHz?Memory design with 4 256K X 1 Bit IC's to a Z80Z80 Binary Front Panel DesignHow can z80 uses a 4-bit ALU and return results in a single clock cycle?SRAM isn't blank on powerup, is this normal?Prevent bit-bang data-in line from back powering device?Z80 RD and WR to RD/WR?Why am I Seeing A Weird “Notch” on the Data Line For Some Logical 1s?
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
$begingroup$
I've decided to take some time to refresh my electronics knowledge after 30 years out of college. I've run into a small problem that I can't quite figure out and need a pointer.
TLDR: The Z80 initially starts (watching M1 strobing) but halts after just two or three, sometimes more, sometimes fewer, machine cycles.
I've built an ~ 5hz 555 astable circuit to drive the clock line of a Z80B. The Z80B has all of the data lines pulled down to ground. The INT, NMI, HALT, BUSRQ, and WAIT are all pulled high. I have the RESET on an RC circuit to go high after 1 second, plus a push-button to pull it low for a manual reset (pictured below... Ignore the crystal oscillator circuit; that isn't connected to anything).
The 555 is putting out a nice steady square pulse at about a 50% duty cycle. M1 will go high during reset and then cycle between one and five times, but then stops (seeming to indicate that the processor has stopped). With the data lines pulled to zero, I'm expecting it to continue to run, executing NOPs.
Can someone see anything obvious that I've done wrongly here? The thing that keeps running through my head (and that I can't seem to find any data on anywhere) is that the clock might be too slow if the Z80B uses dynamic registers internally. I can't seem to locate any authoritative datasheet for the Z80B.
z80
$endgroup$
add a comment |
$begingroup$
I've decided to take some time to refresh my electronics knowledge after 30 years out of college. I've run into a small problem that I can't quite figure out and need a pointer.
TLDR: The Z80 initially starts (watching M1 strobing) but halts after just two or three, sometimes more, sometimes fewer, machine cycles.
I've built an ~ 5hz 555 astable circuit to drive the clock line of a Z80B. The Z80B has all of the data lines pulled down to ground. The INT, NMI, HALT, BUSRQ, and WAIT are all pulled high. I have the RESET on an RC circuit to go high after 1 second, plus a push-button to pull it low for a manual reset (pictured below... Ignore the crystal oscillator circuit; that isn't connected to anything).
The 555 is putting out a nice steady square pulse at about a 50% duty cycle. M1 will go high during reset and then cycle between one and five times, but then stops (seeming to indicate that the processor has stopped). With the data lines pulled to zero, I'm expecting it to continue to run, executing NOPs.
Can someone see anything obvious that I've done wrongly here? The thing that keeps running through my head (and that I can't seem to find any data on anywhere) is that the clock might be too slow if the Z80B uses dynamic registers internally. I can't seem to locate any authoritative datasheet for the Z80B.
z80
$endgroup$
$begingroup$
Just gonna throw this out there: add ceramic decoupling caps for the Z80 and every other IC. Proximity matters.
$endgroup$
– DKNguyen
Jul 29 at 15:07
$begingroup$
Ah, yes.. I'll do that right now. I forgot that basic. :)
$endgroup$
– David Hoelzer
Jul 29 at 15:17
$begingroup$
David, went through a few data sheets for generic Z80. Seems that their CMOS version allows a very low frequency clock, so you should be OK. But their NMOS version looks to be dynamic as you suspect...a clock whose period is > 2us may balk. Don't know whether your Z80B is CMOS or NMOS.
$endgroup$
– glen_geek
Jul 29 at 16:14
$begingroup$
@glen_geek Thanks... I can't seem to find a good way to check, either. I'm assuming that since it is apparently functioning at 5 hz, it's CMOS.. though it is doing this odd thing when it gets to address greater than 0x01FF... It may get as high as 0x2FF, but then seems to halt.. Also, the 9th and 10th bits in the address might oscillate inverse to the M1 line. I have not yet worked out why those two lines are acting differently.
$endgroup$
– David Hoelzer
Jul 29 at 17:22
add a comment |
$begingroup$
I've decided to take some time to refresh my electronics knowledge after 30 years out of college. I've run into a small problem that I can't quite figure out and need a pointer.
TLDR: The Z80 initially starts (watching M1 strobing) but halts after just two or three, sometimes more, sometimes fewer, machine cycles.
I've built an ~ 5hz 555 astable circuit to drive the clock line of a Z80B. The Z80B has all of the data lines pulled down to ground. The INT, NMI, HALT, BUSRQ, and WAIT are all pulled high. I have the RESET on an RC circuit to go high after 1 second, plus a push-button to pull it low for a manual reset (pictured below... Ignore the crystal oscillator circuit; that isn't connected to anything).
The 555 is putting out a nice steady square pulse at about a 50% duty cycle. M1 will go high during reset and then cycle between one and five times, but then stops (seeming to indicate that the processor has stopped). With the data lines pulled to zero, I'm expecting it to continue to run, executing NOPs.
Can someone see anything obvious that I've done wrongly here? The thing that keeps running through my head (and that I can't seem to find any data on anywhere) is that the clock might be too slow if the Z80B uses dynamic registers internally. I can't seem to locate any authoritative datasheet for the Z80B.
z80
$endgroup$
I've decided to take some time to refresh my electronics knowledge after 30 years out of college. I've run into a small problem that I can't quite figure out and need a pointer.
TLDR: The Z80 initially starts (watching M1 strobing) but halts after just two or three, sometimes more, sometimes fewer, machine cycles.
I've built an ~ 5hz 555 astable circuit to drive the clock line of a Z80B. The Z80B has all of the data lines pulled down to ground. The INT, NMI, HALT, BUSRQ, and WAIT are all pulled high. I have the RESET on an RC circuit to go high after 1 second, plus a push-button to pull it low for a manual reset (pictured below... Ignore the crystal oscillator circuit; that isn't connected to anything).
The 555 is putting out a nice steady square pulse at about a 50% duty cycle. M1 will go high during reset and then cycle between one and five times, but then stops (seeming to indicate that the processor has stopped). With the data lines pulled to zero, I'm expecting it to continue to run, executing NOPs.
Can someone see anything obvious that I've done wrongly here? The thing that keeps running through my head (and that I can't seem to find any data on anywhere) is that the clock might be too slow if the Z80B uses dynamic registers internally. I can't seem to locate any authoritative datasheet for the Z80B.
z80
z80
edited Jul 30 at 11:23
David Hoelzer
asked Jul 29 at 15:03
David HoelzerDavid Hoelzer
1528 bronze badges
1528 bronze badges
$begingroup$
Just gonna throw this out there: add ceramic decoupling caps for the Z80 and every other IC. Proximity matters.
$endgroup$
– DKNguyen
Jul 29 at 15:07
$begingroup$
Ah, yes.. I'll do that right now. I forgot that basic. :)
$endgroup$
– David Hoelzer
Jul 29 at 15:17
$begingroup$
David, went through a few data sheets for generic Z80. Seems that their CMOS version allows a very low frequency clock, so you should be OK. But their NMOS version looks to be dynamic as you suspect...a clock whose period is > 2us may balk. Don't know whether your Z80B is CMOS or NMOS.
$endgroup$
– glen_geek
Jul 29 at 16:14
$begingroup$
@glen_geek Thanks... I can't seem to find a good way to check, either. I'm assuming that since it is apparently functioning at 5 hz, it's CMOS.. though it is doing this odd thing when it gets to address greater than 0x01FF... It may get as high as 0x2FF, but then seems to halt.. Also, the 9th and 10th bits in the address might oscillate inverse to the M1 line. I have not yet worked out why those two lines are acting differently.
$endgroup$
– David Hoelzer
Jul 29 at 17:22
add a comment |
$begingroup$
Just gonna throw this out there: add ceramic decoupling caps for the Z80 and every other IC. Proximity matters.
$endgroup$
– DKNguyen
Jul 29 at 15:07
$begingroup$
Ah, yes.. I'll do that right now. I forgot that basic. :)
$endgroup$
– David Hoelzer
Jul 29 at 15:17
$begingroup$
David, went through a few data sheets for generic Z80. Seems that their CMOS version allows a very low frequency clock, so you should be OK. But their NMOS version looks to be dynamic as you suspect...a clock whose period is > 2us may balk. Don't know whether your Z80B is CMOS or NMOS.
$endgroup$
– glen_geek
Jul 29 at 16:14
$begingroup$
@glen_geek Thanks... I can't seem to find a good way to check, either. I'm assuming that since it is apparently functioning at 5 hz, it's CMOS.. though it is doing this odd thing when it gets to address greater than 0x01FF... It may get as high as 0x2FF, but then seems to halt.. Also, the 9th and 10th bits in the address might oscillate inverse to the M1 line. I have not yet worked out why those two lines are acting differently.
$endgroup$
– David Hoelzer
Jul 29 at 17:22
$begingroup$
Just gonna throw this out there: add ceramic decoupling caps for the Z80 and every other IC. Proximity matters.
$endgroup$
– DKNguyen
Jul 29 at 15:07
$begingroup$
Just gonna throw this out there: add ceramic decoupling caps for the Z80 and every other IC. Proximity matters.
$endgroup$
– DKNguyen
Jul 29 at 15:07
$begingroup$
Ah, yes.. I'll do that right now. I forgot that basic. :)
$endgroup$
– David Hoelzer
Jul 29 at 15:17
$begingroup$
Ah, yes.. I'll do that right now. I forgot that basic. :)
$endgroup$
– David Hoelzer
Jul 29 at 15:17
$begingroup$
David, went through a few data sheets for generic Z80. Seems that their CMOS version allows a very low frequency clock, so you should be OK. But their NMOS version looks to be dynamic as you suspect...a clock whose period is > 2us may balk. Don't know whether your Z80B is CMOS or NMOS.
$endgroup$
– glen_geek
Jul 29 at 16:14
$begingroup$
David, went through a few data sheets for generic Z80. Seems that their CMOS version allows a very low frequency clock, so you should be OK. But their NMOS version looks to be dynamic as you suspect...a clock whose period is > 2us may balk. Don't know whether your Z80B is CMOS or NMOS.
$endgroup$
– glen_geek
Jul 29 at 16:14
$begingroup$
@glen_geek Thanks... I can't seem to find a good way to check, either. I'm assuming that since it is apparently functioning at 5 hz, it's CMOS.. though it is doing this odd thing when it gets to address greater than 0x01FF... It may get as high as 0x2FF, but then seems to halt.. Also, the 9th and 10th bits in the address might oscillate inverse to the M1 line. I have not yet worked out why those two lines are acting differently.
$endgroup$
– David Hoelzer
Jul 29 at 17:22
$begingroup$
@glen_geek Thanks... I can't seem to find a good way to check, either. I'm assuming that since it is apparently functioning at 5 hz, it's CMOS.. though it is doing this odd thing when it gets to address greater than 0x01FF... It may get as high as 0x2FF, but then seems to halt.. Also, the 9th and 10th bits in the address might oscillate inverse to the M1 line. I have not yet worked out why those two lines are acting differently.
$endgroup$
– David Hoelzer
Jul 29 at 17:22
add a comment |
1 Answer
1
active
oldest
votes
$begingroup$
Thanks to @DKNguyen for reminding me of a super basic standard "thing to do". I neglected to install decoupling capacitors between the power and ground of the 555 (556) and the Z80B.
With 1nF capacitors installed, it immediately begins to behave exactly as expected.
$endgroup$
$begingroup$
You can accept this answer to indicate that your question is solved.
$endgroup$
– Transistor
Jul 29 at 16:56
$begingroup$
I can't accept it for another 36 hours.. But thanks! @Transistor
$endgroup$
– David Hoelzer
Jul 29 at 17:19
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
return StackExchange.using("schematics", function ()
StackExchange.schematics.init();
);
, "cicuitlab");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "135"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2felectronics.stackexchange.com%2fquestions%2f450694%2fz80b-starts-and-stops%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
Thanks to @DKNguyen for reminding me of a super basic standard "thing to do". I neglected to install decoupling capacitors between the power and ground of the 555 (556) and the Z80B.
With 1nF capacitors installed, it immediately begins to behave exactly as expected.
$endgroup$
$begingroup$
You can accept this answer to indicate that your question is solved.
$endgroup$
– Transistor
Jul 29 at 16:56
$begingroup$
I can't accept it for another 36 hours.. But thanks! @Transistor
$endgroup$
– David Hoelzer
Jul 29 at 17:19
add a comment |
$begingroup$
Thanks to @DKNguyen for reminding me of a super basic standard "thing to do". I neglected to install decoupling capacitors between the power and ground of the 555 (556) and the Z80B.
With 1nF capacitors installed, it immediately begins to behave exactly as expected.
$endgroup$
$begingroup$
You can accept this answer to indicate that your question is solved.
$endgroup$
– Transistor
Jul 29 at 16:56
$begingroup$
I can't accept it for another 36 hours.. But thanks! @Transistor
$endgroup$
– David Hoelzer
Jul 29 at 17:19
add a comment |
$begingroup$
Thanks to @DKNguyen for reminding me of a super basic standard "thing to do". I neglected to install decoupling capacitors between the power and ground of the 555 (556) and the Z80B.
With 1nF capacitors installed, it immediately begins to behave exactly as expected.
$endgroup$
Thanks to @DKNguyen for reminding me of a super basic standard "thing to do". I neglected to install decoupling capacitors between the power and ground of the 555 (556) and the Z80B.
With 1nF capacitors installed, it immediately begins to behave exactly as expected.
answered Jul 29 at 15:20
David HoelzerDavid Hoelzer
1528 bronze badges
1528 bronze badges
$begingroup$
You can accept this answer to indicate that your question is solved.
$endgroup$
– Transistor
Jul 29 at 16:56
$begingroup$
I can't accept it for another 36 hours.. But thanks! @Transistor
$endgroup$
– David Hoelzer
Jul 29 at 17:19
add a comment |
$begingroup$
You can accept this answer to indicate that your question is solved.
$endgroup$
– Transistor
Jul 29 at 16:56
$begingroup$
I can't accept it for another 36 hours.. But thanks! @Transistor
$endgroup$
– David Hoelzer
Jul 29 at 17:19
$begingroup$
You can accept this answer to indicate that your question is solved.
$endgroup$
– Transistor
Jul 29 at 16:56
$begingroup$
You can accept this answer to indicate that your question is solved.
$endgroup$
– Transistor
Jul 29 at 16:56
$begingroup$
I can't accept it for another 36 hours.. But thanks! @Transistor
$endgroup$
– David Hoelzer
Jul 29 at 17:19
$begingroup$
I can't accept it for another 36 hours.. But thanks! @Transistor
$endgroup$
– David Hoelzer
Jul 29 at 17:19
add a comment |
Thanks for contributing an answer to Electrical Engineering Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2felectronics.stackexchange.com%2fquestions%2f450694%2fz80b-starts-and-stops%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
$begingroup$
Just gonna throw this out there: add ceramic decoupling caps for the Z80 and every other IC. Proximity matters.
$endgroup$
– DKNguyen
Jul 29 at 15:07
$begingroup$
Ah, yes.. I'll do that right now. I forgot that basic. :)
$endgroup$
– David Hoelzer
Jul 29 at 15:17
$begingroup$
David, went through a few data sheets for generic Z80. Seems that their CMOS version allows a very low frequency clock, so you should be OK. But their NMOS version looks to be dynamic as you suspect...a clock whose period is > 2us may balk. Don't know whether your Z80B is CMOS or NMOS.
$endgroup$
– glen_geek
Jul 29 at 16:14
$begingroup$
@glen_geek Thanks... I can't seem to find a good way to check, either. I'm assuming that since it is apparently functioning at 5 hz, it's CMOS.. though it is doing this odd thing when it gets to address greater than 0x01FF... It may get as high as 0x2FF, but then seems to halt.. Also, the 9th and 10th bits in the address might oscillate inverse to the M1 line. I have not yet worked out why those two lines are acting differently.
$endgroup$
– David Hoelzer
Jul 29 at 17:22