cc18
1. Download SPLat Firmware
Download this firmware file for your controller. More information about the upgrade process can be found in the Knowledge Base.
************************** CC18 Revision History ************************************
*
* V3-00 20/8/2007 Initial release. Has all the features of CC16 version 3.12
*
* V3-10 12/10/2007 Xwire master comms bug fixed which would occasionally cause the
* transmitter to stream if the board had been operating as a master and a new
* program was downloaded to the board which also ran the board as an Xwire master.
* A bug has been fixed in the task que timer code which would cause improper
* operation for time delays using the "fStTimeSince" instruction if the delay
* time exceeded 8,388,607d.
* The analogue output instruction AnoutC will set the virtual DAC that trims the 243KHz
* ICG clock and therefore the BUSCLK frequency.
* CPU commands have been added to allow a SPLat program to store/read the ICG clock
* calibration value in FLASH. Using the AnoutC instruction and these CPU command
* forms the basis of a test jig that calibrate the boards BUSCLK frequency. The
* AnoutC instruction will only work if BUSCLK output on PC2 has been enabled.
*
* V3-11 15/2/2008 A new CPU call SPxPoll1 (Argument=7) returns the number of tasks running in the SPLat task que.
* "Reason for reset" byte now has bit 0 implemented which is set when the SPLat interpreter encounters the
* new "WarmBoot" instruction. The OBCB peripheral now has the ability to have the number of channels specified
* and an offset added to allow the OBCB inputs to be positioned anywhere in the controllers memory map,
* including expansion I/O. The form of the instruction is "$F5 $2C NumberOfChannels StaringInput". The number
* of channels is limited by the compilation variable "OBCB_channels".
*
* V3-12 16/6/2008 A vulnerability has been fixed in the Xwire protocol sequencer that could cause the Xwire module
* to stream TX characters if a timing error occured in the received message (ie: message not arriving within
* Xwire time parameters). The Xwire comms receive structure now uses an interrupt and small circular buffer
* to eliminate comms errors when the receive baud rate is slightly higher than that of the CC18. A bug has
* been fixed in the MemToUV and UVtoMem instructions which would not allow the last byte to be accessed. The
* FixtoU instruction now preserves W. Timing issue fixed when using the SPxTxfrU instruction, the symptom of
* which was that input data would be corrupted when using this instruction. A further bug in the Xwire protocol
* has been fixed which would cause long corrupted messages to be sent if the data length was set to zero in
* either the master or the slave.
*
* V3-13 25/6/2008 Xwire protocol modified so that transmit messages and received data is only tranfered to and from
* SPLat memory between the execution of SPLat instructions. This has been done to make it easier for the user
* to transfer multibyte variables (ie: floating point) without corruption. MODBUS master implemented. Bootloader bug
* fixed which could prevent successful reflashing of a board if NVEM alters memory to something other than $FF after
* the end of the SPLat program. Demo program feature removed to free up space and resources. User program space reduced
* by 4096 bytes to allow for future code expansion. User now has 22,016 bytes for program and NVEM storage (previously
* 26,112 bytes).
*
* V3-14 8/1/2010 IEEE floating point format <--> SPLat floating point format conversion routines added to make the use of touch
* screens easier. 16 bit signed and unsigned <--> SPLat floating point routines added to make working with touch screens
* easier. MODBUS memory referencing instructions in WORD mode now have the starting address multiplied by 2 when processed
* if the address is in the range 3000 - 3999. The ensures correct behaviour when using SPLat products with touch screens
* and other MODBUS devices. Function Types 6 (preset single register) and 16 (preset multiple registers) are affected in
* MASTER mode. SLAVE functions 3 (Read memory), 6 (preset single register) and 16 (preset multiple registers) are affected.
* An SPxPoll4 0,!CPU returns the floating point temperature of the CPU chip in �C at locations U(0) --> U(3).
* An SPxPoll4 1,!CPU returns the floating point temperature of the CPU chip in �F at locations U(0) --> U(3).
* Modified SPLat comms to allow much faster download speeds (up to 30 times faster). This firmware is fully backward
* compatible with older versions of SPLatPC in terms of downloads, but to get the benefit of the faster downloads,
* the user will need SPLatPC Version 10.21.1 or higher.
*
* V3-15 19/1/2010 LCD buffer driver added to the CC18 to allow the LCD buffer to be fully manipulated by SPLat LCD program
* commands. Using the CC18 as a MODBUS slave, the LCD buffer can be displayed on a touch screen, by reading memory in
* the range 2000 - 2039.
*
* V3-16 10/5/2010 Fixed a bug in the comms RX interrupt handler which would cause the board to reset if being used in any UART
* profile with parity enabled. MODBUS RX handler modified to be active all the time rather than only after the UART
* transmitter has finished sending. This has been done because several MODBUS devices we have used ignore the MODBUS
* specification and reply immediately rather than waiting 3.5 character times before replying. MODBUS master mode is now
* capable of sending the LCD buffer using function 16 (preset muliple registers) if the address range is set to 2000 - 2079.
* The CommRunScript and CommHaltScr commands will now wait for the MODBUS master script parser to be actually stopped
* before HALTing or changing the script to be executed, respectively.
* Jindexing has been applied to the instructions "FixToMem16S", "FixToMem16U", "FloatMem16U" and "FloatMem16S".
* A Bug has been fixed in the signed versions of these instructions. New instruction added "fSTSinceMark" which loads W
* with the time since the tasks private timer was set using a "marktime" instruction. This instruction only works in the
* task que. Board reports SPLat dialect 22.
* Added counter which is incremented whenever a successful transaction is completed (Xwire slave mode)
* or whenever the end of script table is encountered (Xwire master mode). A new instruction is able to
* read the value of this counter and clears the counter to zero. Two new instructions have been added
* which facillitate the changing of Xwire modes and scripts while a program is running. XwireStop will
* command the Xwire communication module to stop after the current transaction and return to an idle
* state. XwirePollIdle will return X=true if the Xwire comms module is idle. The current Xwire slave
* and Xwire master configuration instructions work as previous but will stop the Xwire comms module and
* stall the SPLat interpreter until the Xwire comms module is actually idle (has completed current
* transaction). For applications where the SPLat interpreter must not be stalled, the user should stop
* Xwire comms, poll until it is idle then run the configuration instruction. If stalling the program
* is not important, the configuration instruction can be used by itself. If Xwire is not currently
* running when an Xwire configuration instruction is executed, there is no stalling of the users program.
*
* V3-17 18/6/2010 Abitrary string communications protocol added. This protocol allows the user to create and send ASCII
* and binary strings and receive and parse same. Simple 8 bit addition and subtraction, both with and without carry
* instructions have been added. The carry/borrow bit for these instruction is held in the R register. Non destructive
* floating bit compare and go instructions have been added. Bug fixed which prevented the BranchM instruction from
* being jindexed.
*
* V3-18 26/7/2010 Added the RtoX instruction. String protocol buffer pointers were not being re-initialised. This became
* evident when a program error occurred and the protocol was re-started. Bug fixed in the COMTX_Space instruction
* which would return the number of bytes in the buffer rather that the number of free bytes. Bug fixed in Xwire slave
* sequencer, other minor Xwire improvements to improve robustness in the slave mode when there are inadvertantly two
* Xwire masters on the bus.
*
* V3-19 12/8/2010 Xwire TX and RX state machines now re-initialise themselves immediately that they are disabled. This
* has been done to prevent unwanted beaviour when there are multiple slaves with the same address on the Xwire bus (PKS).
* A bug has been fixed in the SPI module which may cause expansion I/O to be ignored depending on the power up data contents
* of the shift registers.
*
* V3-20 17/11/2010 MODBUS/SPLat/String protocol UART RX interrupt routine and UART interrupt vectors modified to recover
* correctly from UART overrun errors. Bug fixed in MODBUS which would cause the 3.5 character delay timer not to be
* initialised if the selected baud rate was the same as the current baud rate. Xwire RX interrupt routine and UART
* interrupt vectors also modified to recover from overrun errors. MODBUS code modified to always return idle status
* when re-initialised.
*
* V3-21 19/5/2011 Added 10 new floating point compare instructions which set X either true of false depending on the
* floating point comparison. They are non destructive to W and Q. Added "COMRX_fGetNum" instruction to string comms protocol
* to allow the extraction of numbers from the ASCII string contained in the receive buffer. The routine will parse both signed
* integer and signed decimal numbers and return with the result in W. The SPLat result register R will be zero if a number was
* successfully parsed or 1 if a valid number could not be parsed. Added COMRX_StrFind and iiPrintNVText instructions. Bugs
* fixed in iiPrintFill and COMRX_peek instructions. Changed buffer arrangements for the LCD driver and string comms protocol
* so that the string comms protocol can send strings of up to 255 characters from a single string comms instruction. Previously,
* a limit of 40 characters applied to the iiPrintText, iiPrintFill and iiPrintNVText instructions. Also, if the TX buffer was
* full when any String protocol instruction which resulted in characters being appended to the TX buffer, an error would be
* generated and the SPLat program reset. The user was expected to use the COMTX_Space instruction to ensure this did not
* happen. Now, the TX buffer can be written at any time with the caveat that if the buffer becomes full during the execution
* of the string comms instruction, the entire SPLat program will be stalled until the currently executing instruction can
* deposit all of its characters into the TX buffer. The TX buffer is 128 characters in length. When the destination is the
* user RAM, the instructions still execute atomically providing the string fits within the user RAM. If not, an error is
* generated and the SPLat program is reset. Reports dialect 27.
*
* V3-22 27/6/2011 Bug fixed in the SPLat link TX module which caused the CC18 to send more input and output data bytes than necessary
* when sending I/O update messages. SPLatPC ignored these bytes and so there is no detectable difference in the firmwares
* operation, just a few less bytes on the serial link when connected to a CC18. TestXY instructions added. New string comms
* instructions added: iifGetNum, iFindXinbuf, iiGetHex and iiStrFind. Reports dialect 28.
*
* V3-23 14/10/2011 Bug fixed in COMRX_Peek instruction which would cause it to return a result when peeking at the first character
* in the buffer when no characters where in the RX buffer. Also fixed in the same instruction, was a bug which caused it to
* return the byte after the one referenced by X.
*
* V3-24 17/9/2012 Xwire driver updated to latest revision to allow the CC18 to use external LCD peripherals. LCD driver updated to fix
* a bug in the LCD floating point formatter.
*
* V3-25 12/9/2013 Fixed a bug in MODBUS when reading inputs 8 & above. Added BlinkM, InputM and InputKM instruction. Reports dialect 29.
*
2. Download SPLat reFlash
Download then run SPLat reFlash on your PC. This tool will upload the firmware to your SPLat controller. You will need a serial port or USB to serial adaptor and may also need a PC232 programming cable.
Windows 8.x Users
The first time you run reFlash, you will need to do so as the Administrator, otherwise you will see an error about HIRESTIMER.OCX not being registered. After you’ve done this once, you can run it normally in future.
If you’re not sure what you want, give us a call: +61 3 9773 5082