Coldfire Data bus.

Discussion to talk about hardware related topics only.
Post Reply
fanat9
Posts: 56
Joined: Thu Apr 24, 2008 4:23 pm
Location: Boston
Contact:

Coldfire Data bus.

Post by fanat9 »

I need to interface databus of NetBurner's 5234 module with x86 pc104 board which have both ISA(16bit) and PCI buses.
Major idea is to collect some data with NetBurner module, trigger the IRQ line on PCI or ISA bus and then somehow allow to x86 processor to read data(each cycle I need to push data to Coldfire databus?).

To interface with PCI I will definitely need some FPGA/CPLD in between for PCI's fast timing and databuffer.
Interfacing with ISA bus seems to be much easier, but still I have more questions than answers.

I remember discussion, on old yahoo board and here, related to interfacing to external memory and other devices, but never to some other buses. Is where a reason for that ?

So, could it be done? And could anyone point me in right direction, I'd appreciate it. Maybe some related examples or a good book ?
Thank you.
rnixon
Posts: 833
Joined: Thu Apr 24, 2008 3:59 pm

Re: Coldfire Data bus.

Post by rnixon »

You could use dual port ram, or even Ethernet wired internally. The right option also depends on other design requirements. What is the size and throughput of the data you need to transfer? From a hardware and perspective, is it worth the time and effort to develop a bus interface with a fpga? How many of these things are you going to make? If just a few, and the data rate is low enough, would a serial interface suffice?
v8dave
Posts: 333
Joined: Thu Dec 31, 2009 8:31 pm

Re: Coldfire Data bus.

Post by v8dave »

Dual port RAM but to be honest, this seems like overkill to have to design for ISA bus or even PCI for that matter. The ISA bus is only 8Mhz and PCI is 33Mhz but for PCI you need FPGA or use one of the PCI to ISA bus IC's out there to migrate easier to your ISA bus design. You still need to develop a driver for this if the application is to run under Windows which is going to be a task in itself. You need a driver like Entech Taiwans TVicPort etc.

How much data are you talking about and how fast do you need to transfer it?

Much better off using either USB or Ethernet if the data through put is enough for your application.

Dave...
fanat9
Posts: 56
Joined: Thu Apr 24, 2008 4:23 pm
Location: Boston
Contact:

Re: Coldfire Data bus.

Post by fanat9 »

First of all thank you guys for reply.

Right now data is 2 channels of ~96ksps 16bit ADC readings. Each 100ms long, so total about 38.4kbyte.
But because I have to process data(using FPU) and then calculate settings for next cycle, time I spend on transfer is critical. More cycles/readings per minute - better overall results. If I can transfer data within 1-2ms - it will speed up system a lot.

We use GNU/Linux for host(PC104 board), so driver a bit easier task, comparing to Win32/64 system.

Right now we use ethernet. And I like it. I like comprehensive and reliable TCP protocol, BUT... usually ethernet port used for outside communications; and second almost everybody install RJ45 connector right to the board, so wire internally to PC104's ethernet port is not always an option;

So, I'm looking for another fast way to transfer data to host.

Dual port RAM sounds like a good solution. Coldfire CPU will write to that external memory when data is ready, trigger IRQ line on host CPU, which then will read data.
How difficult is to interface dual port memory to ISA bus ?
v8dave
Posts: 333
Joined: Thu Dec 31, 2009 8:31 pm

Re: Coldfire Data bus.

Post by v8dave »

Hi there,

The issue with memory on the ISA bus is the lack of addressing range. As this is normally an IO bus, there is limited memory addressing range so you will have to do some trick work to do this. Most addresses are only 256 byte wide and there is only limited IO available, usuallly around address 0x300. You need to check the board you are using for free IO map addresses but I know you won't find anything continuous that you need.

If you use an addressable latch, you can write a 16 bit address to the latches via an IO address in your selected bus range, this then sets the address in the dual port ram that you need (eg 0x300). This will give you 64K addressing range (not sure how much you need in total) You then read or write to the dual port ram at another IO address (eg 0x301)

Hope this helps?
Dave...
fanat9
Posts: 56
Joined: Thu Apr 24, 2008 4:23 pm
Location: Boston
Contact:

Re: Coldfire Data bus.

Post by fanat9 »

I could live with 64k.
Going to google for more information on memory address latching.

Thank you!
Post Reply