mode. In this mode, the U3 no longer stores new scans in the buffer, but rather new scans are discarded. Data already in the buffer
will be sent until the buffer contains less samples than SamplesPerPacket, and every StreamData packet will have errorcode 59.
Once the stream buffer contains less samples than SamplesPerPacket, the U3 will start to buffer new scans again. The next
packet returned will have errorcode 60. This packet will have 1 dummy scan where each sample is 0xFFFF, and this scan
separates new data from any pre auto-recovery data. Note that the dummy scan could be at the beginning, middle, or end of this
packet, and can even extend to following packets. Also, the TimeStamp parameter in this packet contains the number of scans
that were discarded, allowing correct time to be calculated. The dummy scan counts as one of the missing scans included in the
TimeStamp value.
5.2.13 - StreamStop
Requires U3 hardware version 1.21 or higher.
Command:
Byte
0
0xB0
1
0xB0
Response:
Byte
0
Checksum8
1
0xB1
2
Errorcode
3
0x00
5.2.14 - Watchdog
Requires U3 hardware version 1.21. Controls a firmware based watchdog timer. Unattended systems requiring maximum up-time
might use this capability to reset the U3 or the entire system. When any of the options are enabled, an internal timer is enabled
which resets on any incoming USB communication. If this timer reaches the defined TimeoutPeriod before being reset, the
specified actions will occur. Note that while streaming, data is only going out, so some other command will have to be called
periodically to reset the watchdog timer.
If the watchdog is accidentally configured to reset the processor with a very low timeout period (such as 1 second), it could be
difficult to establish any communication with the device. In such a case, the reset-to-default jumper can be used to turn off the
watchdog (sets bytes 7-10 to 0). Power up the U3 with a short from FIO6 to SPC (FIO2 to SCL on U3 1.20/1.21), then remove the
jumper and power cycle the device again. This also affects the parameters in the ConfigU3 function.
The watchdog settings (bytes 7-10) are stored in non-volatile flash memory, so every call to this function where settings are written
causes a flash erase/write. The flash has a rated endurance of at least 20000 writes, which is plenty for reasonable operation, but
if this function is called in a high-speed loop the flash could be damaged.
Note: Do
not
call this function while streaming.
Command:
Byte
0
Checksum8
1
0xF8
2
0x05
3
0x09
4
Checksum16 (LSB)
5
Checksum16 (MSB)
6
WriteMask
Bit 0: Write
7
WatchdogOptions
Bit 5: Reset on Timeout
Bit 4: Set DIO State on
Timeout
8-9
TimeoutPeriod
10
DIOConfig
Bit 7: State
Bit 0-4: DIO#
11
Reserved
12
Reserved
13
Reserved
14
Reserved
15
Reserved
Response:
Byte
0
Checksum8
1
0xF8
2
0x05
3
0x09
4
Checksum16 (LSB)
5
Checksum16 (MSB)
6
Errorcode
7
WatchdogOptions
8-9
TimeoutPeriod
10
DIOConfig
11
Reserved
12
Reserved
13
Reserved
14
Reserved
15
Reserved
WatchdogOptions
: The watchdog is enabled when this byte is nonzero. Set the appropriate bits to reset the device and/or
update the state of 1 digital output.
TimeoutPeriod
: The watchdog timer is reset to zero on any incoming USB communication. Note that most functions consist
of a write and read, but StreamData is outgoing only and does not reset the watchdog. If the watchdog timer is not reset
before it counts up to TimeoutPeriod, the actions specified by WatchdogOptions will occur. The watchdog timer has a clock
rate of about 1 Hz, so a TimeoutPeriod range of 1-65535 corresponds to about 1 to 65535 seconds.
DIOConfig
: Determines which digital I/O is affected by the watchdog, and the state it is set to. The specified DIO must have
previously been configured for output. DIO# is a value from 0-19 according to the following: 0-7 => FIO0-FIO7, 8-15 => EIO0-
EIO7, 16-19 => CIO0-CIO3
5.2.15 - SPI
Requires U3 hardware version 1.21. Sends and receives serial data using SPI synchronous communication.
54