Page 2 of 15
Posted: Mon Apr 04, 2011 8:51 am
by micro_brain
Fortunately, the Vero pen turned up this morning so I could start as I have all the other components apart from the 6502 and EEPROM programmer / eraser (from China - TOP853).
How does it compare to the Willem EPROM Programmer? This is the first time I've heard of it.
Don't know, never seen the Willem one. Actually, I've never used an EEPROM burner at all, so I have no experience to offer.
However, as is typical of me, I did the research after buying the device. I saw lots of comments about the TOP853 saying it was obsolete, had crappy software that isn't updated anymore and only works with some versions of Windows (OSX? Forget it!). Other comments seem to say the Willem is better and/or more reliable. Horror tales of bad soldering inside the TOP... but this can all be rectified by any half decent hobbyist. On the other hand, I've seen one comment (actually on this forum) by someone who has one and says it's fine. Maybe I'll be lucky.
Personally I just want it to work once - I doubt I'll use it often.
Posted: Mon Apr 04, 2011 9:31 am
by PaulF
This is an interesting project, I was looking at the clock circuit and was wondering if someone could explain why he takes 8Mhz to 1Mhz instead of just a 1Mhz xtal ? What purpose does it serve? I haven't looked at the ASIC datasheet to figure out why its being fed a 307Khz signal, I am guessing for the baud rate.
So the next thought that came to mind is it possible to use such clock divisions to run a CPU at 8Mhz and run slower legacy devices at a 1Mhz clock rate? every 8th clock the legacy device would spew its data? Reason Im asking is I found a couple of 6551's in the parts drawer and would sure like to use but not if the CPU has to be slowed down to 1Mhz.
Should work right? Seems like common practice to run the CPU at one speed and the hardware/pci/isa stuff at another speed.
The main reasons for using an 8MHz xtal rather than a 1MHz one are that the 8MHz one is smaller and
much cheaper. Also, dividing the clock down by a multiple of 2 gives a clock signal with a 50% duty cycle - this eases the timing constraints when designing a fast system (And 1MHz was fast when the 6502 came out!)
You are right about the 307kHz signal for the ACIA. Divided by 16, this gives a 19200 baud rate.
Unfortunately, if you clock the CPU at 8MHz, it expects everything else to work at 8MHz. You can use the RDY pin to introduce wait states, or use clock speed switching, to interface with slower devices but this rapidly becomes complicated and I much prefer to keep the CPU running at one speed.
Rockwell 6502AP
Posted: Mon Apr 04, 2011 2:45 pm
by micro_brain
Ah... I just noticed i ordered a Rockwell 6502AP processor, listed as NMOS 2Mhz. Is this compatible? I hope so!
Posted: Mon Apr 04, 2011 7:18 pm
by digidice
That makes sense.. 6850's are a rare critter. anyone using something else instead? 6551?
You are right about the 307kHz signal for the ACIA. Divided by 16, this gives a 19200 baud rate.
Unfortunately, if you clock the CPU at 8MHz, it expects everything else to work at 8MHz. You can use the RDY pin to introduce wait states, or use clock speed switching, to interface with slower devices but this rapidly becomes complicated and I much prefer to keep the CPU running at one speed.
Posted: Mon Apr 04, 2011 9:13 pm
by fachat
That makes sense.. 6850's are a rare critter. anyone using something else instead? 6551?
I'm using the 16550 from the PC world. Good because they have a 16byte FIFO, which allows for much longer latencies.
André
Posted: Tue Apr 05, 2011 12:37 am
by 8BIT
That makes sense.. 6850's are a rare critter. anyone using something else instead? 6551?
I am using an Exar XR68C92 Dual UART which has a Motorola bus (6502) and can be clocked plenty fast enough (16Mhz on my 65816 board).
It comes in 40 pin DIP or TQFP package.
Daryl
Posted: Tue Apr 05, 2011 2:22 am
by BigDumbDinosaur
That makes sense.. 6850's are a rare critter. anyone using something else instead? 6551?
I'm using the NXP 2692 DUART, which also has a FIFO for each receive channel. It's a bit less challenging to interface to the 65xx bus (65C816 in my case) than the 16550, but the latter is better known to those who monkey with PC hardware (I'm not one of them). I've tested both channels at 115.2 Kbps CBAT with the '816 running at 12.5 MHz. There's also an octal version, the 2698B.
Posted: Tue Apr 05, 2011 2:28 am
by BigDumbDinosaur
That makes sense.. 6850's are a rare critter. anyone using something else instead? 6551?
I am using an Exar XR68C92 Dual UART which has a Motorola bus (6502) and can be clocked plenty fast enough (16Mhz on my 65816 board).
It comes in 40 pin DIP or TQFP package.
Daryl
They also list it with a PLCC44 package, which is the same as the 2692 I used in my POC unit.
101 with a twist.
Posted: Wed Apr 06, 2011 4:49 am
by digidice
So I thought I would throw together a real schematic and while I was at it thought why not a 816 CPU,
Pretty Much A straight Copy of the original but easier to read what goes where without having to look across 3 graphic images. I changed the frequency a bit, should run 2Mhz. 1Mhz restored by running pin 8 on IC3 to Pin 3 on IC1A
SCHEMATIC
BOARD
It seems to be a moderate rework to get this to work with a more advanced Serial IC because this circuit does not use Address lines (among other lines) like the newer Uart IC's do.
The ISA part shown on the board is for later use as I will run the Data, Address, Signal, etc lines down there after I get my GAL programmer and can make the mess 'o glue logic go poof..
Posted: Wed Apr 06, 2011 10:55 am
by micro_brain
@digidice
Looks pretty good to me! I would have loved a proper board for mine but I don't have enough expertise... yet! If you are prototyping this board and have a second board left over, let me know.. we can meke a deal...
@ChuckT
The Top853 turned up this morning. Had it plugged into a PC running Win XP in no time. The software is a little dodgy, but with a little trial and error I have got it to burn the Micro UK101 rom. Only took 5 seconds - is this about right? The image is mostly 0xFF with the data amounting to around 12k.
The main thing, I think, is to select the correct EEPROM chip. It defaults to some 40 pin monster. I tried to get it to auto detect but it didn't work. The ROM should always be positioned upside down (ie, notch towards the bottom where the ZIF socket's lever is. Once I'd worked this out (duhh..) it was all pretty smooth going. It appears to have many capabilities including testing 74xx series ICs.
So, cautiously, I will say it's OK for the money. Reading rewiews I get the impression that the Willem model is in the same market sector. I just hope it has burned the EEPROM properly, if not it's out with the UV eraser box (still in the mail). It appears to check OK with the ROM file, so for now I am happy.
I need to test the wiring on my UK101 board next...
FAIL
Posted: Wed Apr 06, 2011 4:23 pm
by micro_brain
Well, I completed the board, checked all the wiring (found a couple of mistakes, rectified them) and connected it up to a 5v power supply and RS-232 to a PC running Hyperterminal.
DOES NOT WORK
Unfortunately, I have no means of checking the circuit other than continuity and voltage testing. There is +5v at all the proper points on the board, and all the Gnd / Vss connections are correct. It is drawing around 200mA when powered up.
There are many points of failure here apart fom the board itself or one of the components:
- did the ROM burn properly?
- have I wired TX/RX the right way round?
- is Hyperterm setup properly (it's on COM1 19200 baud, 8 buts, 1 stop, no handshaking per GS's web page)
etc, etc
If anyone has any suggestions I would be very pleased to hear them.
Posted: Wed Apr 06, 2011 5:16 pm
by leeeeee
There's quite a bit you can test without specialised test equipment.
Got an AM radio? You should hear a signal around 1000KHz which would show that the oscillator and divider are working.
If you have a piezo sounder you can remove the ROM, RAM and ACIA and make one of these ..
http://www.themotionstore.com/leeedavis ... index.html
.. which can be used to test that the CPU is at least fetching instructions. It should work in the ROM and RAM sockets.
have I wired TX/RX the right way round?
You can test this with an LED and 1K resistor in series. When idle the Tx pin should light the LED. You can test both the 6502 and PC side to make sure one is on pin 2 and one on pin 3.
Lee.
Posted: Wed Apr 06, 2011 5:19 pm
by ElEctric_EyE
From your earlier post of the default EEPROM settings for your burner, I'll bet it didn't burn correct.
Is there a way to verify the burn? Read it back and double check the machine code?
Good luck!
Posted: Wed Apr 06, 2011 6:24 pm
by micro_brain
From your earlier post of the default EEPROM settings for your burner, I'll bet it didn't burn correct.
Is there a way to verify the burn? Read it back and double check the machine code?
Good luck!
No, I was able to set the proper EEPROM type and verify the burn was successful. I also exited the program (which is quirky I think, but others say it works fine) and went in again, loaded the image from file and verified again. It was fine. However, just to be sure I am erasing and reburning it.
Hi, Lee! I saw the NOP generator when I was browsing the site last week. Was hoping it would not be necessary to build one.. because I don't yet have a box full of old bits, everything has to be bought. I think I will retest all the lines as many had to be moved about to install the power lines. Could be I broke something. Would love to discover what has been done wrong!
Oh, no AM radios here.... it's all FM & digital. Maybe in the garage... Hmm...
Speaking of 'scopes, could a PC not be used as one, with its built in d/a converter should be fine (line in via a resistor? any ideas?)..
Posted: Wed Apr 06, 2011 6:41 pm
by BigEd
You might want to check out
this thread - by writing short test programs into the ROM, and carefully choosing which addresses they access (they should all end in tight loops) you can have the test program communicate results to you by signalling on the address lines - which you measure with a voltmeter, or an LED with resistor.