Jump to content
IGNORED

ARC Clock


flashjazzcat

Recommended Posts

I've built the ARC RTC described here:

 

ARC Clock

 

However, although the ARCLOCK.SYS driver seems to initialize and accepts the date and time, the time/date aren't saving between powerdowns. I'm interfacing the unit with an IntSDX, which is supposed to have the address decoder built into the GAL.

 

Anyone know the hardware base address for ARC? I'd like to monitor the registers with EYE or some such. I may have done something wrong in the battery circuit, but in any case I want to verify that the registers are updating properly.

 

Also: surely the RTC 72421A has a built-in oscillator?

Edited by flashjazzcat
Link to comment
Share on other sites

From what I see, the adresses are $D520-$D52F.

Yikes: just as well Hias helped me alter the decoder on the MyIDE...

 

I thought it would have been on $D1xx for some reason. Anyway, the driver recognizes the device and the time updates properly while the computer is powered up. It would appear, then, that a problem with the 3v circuit is causing the time to be lost when the power's turned off. The time/date certainly survive a warmstart, but I'm only measuring a fraction of the required voltage across VDD.

Link to comment
Share on other sites

I thought it would have been on $D1xx for some reason. Anyway, the driver recognizes the device and the time updates properly while the computer is powered up. It would appear, then, that a problem with the 3v circuit is causing the time to be lost when the power's turned off. The time/date certainly survive a warmstart, but I'm only measuring a fraction of the required voltage across VDD.

 

Make sure the battery is good and the diodes are not reversed.

Link to comment
Share on other sites

Make sure the battery is good and the diodes are not reversed.

Diodes weren't reversed, but weren't the right type. I found a closer match till I get the proper ones; it seems to work now. icon_smile.gif

 

 

Hi,

 

I was tinkering with that over the last few months trying to come up with a simple pcb that would hook onto the intSDX board via a ribbon cable between. Was a little daunted by whether the schematic would work so only did a board design. Did you run into any errors in the schematic? Other than the diodes I mean.icon_smile.gif

Link to comment
Share on other sites

Diodes weren't reversed, but weren't the right type. I found a closer match till I get the proper ones; it seems to work now. :)

As I wrote in my email, another problem with the ARC clock (and many other battery backed-up devices) is the chip-enable logic (the stuff with the R and C and the schmitt-trigger).

 

It would be better to replace this circuit with a dedicated voltage supervisor (Dallas/Maxim has tons of them, for example).

 

The current circuit prevents access while the Atari is powered down and for a certain amount of time during/after powerup (while R is charging the C). But it doesn't prevent access while the Atari is powering down, so there's a slight chance that something bad happens to the time in the RTC whenever you power down your Atari.

 

These voltage supervisors are specifically made to circumvent these problems: access to the device is only allowed if VCC is above a certain level (plus, optionally, after a defined time after VCC has reached this level to prevent access while other parts in your Atari are still powering up). So, whenever VCC starts dropping access the the RTC is automatically disabled.

 

so long,

 

Hias

Link to comment
Share on other sites

I was tinkering with that over the last few months trying to come up with a simple pcb that would hook onto the intSDX board via a ribbon cable between. Was a little daunted by whether the schematic would work so only did a board design. Did you run into any errors in the schematic? Other than the diodes I mean.icon_smile.gif

I'm more likely to have the errors than the schematic. :) I ended up changing the battery circuit to this one, if only because it seemed to make slightly more sense to my limited comprehension. But this one has instructions for a circuit designed to avoid the problems Hias mentions. I've left space on the board for this, or a circuit more along the lines of what Hias is suggesting (at the moment, there's NO power-up/down protection whatsoever):

 

post-21964-129148072885_thumb.jpg

 

It's not pretty (especially underneath), but if you look at my blog you'll see what this is plugged into. The whole thing is push-fit apart from the two wires going to the IntSDX. At the moment it's still WIP: I'm waiting for diodes and a CMOS chip. It sort of works, but I'm not sure if the "rogue write" issue is responsible for the date not being correct every time I boot up. If I get a design finalised that works, I'd love to get the adapter produced professionally one day (although its functionality will be superceded by Candle's Ultimate 1MB).

 

As I wrote in my email, another problem with the ARC clock (and many other battery backed-up devices) is the chip-enable logic (the stuff with the R and C and the schmitt-trigger).

 

It would be better to replace this circuit with a dedicated voltage supervisor (Dallas/Maxim has tons of them, for example).

 

The current circuit prevents access while the Atari is powered down and for a certain amount of time during/after powerup (while R is charging the C). But it doesn't prevent access while the Atari is powering down, so there's a slight chance that something bad happens to the time in the RTC whenever you power down your Atari.

 

These voltage supervisors are specifically made to circumvent these problems: access to the device is only allowed if VCC is above a certain level (plus, optionally, after a defined time after VCC has reached this level to prevent access while other parts in your Atari are still powering up). So, whenever VCC starts dropping access the the RTC is automatically disabled.

I've just ordered some free samples from Maxim. Will the wiring be self-evident for electronics noobs like myself? :)

Link to comment
Share on other sites

Just download the datasheet from Maxim, they contain example circuits. If you stick to them it all should be self-evident :-)

OK - appreciated. I actually think these diodes are also dropping the voltage too much (would explain right month/wrong day/right minutes/wrong hour): hopefully the right ones will arrive next week.

Link to comment
Share on other sites

OK - appreciated. I actually think these diodes are also dropping the voltage too much (would explain right month/wrong day/right minutes/wrong hour): hopefully the right ones will arrive next week.

 

That makes sense to me, Diodes have very specific voltage drops, its hard to substitute in an application like this.

Link to comment
Share on other sites

OK - appreciated. I actually think these diodes are also dropping the voltage too much (would explain right month/wrong day/right minutes/wrong hour): hopefully the right ones will arrive next week.

Well, the best solution then would be to throw out all this discrete diode/R/C/schmitt-trigger stuff and use a dedicated NVRAM controller like the Dallas/Maxim 1210. It takes care of switching between standard/battery power and also gates CE to disable the chip while the Atari is powering up/down. And you also don't have to worry (too much) about voltage drop - output voltage is at least input minus 0.2 .. 0.25 V.

 

so long,

 

Hias

Link to comment
Share on other sites

Well, the best solution then would be to throw out all this discrete diode/R/C/schmitt-trigger stuff and use a dedicated NVRAM controller like the Dallas/Maxim 1210. It takes care of switching between standard/battery power and also gates CE to disable the chip while the Atari is powering up/down. And you also don't have to worry (too much) about voltage drop - output voltage is at least input minus 0.2 .. 0.25 V.

Now that I do like the sound of: just ordered one. :)

Link to comment
Share on other sites

May be a better idea to use a jumper for IOW and leave it disconnected all the time. Once the clock is set, you don't have to write to it, do you? This would prevent wild code from trashing your clock...

 

Bob

 

Just turned the computer on and it kept the date, but the time was wrong. icon_confused.gif

 

I suppose one could just add a switch to disconnect IOW in the interim.

Link to comment
Share on other sites

May be a better idea to use a jumper for IOW and leave it disconnected all the time. Once the clock is set, you don't have to write to it, do you? This would prevent wild code from trashing your clock...

This is indeed an elegant and cheap solution. However, it's more educational for me to construct something more sophisticated. :)

Link to comment
Share on other sites

  • 3 weeks later...

Well, thanks to Hias, the plug-in ARC clock (modified to use a Maxim 1210) works. Oddly enough, it doesn't like the SDX ARCLOCK.SYS driver on the 4.43RC cartridge, but works great with an older driver downloaded from atari8.info. Time to make another one now, to go in the 1MB 800XL. :)

Link to comment
Share on other sites

Well, thanks to Hias, the plug-in ARC clock (modified to use a Maxim 1210) works. Oddly enough, it doesn't like the SDX ARCLOCK.SYS driver on the 4.43RC cartridge, but works great with an older driver downloaded from atari8.info. Time to make another one now, to go in the 1MB 800XL. icon_smile.gif

 

 

Hi,

 

Congrats! Would you mind posting a drawing of that circuit? I'm thinking about using the DS1312 to add battery monitoring. Overkill maybe, but what the heck. icon_wink.gif

Link to comment
Share on other sites

  • 2 weeks later...

No problem. I'll be dismantling and reassembling the upgrade soon (the wiring's untidy), so I'll make a drawing at the same time. Mine's simplified, since the IntSDX does the address decoding, but it should be easy enough to reinstate that part of the circuit.

 

 

Nudge....Nudge Wink... Wink. icon_lust.gif Surely you don't have anything more important to do. icon_wink.gif

 

Seriously though, any help you can give would be appreciated. Thanks.

Link to comment
Share on other sites

I haven't had time to draw a diagram, let alone re-wire and document my ARC board, but in the meantime, this is the information trail I used:

 

Atariki ARC design

 

post-21964-12943148869_thumb.png

 

That's the starting point. You can disregard all the caps and diodes, since the Maxim 1210 takes care of the power feeds. I also discarded the HCT138, since my IntSDX board has the address decoder built into the GAL logic. IOW comes off GAL pin 15, and IOR from pin 16.

 

Details here.

 

OK. So if you're not using IntSDX, follow the Atariki design, but omit the power circuit in the box-out, and the caps on the VPA line (pin 18). The crystal is also not needed, since the RTC has a built-in oscillator.

 

Hias explained the connections for the Maxim 1210 to me in an email:

 

ALE [of the RTC-72421] (pin 3) and CS1 (pin 15) should be connected to Atari's +5V, /CS0 (pin 2) to the 1210's CE output and VDD (pin 18) to the 1210's VCC out.

 

Also check that the 1210 is connected properly (you can compare it with the schematics of my SRAM extension on my homepage), other than that you only need to connect ALE and CS1 with Atari's +5V.

 

Here's the EPSON datasheet for the RTC72421 (I found it the most informative):

 

ETM17E_01_R7242.pdf

 

And for the Maxim 1210:

 

DS1210.pdf

 

The first diagram (figure 1) on page 3 of the 1210 datasheet clearly explains how the 3.3v battery connects to the DS1210.

 

I hope that makes sense. I really need to write this up cohesively, and include a diagram of the CPU adapter board I designed (which allows easy plug-in installation of modules like the RTC; I'd really like to get some professionally made up. They're more or less identical to the VBXE adapters).

 

If you have more questions, I'll be happy to try and answer them in the meantime! icon_smile.gif

Edited by flashjazzcat
Link to comment
Share on other sites

I haven't had time to draw a diagram, let alone re-wire and document my ARC board, but in the meantime, this is the information trail I used:

 

Atariki ARC design

 

post-21964-12943148869_thumb.png

 

That's the starting point. You can disregard all the caps and diodes, since the Maxim 1210 takes care of the power feeds. I also discarded the HCT138, since my IntSDX board has the address decoder built into the GAL logic. IOW comes off GAL pin 15, and IOR from pin 16.

 

Details here.

 

Hias explained the connections for the Maxim 1210 to me in an email:

 

ALE [of the RTC-72421] (pin 3) and CS1 (pin 15) should be connected to Atari's +5V, /CS0 (pin 2) to the 1210's CE output and VDD (pin 18) to the 1210's VCC out.

 

Also check that the 1210 is connected properly (you can compare it with the schematics of my SRAM extension on my homepage), other than that you only need to connect ALE and CS1 with Atari's +5V.

 

The first diagram (figure 1) on page 3 of the 1210 datasheet clearly explains how the 3.3v battery connects to the DS1210.

 

I hope that makes sense. I really need to write this up cohesively, and include a diagram of the CPU adapter board I designed (which allows easy plug-in installation of modules like the RTC; I'd really like to get some professionally made up. They're more or less identical to the VBXE adapters).

 

If you have more questions, I'll be happy to try and answer them in the meantime! icon_smile.gif

 

 

So as I understand using the intSDX, we are looking at about three items on a board plus connections, a DS1210, a RTC-72421 and a battery. No other components? Seems too simple. icon_ponder.gif

 

I suppose as you say the DS1210 includes all the power feeds and the intSDX decodes the address info. Wow! Should be a simple mod to substitute a DS1312.

 

Okay now to the drawing board to see how I can translate this to an Eagle schematic.

 

Thanks!

Link to comment
Share on other sites

So as I understand using the intSDX, we are looking at about three items on a board plus connections, a DS1210, a RTC-72421 and a battery. No other components? Seems too simple. icon_ponder.gif

That's correct. I too was amazed, since it seems too simple to be true, but it does work. The most complex thing about it is routing the wiring. It would make a really nice etched PCB...

 

By the way: sincere apologies to folks who have sent me stuff by email to test. I've been pretty sick the past few days so I haven't been near the computers too much.

Edited by flashjazzcat
Link to comment
Share on other sites

So as I understand using the intSDX, we are looking at about three items on a board plus connections, a DS1210, a RTC-72421 and a battery. No other components? Seems too simple. icon_ponder.gif

That's correct. I too was amazed, since it seems too simple to be true, but it does work. The most complex thing about it is routing the wiring. It would make a really nice etched PCB...

 

By the way: sincere apologies to folks who have sent me stuff by email to test. I've been pretty sick the past few days so I haven't been near the computers too much.

 

Get well soon Jon :)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...