EmbeddedRelated.com
Forums

PC104 addressgin

Started by MikeD February 16, 2005
using PC104 with 16bit configuration. What size is an address?  IE. if
i write 0xABCD to address 0x1234, did I infact write AB to 0x1234 and
CD to 0x1235?

I think this is how ISA handles IO writes, but im not sure. So when I
write 16 bits to an odd address I actualy get 2 writes to teh bus?

Can anyone confirm this?

Thanks

Mike D.
miked@dodgeit<it's A DOT COM BABY>

MikeD wrote:
> using PC104 with 16bit configuration. What size is an address? IE. if > i write 0xABCD to address 0x1234, did I infact write AB to 0x1234 and > CD to 0x1235? > > I think this is how ISA handles IO writes, but im not sure. So when I > write 16 bits to an odd address I actualy get 2 writes to teh bus? > > Can anyone confirm this?]
x86 specific, there are other processors for PC104 and you didn't specify: mov ax,2211 mov [1000],ax al = 11 ah = 22 Address 1000 = 11 Address 1001 = 22
"Jim Stewart" <jstewart@jkmicro.com> wrote in message
news:KK-dnZdyPd_BK47fRVn-rQ@omsoft.com...
> MikeD wrote: > > using PC104 with 16bit configuration. What size is an address? IE. if > > i write 0xABCD to address 0x1234, did I infact write AB to 0x1234 and > > CD to 0x1235? > > > > I think this is how ISA handles IO writes, but im not sure. So when I > > write 16 bits to an odd address I actualy get 2 writes to teh bus? > > > > Can anyone confirm this?] > > x86 specific, there are other > processors for PC104 and you > didn't specify: > > mov ax,2211 > mov [1000],ax > > al = 11 > ah = 22 > Address 1000 = 11 > Address 1001 = 22 >
Does this really mean that 16-bit R/W access to I/O address space in ISA works differently in different platforms????


Pygmi wrote:

>Does this really mean that 16-bit R/W access to I/O address space >in ISA works differently in different platforms????
Other than the fact that there is PC 8-bit ISA and AT 16-bit ISA, (and you normally can't see even that difference) the answer is no.
Pygmi wrote:

> "Jim Stewart" <jstewart@jkmicro.com> wrote in message > news:KK-dnZdyPd_BK47fRVn-rQ@omsoft.com... > >>MikeD wrote: >> >>>using PC104 with 16bit configuration. What size is an address? IE. if >>>i write 0xABCD to address 0x1234, did I infact write AB to 0x1234 and >>>CD to 0x1235? >>> >>>I think this is how ISA handles IO writes, but im not sure. So when I >>>write 16 bits to an odd address I actualy get 2 writes to teh bus? >>> >>>Can anyone confirm this?] >> >>x86 specific, there are other >>processors for PC104 and you >>didn't specify: >> >>mov ax,2211 >>mov [1000],ax >> >>al = 11 >>ah = 22 >>Address 1000 = 11 >>Address 1001 = 22 >> > > > Does this really mean that 16-bit R/W access to I/O address space > in ISA works differently in different platforms????
I presume that little-endian / big-endian properties of the processor in question would be carried over to the way they do bus transfers. Of course I could be wrong...
Since PC-104 is a standard, I would expect that all pc104 systems
should work the same right?



MikeD wrote:

>Since PC-104 is a standard,
*Three* Standards. Four if you count PCI-104. 8-Bit PC104 is the same thing as a PC/XT ISA Buss. 16-Bit PC104 is the same thing as a PC/AT ISA Buss. PC104-Plus is the same thing as a PC with ISA and PCI. PCI-104 is the same thing as a PC with PCI (no ISA).
>I would expect that all pc104 systems should work the same right?
Do you expect all PCs to work the same? Do you expect a 4.77 MHz PC-XT with 640K of memory, no FPU and a 32MB HD and CGA to work the same as a 3GHz quad Xeon server with 3GB of RAM a terrabyte of RAID and triple 1024x768 monitors with 3D acceleration? Pc104 systems are as much "the same" as PCs are - because they are PCs. From a programming standpoint, the four kinds of PC104 I just described are exactly like the four kinds of PCs I just described. Just pretend you bought a PC and you will be fine. If you want to make boards, you need to learn about the new connectors and some slight electrical differences.
MikeD wrote:
> Since PC-104 is a standard, I would expect that all pc104 systems > should work the same right? >
PC104 is a bus standard. It has nothing to say about the devices attached to that bus beyond the interface, current draw etc. The byte ordering depends on implementation the other side of the barrier- depending on hardware decisions made by the board designers. Thus if I design a processor board with x86, I would get little-endian ordering of 16 bit values, whereas if I used a 68000 I would get the reverse. Similarly, the ordering of bytes on the peripherals is implementation dependent. In other words, it's exactly the same situation as any other bus I've come across. The bus works the same, what you do with the data is up to you. Paul Burke
Guy, Yes in that case I would expect them to be the same. Possibly a
sparc and x86 would be a more appropriate comparison. But my argument
is this.  If one computer (say a mac powerPC) supports PCI bus. and a
PC supports a PCI bus. I would argue that the databus is identical.
Since I can buy a pci card and install it in either system.

Paul - same arguement. If the hardware supports a specific bus, then
the data size,ordering.. would be specified. I just wonder if PC104 has
that specified.



MikeD wrote:

>Guy, Yes in that case I would expect them to be the same. Possibly a >sparc and x86 would be a more appropriate comparison. But my argument >is this. If one computer (say a mac powerPC) supports PCI bus. and a >PC supports a PCI bus. I would argue that the databus is identical. >Since I can buy a pci card and install it in either system. > >Paul - same arguement. If the hardware supports a specific bus, then >the data size,ordering.. would be specified. I just wonder if PC104 has >that specified.
Why do you care? You won't be able to plug one into the other, because the connectors are different. They look the same to the software. Who cares if the details of the signals are different? Are you planning on designing a board? That having been said, they are *not* different. They have essentially the same signals in every respect. This has been explained to you before.