PB_MANUAL

Section: User Commands (1)
Updated: July 2012
Index Return to Main Contents
 

NAME

pb_manual - manually, interactively control the pulseblaster from the shell

 

DESCRIPTION


 
 pb_manual.sh:  manual, interactive control of the PulseBlaster outputs.
 
 INTRO:
   This wraps pb_init in a loop, with prompts. it is intended to make it easy to quickly 'type' some data into
   the PulseBlaster. The prompt displays the current outputs, and allows for literal or bitwise inputs.
   
 CONFIGURATION:
    The PulseBlaster is 24-bits wide, but not all bits are necessarily connected to the target circuit. Of the 
    bits that are connected, perhaps not all of them need to be controlled manually at this time. This 
    configuration is controlled by the bitmask string. [default: '---- ---- aflr ---e iiii pppp'].
    
    Each output bit that is of interest for the experiment is denoted by a lower-case letter, selected by the 
    experimenter, or "-" for uninteresting bits. The bitmask is right-aligned, up to 24-bits long, spaces are 
    ignored. Repeated letters affect multiple bits. 
 
 PROMPT:
    * Commands are prefixed with '#'. They are: #list, #help, #quit, #init, #zeros, #ones, #flip, #flash N (T/2)ms:
        #list               list the configured bitmask and the mnemonic.
        #help               show brief help.
        #init               set the outputs to their initial values i.e. 0x00 (unless changed with -i).
        #zeros              set all outputs to zero.
        #ones               set all outputs to one.
        #flip               toggle all outputs.
        #left               left-shift by one.  (LSB=0).
        #right              right-shift by one. (MSB=0).
        #flash  N*T         flash the currently non-zero bits, N cycles, with each cycle taking T ms.
        #quit               quit. (or use Ctrl-C).
    
    * Data formats are either LiteralHex, TruncatedBinary, or StringDiff:
        LiteralHex:       This value is literal, and copied to the outputs (including the "uninteresting" bits)
                          Format:   0x[0-9a-f]{1,6}
        
        StringDiff:       The most useful shortcut. Uppercase letters set the relevant bit(s); lowercase letters 
                          clear them. Ordering doesn't matter; omitted letters remain unchanged. For example, 
                          with a mask of "--ab -c-d", the input "dCa" sets bit2, and clears bits 0 and 5.
                          Format:   [a-zA-Z]{1,n}
                          
        TruncatedBinary:  This is a helpful shortcut. Only the bits considered "interesting" in the mask should 
                          be typed. They are then unpacked. For example, with a mask of "--ab -c-d", the input of
                          "0010" would be interpreted as "--00 -1-0".   "-" are unchanged.
                          Format:   [01]{n}
 
 USAGE: pb_manual.sh  [OPTIONS]      
 
 OPTIONS:
   -l    LOGFILE        also log to logfile. the output can be played back as a shell-script.
   -t    TITLE          logfile title. [default: "pb_manual `date`"].
   -x                   ok to overwrite an existing logfile. [default: no].
  
   -i    INIT_VALUE     the initial state to output. [default: 0x00].
   -b    BITMASK        the bitmask to use. [default: ---- ---- aflr ---e iiii pppp].
   -m    MNEMONIC       mnemonic string. [default: Adc, Fsync, Lsync, Reset, rEad, lInes, Pixels]. 
   
   -n                   no hardware: don't write to the physical PulseBlaster device.
   -h                   show this help
   -d                   enable verbose debugging
 
 NOTES:
    * The underlying program is pb_init; this takes about 3 ms to write data to the PB and trigger it.
    * The prompt starts with instruction 1, because the 0th was to initialise the PulseBlaster.
    * The prompt shows the value in hex for all bits, but the masked value is only for the "interesting" ones.
    * The prompt uses readline for line-editing, including history.
    * Between invocations, this program *doesn't* make the PB output bits glitch (it relies on pb_init). 
    * Flash should have T >= 10ms, or timing is unreliable.
   

 

AUTHOR

The author of pb_manual and this manual page is Richard Neill, <pulseblaster#AT(spamblock)#richardneill.org>
Copyright July 2012; this is Free Software (GPL v3+), see the source for copying conditions.

 

SEE ALSO

pb_utils(1), pb_freq_gen(1), pb_identify_output(1)


 

Index

NAME
DESCRIPTION
AUTHOR
SEE ALSO

This document was created by man2html, using the manual pages.
Time: 15:45:34 GMT, November 19, 2013