CMPE 401 - Computer Interfacing

Assignment #4

Due: In the CMPE 401 assignment box by 15:45 on Friday, Nov. 7, 2003


  1. The 68681 DUART has programmable timer and counter functions in addition to the functions associated with the two asynchronous serial ports. Consider a DUART that has been provided with a 3.6864 MHz crystal stabilized clock, the same frequency that was used in the lab system. Write an assembly language program that configures the DUART timer to produce a hardware interrupt every 10 ms (this could be useful for implementing round-robin time slicing). In addition, the DUART is to produce a square wave output that has a period of 10 ms (this could be useful for debugging, just like the ticker clock was useful to verify the presence of MicroC/OS-II in the lab system). All other DUART functions are to be safely disabled.

  2. Briefly describe how the window-based flow control method detects and recovers from each of: (a) lost data packets; (b) data packets that are received out-of-order; and (c) duplicate data packets.

  3. Construct the full-step and half-step stepping sequences for a stepper motor with three sets of bipolar windings. Assume that a full-bridge driver circuit will be used to energize the windings.

  4. Briefly explain how the half-step bridge control sequence doubles the number of rotor position steps available to a stepper motor compared to a full-step sequence. What are some potential disadvantages of half-step stepper motor operation compared to a full-step operation?

  5. Consult the on-line TPU reference manual, which is accessible from the course home page and the lab 3 webpage, to determine how the two TPU timebases, TCR1 and TCR2, are configured. In your own words, briefly describe all the various ways in which TCR1 and TCR2 can be generated.

  6. MicroC/OS-II uses priorities to determine which one of the competing ready-to-run tasks should be allowed to execute on the CPU. Similarly, the TPU uses channel priorities to determine which of several possible channel requests should be scheduled for execution on the microengine. Briefly describe how the two types of priorities differ from each other. You will want to consult the on-line TPU reference manual to familiarize yourself with how the channel priorities work in the TPU.