Section: User Commands (1)
Updated: July 2012
Return to Main Contents
pb_manual - manually, interactively control the pulseblaster from the shell
pb_manual.sh: manual, interactive control of the PulseBlaster outputs.
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.
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.
* 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)
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.
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.
USAGE: pb_manual.sh [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
* 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.
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
This document was created by
using the manual pages.
Time: 15:45:34 GMT, November 19, 2013