To: | |
---|---|
Subject: | [ts-7000] PC104 bus details |
From: | "Rich Wilson" <> |
Date: | Sat, 17 Feb 2007 16:00:58 -0800 |
My library was somewhat short on details of the signal levels on the PC104 bus, so I did some experiments. Here are the results. I'm trying to write this in monospaced font so that it the tables below are readable. I did not pay close attention to the actual timing. I was more interested in signals levels. IO and Memory accesses seem to have the same characteristics. In the table below, Access is the size of the variable being read or written. Port is the size of the hardware port, as determined by the address used in the mmap() call. This was done on a TS-7250. In the case of expanded cycles or the address bus changing in the middle of the cycle, the address increments by 1 for the byte ports and 2 for the short ports. Access Port R/W BHE# Byte Byte W 1 Data on DL Byte Byte R 0 Data on DL Short Byte W 11 Data on DL, Expanded to two cycles Short Byte R 0 Data on DL, One long cycle with the address changing in the middle Long Byte W 1111 Data on DL, Expanded to four cycles Long Byte R 0 Data on DL, One long cycle with the address changing 3 times Byte Short W ~A0 Data for even addresses appears on DL, BHE#=1 Data for odd addresses appears on DH, BHE#=0 Byte Short R 0 Data for even addresses read from DL, I'm not sure about odd addresses Short Short W 0 Data on { DH, DL } Short Short R 0 Data on { DH, DL } Long Short W 00 Data on { DH, DL }, expanded to two cycles Long Short R 0 Data on {DH, DL}, address changes in middle of long cycle Key: Byte 8 bits Short 16 bits Long 32 bits R Read W Write DL Data bits D7..D0 DH Data bits D15..D8 Notes: I did not try non aligned transfers (short access to odd short port) I do not know whether the read cycles with the address changing in the middle would work properly if the data changed, because my prototype doesn't change the data when the address changes. I don't know which half of the data bus is active for a byte read from an odd short port address, because I drive the same value to both halves of the data bus in this case. The expanded cycles (i.e. long write to byte port) occur very quickly, that is with reduced time between memory cycles. Read cycles seem to always have BHE#=0. This seems incorrect to me. I just happen to still have the 16-bit IO port accesses on my logic analyzer, so let's see, how long are the cycles? Read cycles 270 nS Write cycles 280 nS Read cycle, long data, 600 nS Rich -- Rich Wilson __._,_.___
SPONSORED LINKS
Your email settings: Individual Email|Traditional
Change settings via the Web (Yahoo! ID required) Change settings via email: =Email Delivery: Digest | m("yahoogroups.com?subject","ts-7000-fullfeatured");=Change Delivery Format: Fully Featured">Switch to Fully Featured Visit Your Group | Yahoo! Groups Terms of Use | =Unsubscribe __,_._,___ |
<Prev in Thread] | Current Thread | [Next in Thread> |
---|---|---|
|
Previous by Date: | [ts-7000] Re: transferring floating point data from PC to TS7300, charliem_1216 |
---|---|
Next by Date: | [ts-7000] Re: transferring floating point data from PC to TS7300, Yan Seiner |
Previous by Thread: | [ts-7000] transferring floating point data from PC to TS7300, Oguz Dilmac |
Next by Thread: | [ts-7000] Maximum size of Flash devices, Luis Ortega |
Indexes: | [Date] [Thread] [Top] [All Lists] |
Disclaimer: Neither Andrew Taylor nor the University of NSW School of Computer and Engineering take any responsibility for the contents of this archive. It is purely a compilation of material sent by many people to the birding-aus mailing list. It has not been checked for accuracy nor its content verified in any way. If you wish to get material removed from the archive or have other queries about the archive e-mail Andrew Taylor at this address: andrewt@cse.unsw.EDU.AU