[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: gEDA-user: M68K bus and transmission line ringing
>
> > You would probably see ringing on the other chips if there is
any. One
> > saving grace in your situation is your bus speed.
>
> I currently have 16.67 MHz processor parts on hand, so that's the
speed
> I'm going to run at initially. MC68302 at 16.67 MHz *might*
be fast
> enough to serve a 2.3 Mbps line (theoretical maximum data rate for
SDSL)
> in which case I would be all set, but I would also like the have the
> option of populating a 25 MHz processor part and running it at 25
MHz.
>
> Are you saying that 25 MHz is slow enough that the ringing will die
out
> before the receiver latches the data? Or should I not count
on that?
Yes exactly. From what I remember any ringing I saw
was limited to a short period (the time which I cannot remember at the
moment) after the transitions. Essentially if the timing of your system
is setup correctly (centered I mean) then it should be fine.
>
> > In reality the control
> > signals have to be beautiful.
>
> Yeah, that's what I was thinking too. Now consider this: as
you may
> remember, M68K puts out UDS, LDS and R/W signals and external
> combinational logic is needed to turn them into OE and WE that normal
> chips can use. This aspect is unchanged in MC68302. (I'm
not using the
> LC302 version as I use all 3 SCCs.)
>
> What if I place my combinational read/write strobe decoder right next
to
> the 302, have the UDS, LDS and R/W traces run only between the 302
and
> this decoder (plus the required pull-ups), and have only the decoded
> signals disperse to the rest of the board. Where should I put
the
> series resistors: on the 302 native control signals or on the decoded
> ones? Am I correct in thinking that the series resistors should
go on
> the decoded signals? Those have the benefit of being strictly
> unidirectional w/o pull-ups.
>
> With the decoder the control outputs from the 302 will not be heavily
> loaded at all. However, they won't run very far either. Will
they be
> OK w/o resistors? My read/write strobe decoder consists of an
LS00 and
> an LS04; I've been told that the lower impedance of TTL inputs helps
> dampen the ringing; is that true?
A good rule of thumb that I always use is that if
the chips are closer than the time it takes for the edge to occur (rising
or falling) then you won't see anything. Most of the time (unless you are
using some 1G and up stuff) is about 1". That ends up being around
a transition time of 180ps on a 50 impedance internal net.
>
> There are two other control signals I'm worried about: AS (address
> strobe) and DTACK. AS should not be needed on a non-multiplexed
bus,
> but the SDSL chip wants it nonetheless, so I'll be pulling the net
into
> the SDSL part of the board. On my current schematic the M68K_AS
net
> interconnects the MC68302, the SDSL chip and a pull-up resistor. As
> I've already explained, the SDSL chip has rather inflexible placement
> and will probably be a bit away from the 68302 subsystem. I
should
> therefore put a series resistor on this net, right? Am I correct
in
> thinking that after the 302 I should have the pull-up first, then
the
> series resistor, than the long-ish trace to the SDSL chip?
>
> See further below about DTACK.
You are correct about the AS line as it's a driven
signal. The DTACK signal is another issue. It's a open drain (collector).
The '302 handles it correctly by pulling it up then releasing the line.
Unfortunately it seems that the SDSL chip is not so well designed... You
have to be careful. If the DTACK signal is still valid by the end of the
strict bus cycle you will get a BERR. (Bus Error) As it's the only chip
using the DTACK signal outside of the '302 you could use some external
logic to "clean" it up. I seem to recall having exactly the same
problem on a design using a '360 once. I used a couple of gates (actually
a bit of a CPLD) to solve this.
>
> > The address can be loud as long as it
> > settles before the minumum setup time but as it's a single source
(unless
> > you are doing DMA)
>
> I'm not doing any external DMA; all my M68K bus cycles will be initiated
> by the MC68000 core or the internal DMA engines in the MC68302.
>
> But consider this: MC68302 has a bunch of on-chip peripherals (both
> masters and slaves) connected to the M68K bus internally besides the
> MC68000 core, and it has a single continuous M68K bus both on- and
off-
> chip. From the transmission line perspective do I need to take
into
> account that the chip acts as both a driver and a receiver on each
net
> for every transaction (via different internal functional units), or
does
> the chip have buffers at the pads which hide all that internal mess?
> Does anyone know the answer to the last question specifically for
MC68302?
>
> In other words, can I still treat the address bus as single-source
even
> though there are two different units inside the chip which can drive
it?
> And do I need to worry about other internal units listening and decoding
> as the MC68000 core drives?
As long as an external device does not become a bus
master you are fine. You can (and I've done it) overwrite values in the
internal registers of the '300 series from an external master but for all
intensive purposes you can treat any internal DMA activity to the '300
series as the processor itself.
>
> > it can be controlled by series terminations at the
> > processor.
>
> OK, I think I can do this.
>
> > The data is a little harder to control as it's a multi source
> > bus. Essentially the strongest signal on the bus will be the
worst quality
> > to the other devices.
>
> I'm wondering if I can get by without resistors on the data bus and
live
> with the ringing if I ensure that the control signals are pretty.
If
> the ringing takes too long to die out, I suppose I can run with nonzero
> wait states -- I wouldn't want that in the finished product, but it's
> still better than throwing the first batch of boards out completely.
>
Typically without some simulation this is exactly
how it would get done. After you've done some timing captures you can then
tighten up the waitstate situation...
Sounds like an interesting project. I like working
on processors myself. There's something satisfying with the "hello
world" and blinking lights... ;-)
_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user