Oswald Box Interface

Back to Home Page

This file is OswaldBoxInterface.html

 based on Dick Oswald's Cntlbox1.pdf   Jul 23 2007

Revision date is July 26, 2007

Ed T. has a NI6008 - with 12 I/O, - setable directional
                        8 ADC, - could read input logic
                        2 DAC, - could output logic - diode clamp ?
        link to National Instrument NI6008

If required, I could get a 24 bit I/O unit for about $100, LabJack U3
           but Ed would rather work around that need.

This paper is divided into two parts
   Ed's understanding of Dick's drawings - thin border
   Proposal to use one mux bit  when under PC control - thick border
   Dick will try to live with my available 12 bit interface and other e-mails
    

Ed's understanding of Dick's drawing

Dick's drawings shows 16 logic levels between I/O Display Box - a PC, likely connected by USB to a NI6008 , likely running National Instrument's LABView and "Chassis" - being built by Dick Oswald Desired Output from PC - Disk A - 2 char, 9 bits 0-049? 1-50? - Track A - 3 char, 9 bits 0-099? 1-100? - Disk B - 2 char, 9 bits 0-049? 1-50? - Track B - 3 char, 9 bits 0-099? 1-100? - Home - 3 char, 9 bits ? ? - Mux Selector Three bit - Output data valid Desired Input to PC - Motion Complete - Error Ed's understanding of the usage of each wire of Dick's interface --------------- Outputs from PC interface unit ----------------- O-00 \ O-01 | O-02 | 0-9 Unit's digit O-03 / O-04 \ O-05 | 0-9 Ten's digit O-06 | O-07 / O-08 0-1 Hundred's bit *** please not, I cheat, ignore high bits of hundreds *** O-09 \ 0 = Stop 3 = Disk B 6 = undefined O-10 | 0-7 Mux Control 1 = Disk A 4 = Track B 7 = Seek O-11 / 2 = Track A 5 = Home? DAC-0 Output lines valid DAC-1 undefined - spare? ?? reset interface?? -------------- Inputs to PC interface unit -------------------- ADC-00 Motion complete (logic level) ADC-01 Error (logic level) ADC-02 Error (analog, null point voltage ) ADC-03 Ready for next command? (logic level) ADC-04 ADC-05 ... ADC-07 -------------- questions --------------------------- a) I don't understand the value of the PC sending a "from" Disk and Track address. Sending a "to" Disk and Track address completely defines the operation. (I am presuming the PC will take over delays, random seeks, back and forth seeks if desired, and all any other supervisory functions. b) Is it too tricky to use your "motion complete" signal to also indicate "command received" if the command (mux) is not a seek? (I'm partial to hand shaking, not wishing to talk to a wall, nor talk too fast ;-)) Yes, I know that you can load a register in nanoseconds, its just the principle of the thing ;-)) c) Some time we will have to figure out exception handling - startup - defining and detecting and isolating displaying faults - recovering from a fault, hardware, crash switches, software, ... who done what to which? - shutdown. -------------- estimated signaling performance -------------------- Running a more complex control function, I got a complete read, compute, and output cycle every 50 milliseconds. I would expect the same from this. I think to get a complete new disk and track output and seek command could take say 200 milliseconds. For greater speed, fewer outputs, and convenience, we could adopt the idea that sending a track value would also trigger a seek. The sequence could be, 1) send disk, 2) send track (which also triggers a seek) 3) wait for control box to respond with either a) motion complete or b) error If we allow for hand shaking from the control box to the PC, such as "ready for next command", we could play games such as placing a "data valid or settled" signal at the same time as setting the data, and mux, and provide a delay in your control box (say 10 milliseconds) before acting on the data ready. This saves another write sequence (data settled) from the PC, and some time.

 

Proposal to use one mux bit when under PC control

Ed's proposal for a "slight" redefinition of the interface to reduce the number of interface wires to match the limited interface Ed purchased last summer - I/O is logic level - 12 available DAC is voltage out of National Instrument interface box - 2 available should be diode clamped in Dick's box ADC is voltage into National Instrument interface box - 8 available can be used to read logic from Dick's box and null voltage from Dick's box --------------- Outputs from PC interface unit ----------------- I/O-00 \ I/O-01 | I/O-02 | 0-9 Unit's digit I/O-03 / I/O-04 \ I/O-05 | 0-9 Ten's digit I/O-06 | I/O-07 / I/O-08 0-1 Hundred's bit *** please note, I cheat, ignore high bits of hundreds *** I/O-09 one bit of Mux control 0 = Disk to seek (other bits preset if PC) 1 = Track to seek I/O-10 Output lines from PC above are valid, (wait 10 ms before accepting values?) However, the PC asserting this line will cause an immediate reset of the "Operation Complete" status, goes to BUSY Asserting this line will cause motion, either disk seek or track seek. Addressing conventions?? I'm flexible, what are good choices? Disk 0-49??, ?1-50?, anything else is illegal, triggers Alarm/lockout Track "home" track is ???? (go here to seek another disk) "normal" tracks, 0 through 99 - as per Joe Customer Engineering tracks identified as -01, ?100?, 101, maybe 102 - as per Joe maybe the PC is not responsible for accessing track -01? DAC-0 - possible "logic level" output from PC DAC-1 - possible "logic level" output from PC -------------- Inputs to PC interface unit -------------------- I/O-11 Operation Complete, (check error status) true==5 volts, "BUSY" == 0 volts "Ready for next command" operation can be - accepted disk seek value, motion complete - accepted track seek value, motion complete - error status from Dick's box is valid ADC-00 Error (logic level) read as a logic level I propose that any error lock PC interface to "BUSY", zero volts until manually reset at Dick's interface box. ADC-01 Null point voltage - (estimate goodness of detent position vs servo null ADC-02 ADC-03 ADC-04 ADC-05 ... ADC-07 ----------------------------------------------- Joe responded July 26 with " Dick will need at least two bits for the 100's digit, since it has to represent four states: > "normal" for tracks 00-99 > " >100" for track 101 (and maybe 102) > " <0 " for track -01 > "home" for the home position I do not know the details of how he designed it, but it might be easier to use three bits (one dedicated unconditionally to the "home" or "not home" position)." ------------------------------------------- To prevent damage and errors - 1) Dick's box is responsible for assuring that the arm is in home position before allowing disk seek. PC software will make a "best effort" to send "HOME" track position before sending a "Disk Seek" operation - but strange things happen !!! - if nothing else, a bad contact 2) Dick's box is responsible for hardware interlocks to assure reasonable safety. The PC interface is not wide enough, nor reliable enough to place this responsibility on the PC 3) I propose that any error lock the Dick's box from further commends from the PC until manual reset of Dick's box.
---------------- notes ----------------------------------------- a) The NI6008 is much too slow to stream read/write 80 kilohertz data. If desired, a streaming data path would have to be setup by other means.


Dick will try to live with my available 12 bit interface

Not so fast! Preliminary design indicates only 2 more IC's and about 1 week's
part time work. Why not see what performance can get with 12 I/O card first?
Hopefully that is only a little time and can mostly be used in any case.
 
Dick Oswald



--------------------------------------------------------------------------------
From: Ed Thelen [mailto:ed@ed-thelen.org] 
Sent: Friday, July 27, 2007 1:13 PM
To: Dick Oswald
Cc: fengis@juno.com; Al Hoagland; Dick Oswald
Subject: Re: Data I/O


To Dick Oswald
From Ed Thelen
 
Executive Summary
    I should probably get a USB device with a 24 bit digital I/O interface.
    Adding complexity to your box, as you kindly offered,
      to match my existing device is probably an excessive hack.
    "KISS" has so many advantages, 
        including understandability and maintainability.
 ...

------------- and later the following from Dick ----------------------

I'll proceed assuming a 12 line interface.  

Operations will not start until the START signal occurs and it is generated by the operator 
   whether manually or through the PC
   --thus latency in loading location addresses and function just adds to the idle time 
     and doesn't affect the control 
        (the PC program can assure that all other setup precedes START I hope).  

I am designing for repetitive motions to be between the locations specified by the switches 
only and not changeable in the hardware I/O box without stopping; 
   thus random seeks will not be possible with it. 

 I was expecting the PC would be able to generate valid random addresses in the track range 
  of 0-99 and disk range of 0-49 only, 
   excluding tracks greater than 99 or less than 0 to be for single operations only. 

 It will be set up so that in PC control, the "between operations adjustable delay" 
in repetitive functions includes the location data generation and transfer time, 
 and both the delay timer and random valid location addresses will be implemented 
 in the PC software. 

 The hardware I/O box has a pot to set delay and no provision for location addresses 
  other than the switches because I just don't want to deal with generating 
and validating BCD numbers with dedicated logic.  

Random seek capability then can be the payoff for getting the PC I/O working.
 
Dick Oswald 


If you have comments or suggestions, Send e-mail to Ed Thelen

Back to Home Page