*prom emulator, 3.3V/5V, with lan interface - Page 1
Forum section: electronics / general

author: legacy
author_rank: Super Contributor
timestamp: June 04, 2013, 12:44:40 pm
content: I am playing with an old fashion 68000 boardit comes with 512Kbyte (8bit data bus) eprom (@5V) and 2Mbyte of ram.the first 1Kbyte of this rom contains a "monitor" programable to understand the SREC format of uploads.So, I am able to upload a binary application in ram in order to execute it.Unfortunately the board is very slow in uploading by the serial line (at 19200bps)Here I have a commercial eprom emulatorable to emulate the 512Kbyte eprom uploading stuff at 2Mbyte/sec.Unfortunately it's a commercial product developed for the LPT (PC parallel port),it comes with Windows drivers and without any information about the protocolI'd like to build an eprom emulator, able to emulate 512Kbyte of epromand with an ethernet interface (udp/ip protocol driven)Any suggestion about the circuit ? MPU to be used ?Xmega ? 80C400 ? ... something else ?

author: Paul Price
author_rank: Super Contributor
timestamp: June 04, 2013, 02:39:46 pm
content: You can find a BIOS PROM from older mother board that are EEEPROMS that will directly plug into the 27C256/612/1024 ROM socket. Then you just program these chip pn a cheap Ebay programmer and plug the DIP package back into your MCU board.You can just tie low the address pins you don't need, just so you get the *CS and *Wr and *CE wires set correctly for your application.A typical part is something like a 22F040 (my best memory at this moment) in part number and will have 4megabits (512 * 8 bits) of space to play with. You only have to program that part of this huge memory space that fits this older MCU board. The point is that the F in the part numbers means that they are flash memory and can be programmed a zillion times at 5V.You can use the prom programmer to upload the contents of your existing BIOS rom on your MCU board.

author: legacy
author_rank: Super Contributor
timestamp: June 04, 2013, 03:33:36 pm
content: cheap Ebay flash programmers are usually "USB based" (i do not want any USB at all, i have a lot of trouble with my MAC trying to virtualize USB devices) and you have to put it the eprom in the programmer in order to burn it, then you have to remove the eprom and put it to the target, so you also need a ZIF socket on your targeti want lan equipment cause i want to program my target remotely

author: Paul Price
author_rank: Super Contributor
timestamp: June 04, 2013, 08:05:18 pm
content: I have breadboard stuff and a programmer I built and I have switched the prom back and forth a thousand times, then I break a pin, but not b 4. I don't own a ZIF socket, I just plug around.I built my own programmer using the parallel port on the PC on a solderless breadboard, almost a ZIF socket.Find yourself a nice older PC and get away from all those problems with Apple working trying to do hardware and USB.

author: legacy
author_rank: Super Contributor
timestamp: June 04, 2013, 11:48:19 pm
content: Well i already have in my lab an eprom emulator which is working on the parallel port of an old PC,i'd like toreplaceit with something i could use anywhere from any workstation (from my Apple bookair, too)also, i'd like to build it myself, but in order to do it i need an MPU which is able to* address 512Kbyte of external ram (at least) with asynchronous 8 bit data bus (i'd like to have linear addressing, i do not like paging)* do 3.3V/5V buffer level shifter, this way i will be able to emulate eprom of 3.3V devices too (e.g. m68328)* upload thing through ethernet at 10Mbit/sec at leasti opened this topic to have tricks about the choice of the MPU and the electric interface

author: codeboy2k
author_rank: Super Contributor
timestamp: June 05, 2013, 06:57:32 am
content: I've not worked with the 80C400 before, but it looks like a nice chip for your purpose..-- 24Bit linear memory addressing, you can have lots of external ram, even to the point that your code can have 2 or more 512KB sections of external ram that can be swapped into place as the current ROM being emulated...- 10/100 Ethernet-up to 8 8-bit I/O ports. I think 3 are going to be used by the 24-bit linear memory addressing, and 1 by the 8 bit data. This still leaves you with 4 remaining and you do need 4 ports for your ROM emulation side (3 for address and control, 1 for data)- its 3.3V I/O, 5V tolerant, and therefore it will still be able to emulate a 5V EPROM or EEPROM without actually needing to output 5V(you can do external level shifting if you really want to )- built in TCP/IP stack and TFTP boot in it's built in boot ROM! coolI'm going to have to get an eval board

author: legacy
author_rank: Super Contributor
timestamp: June 05, 2013, 08:42:31 am
content: I prepared an old 80C400 breakout, just soldering the chip on an cheap adapter.What eval board are you talking about ? I could buy one, too =Pp.s.if you search for "tini java" you will find an interesting application of 80c390 and 80c400, it was a little board based on these chips able to run a java virtual machine, and with a lot of internet-working-services (e.g. ftp, http web server ...), unfortunately it is not fully open sources and it was made in 2001.

author: C
author_rank: Super Contributor
timestamp: June 05, 2013, 01:21:21 pm
content: You may have a few option(s) you have not thought of. Some of those rom monitors had the ability to switch serial port speed with a command. Some had switches on the board to change the default speed.With a 68k you may just have the limit of the actual chip that does the actual serial port conversion.With old computers, was a common thing to to load a very small program that would allow the old computer to work with new hardware or faster speeds. Depending on the type of memory the old computer has and it's design this program could still exist after a reset of the old computer.C

author: legacy
author_rank: Super Contributor
timestamp: June 05, 2013, 01:56:16 pm
content: i know, i personally written an"Srec/S19 talker"for 68hc11it a program written in assembly which set up the serial port to 19.200bpsin order to put my application into ramBuffalo(motorola m68hc11 monitor) is working the same way as mytalker(i have to confess you ... i have grabbed a bit of code fromBuffalo)On my board i've got Mon68K, but the serial port of the m68000 board is hw limited to 19200bpsit's an old m6850 uard device with a fix board rate generator (external circuit, old fashion school )i could replace it with a faster and modern unit (e.g. m68681) but ....an eprom emulator is faster, simpler, and more fashionable =Palso i have a lot of data to upload, up to 512Kbyteon this m68060 board i have got two m68681-uart's chipsso the mon68k can be forced to a faster uart data rate, up tp 38Kbpsand this is the best i can do without information lost.Also my 8051 board has the same problemand look, it has got a pretty eprom of 32Kbyte that could be emulated =P

author: C
author_rank: Super Contributor
timestamp: June 05, 2013, 03:38:17 pm
content: When I think of a 8051 and large memory I see the memory segment type memory access problems.the 68K does not have this problem, you can easily work with a 2 mbyte array for example while on segment memory you have to add checks or program in a way to insure access is in a segment.What I see you need as a cheap cure so you could have many and not have the need to switch between boards.I would think larger, what could make things better on both sides.Shared ram: shared ram that both could write and read from. For eprom you just disable the write capability for the old device for a section.Common New IO: you could have what looks to the old system as very smart IO.One old computer I have uses two ports to do scsi. The original scsi protocol is easy to do from an 8 bit computer. So the new thing looks like a scsi bus to old device and via code on new device adds the smarts. In stead of having to write a large amount of code for each old device you move the code work to the common code on new device. What the old device thinks is a disk drive locally attached could actually be something from the net with the smarts on the new device.The 68k as others have the capability for dma to be done off processor. With access to proper lines the new device could have full read/write access to the old system.part of the problems you may be having with USB may be how the USB bus is being used. Having something connected to a PC act like a serial port or parallel port is actually preventing good use of USB.just ideasC

author: legacy
author_rank: Super Contributor
timestamp: June 05, 2013, 05:19:43 pm
content: This projectis helping about the idea of the buffering interface.

author: legacy
author_rank: Super Contributor
timestamp: June 05, 2013, 05:38:15 pm
content: thiscould have been a good product, if it was not based on USB and badly supported from the software point of view =(

author: C
author_rank: Super Contributor
timestamp: June 05, 2013, 08:18:02 pm
content: You have two sides, the pc side and the connected device side.PC sideJust about every operating system has a terminal program.These days most can access a USB Drive.Some have capability of a USB network connected device.If your device can tap some of this capability then less software to create for the PC side. This also could mean over all faster operation.To the pc side your might want to look like a hub with a bunch of connected USB devices.For example, your device acts like a USB Drive. Most mpu(s) with a built in USB interface can do this. There is most likely an example of code for this. Lots of options with all the programing on the device. On your device you could add some fake folders and files. So to load ram could be just a file copy from pc to fake file ram. Want to update your device software, copy to firmware fake file. Special actions could take place based on the filename/type and/or what folder the file was stored or read from. Want to read an eprom or ram, on pc a file copy does the work.On connected device side looking at the new hardware.Eprom is three buses unidirectionalRam is two buses unidirectional and one bidirectional.IO is like RAMA lot of options are enabled by using a bi direction buswith access to 68k's dma signals and bidirectional buses you could have full access to the connected deviceIf you do not want to disrupt the connected device, you need buffers very near the connected device.So instead of using unidirectional buffers close to connected device, use bidirectional ones.Add some smarts to new device to pick the direction(s) possible when connected. If connected at a rom or ram location, address bus may have to be one way only. At rom location data could be one or two way and at ram location two way.You may find that if you can get a connection to a write signal, the connected device may be able to use a rom connection as if is was ramThe device mpu:you could pick about any mpu and get something to work. EPROM Emulator Mk2 with it's PIC16F877 puts speed limits in place just by that choice. the PIC16F877.serial port limits.If you pick a mpu with true USB 2.0 (High Speed) maximum signaling rate of 480 Mbit/s (effective throughput up to 35 MB/s or 280 Mbit/s) your data rates could easily be faster then 10BASE-T Ethernet. If you pick a mpu that also has built 100BASE-T Ethernet you have a second connection. Remember that Ethernet has higher overhead then USB.C

author: legacy
author_rank: Super Contributor
timestamp: June 11, 2013, 04:46:35 pm
content: also Olimex has a lot of interesting Ethernet Modules-ENC624J60010/100 Mbit/sec-DM900010/100 Mbit/sec-CS890010 Mbit/sec-ENC28J6010 Mbit/sec

author: C
author_rank: Super Contributor
timestamp: June 11, 2013, 07:38:31 pm
content: If you want speed, better look at the Ethernet Modules connection to the mpu.Can the mpu do anything else while the Ethernet is working at full speed? Can the mpu receive & process the incoming data at full speed? What is the overhead. A high speed connection with slow processing is still a slow connection.Are you going to have to create a bunch of software just to support Ethernet or USB?I would expect the mpu's that support DM9000 will be faster then some of the others in your list. With a built in interface there is also the possible pre-built software.suggest you take a look at something like the ST STM32F4 or something like it from NXP that has the interface connections to a good Ethernet Phy and/or USB 2.0 Phy.Not saying this is a good choice, just the internal interface to these two connections is better then some of the other options.C

author: legacy
author_rank: Super Contributor
timestamp: June 11, 2013, 09:45:24 pm
content: I do not want any USB interface, as i have written since the first post.Only ethernet.

author: legacy
author_rank: Super Contributor
timestamp: June 12, 2013, 10:41:19 pm
content: a pretty gooduc tcp/ip stack, developed for ENC28J60 application with MPU=AVR8