Assignment 2: I2C Simulator - V1.02

Size: px
Start display at page:

Download "Assignment 2: I2C Simulator - V1.02"

Transcription

1 Assignment 2: I2C Simulator - V1.02 Due Wednesday February 22 nd, 2012 by 11:59 pm. Submit deliverables via CourSys: Late penalty is 10% per calendar day (each 0 to 24 hour period past due). Friday, February 24 th is the last possible day to submit (11:59 pm). This assignment may be done either individually or in pairs. Do not show other students your code, do not copy code found online, and do not post questions about the assignment online. Please direct all questions to the instructor or TA: cmpt-212-help@sfu.ca; See the marking guide for details on how each part will be marked. 0. I2C Background In this assignment you'll be creating a program which can work with some simplified I 2 C bus transactions (often written as I2C). I2C (Inter-Integrated Circuit) is communication protocol for sending small pieces of information between a processor (called the master) with one or more slave devices. For example, your PC likely uses this protocol to communicate with the real-time clock component and the temperature sensors on your motherboard. It is designed to be a simple protocol which allows for lowspeed data between inexpensive components. Figure 1 shows a possible bus configuration. Slave 0x24 Slave 0x51 Slave 0xA9 Master I 2 C Bus Figure 1: I2C bus topology with one master and three slave devices. 0.1 I2C Transactions All transactions are initiated by the master. Each slave has a unique address to which it responds. Each transaction transmits the following data: <Device Address>,<R W>,<Data byte(s)> Device Address: The address of the slave device with which the master will be communicating. The address for a specific component is assigned when the slave is manufactured. R W (Read/Write): Indicates if the master wants to read data from the slave, or write data to the slave. Data: For a write, it is the data the master is transmitting to the slave. For a read, it is the data the slave transmits back to the master. Note that I2C includes a low-level protocol which uses two wires (called SCL and SDA), and transmits data using special signaling on these wires. For this assignment, we are not concerned with this level of the protocol; we'll described data at a logical level in terms of what is transmitted, not how it is transmitted. If you look up I2C, you will likely find information on the low-level signaling. Generated Feb 15, 2012, 11:16 PM Page 1/12 Dr. Fraser

2 0.2 Registers Each device has up to 256 registers (numbered 0 through 255) which can be accessed via I2C. Each register is 8 bits (one byte). Each slave device can have certain registers serve special purposes. You can think of registers as mail boxes which can hold information. For example, a temperature sensor might use register 0x01 to hold the current temperature it is reading. And register 0x02 may be used to configure its operation. In general, the function of each register is defined by its manufacturer. Depending on the device, some registers may allow the master to write a value into it, whereas other registers may not allow a value to be written (more on this later). 0.3 Write Transactions When the master write data into a register of a slave device, the transaction is as follows: <Device Address>,W,<Register Address> <Data to write> Note that this fits with the format mentioned earlier: the first value of <Data> is the register to write to. When <Data to write> is one byte, that value is written into the register stated. For example: 11,W,AB 42 This will write the value 0x42 to register 0xAB on slave device 0x11. When there is more than one byte of data to write, the device will start at the stated register and continue working through registers as needed. The device keeps writing to registers one after the next as the master sends it more data. If it reaches register 255, it wraps around and starts writing at register 0. For example: 11,W,AB will write data as summarized in Table 1. Note that the values in this example are arbitrary. I2C Address Reg 0xAB Reg 0xAC Reg 0xAD Reg 0xAE 0x11 0x42 0x52 0x62 0x72 Table 1: Explanation of the multi-byte write command. 0.4 Read Transaction Read transactions with I2C have two parts. First, the master writes a register number to the slave but does not send any data; then, the master reads a certain number of bytes of data from the slave. In this assignment, there are two different way that reads by the master may be seen. First, your system may be queried with a read request. In which case, it must return the expected data. The following two statements represent the command to read: <Device Address>,W,<Register Address> <Device Address>,R,<Number of Bytes to Read> For example, the master may want to read 2 bytes, starting at register 0x04 of slave address 0xF2. And, let's say that the slave is holding 0x80 in register 0x04, and 0x62 in register 0x05: F2,W,04 F2,R,02 The slave would then output the two bytes 0x80 and 0x62. The second way that a read can happen for this assignment is when you are processing a full transaction that was previously recorded. This is the analysis command, and is explained in Part 2. Generated Feb 15, 2012, 11:16 PM Page 2/12 Dr. Fraser

3 1. I2C Slave Simulations Write a program to simulate the operation of a group of I2C slave devices. Each slave will have a unique I2C address, and can have up to 256 one-byte registers (numbered 0 through 255). Each register can be written to, or read from by the master. Your program will accept, via the command line, the name of a text file which contains I2C commands. Your program will process the commands: for write commands, it will update the values stored in the register(s) of the slave device; for read commands it will read the content of the register(s) and display it to the screen. The input file has one command per line. Lines which start with a '#' are comments and should be ignored. Blank lines, or lines containing only whitespace (spaces, tabs,...) should also be ignored. 1.1 Command File Format: Write The format for write commands is: <I2C Address>,W,<Register> <Data> I2C Address: a 2 digit hex number. W: signifies that this is a write command. Register: 2 digit hex number for the register. Data: a space separated list of 2 digit hex numbers of the data to write to the registers. Each hex number is of the form such as 01, or AB. No "0x" precedes the values. See note in Section 0.3 for what to do when writing more than one byte Examples (see simple_write.txt): 11,W,AB 42 11,W, ,W, Command File Format: Read The format for a read has two parts (as described in Section 0.4 ): <I2C Address>,W,<Register> <I2C Address>, R,<Number Bytes To Read> The write statement sets the register number to work with. The read statement reads a number of bytes, starting at the previously set register. Simulate reading by outputting the data to the screen. See sample runs in Section Example (see simple_readwrite.txt): 11,W,AB 11,R,01 11,W,60 11,R,01 11,W,00 11,R,04 Generated Feb 15, 2012, 11:16 PM Page 3/12 Dr. Fraser

4 1.3 Summary Report Print a summary report to the screen when your program finishes. It should display the status of all registers of known slave devices. 1. If there is more than one slave device, they may be listed in any order (need not be sorted). 2. The registers for a specific device must be displayed in ascending order (sorted). Note that the QMap will sort its entries by the key, so sorting should not be a problem. See the implementation constraints below for use of QMap. 3. For each register, display the register number and its current value (i.e. final value) Summary report for simple_write.txt D:\212\As2-build-desktop\debug>As2.exe simple_write.txt Processing I2C Log file: Tests/simple_write.txt Completed processing file with 0 errors. I2C Simulator Full Report ************************* I2C Device 0x11: Reg 0x00 current value 0x11 Reg 0x01 current value 0x22 Reg 0x02 current value 0x33 Reg 0x03 current value 0x44 Reg 0x60 current value 0x01 Reg 0xab current value 0x Implementation Constraints 1. Write your program in C++ using the Qt libraries. Do not use any code from the C++ std library (i.e., don't have a "using namespace std;", don't #include <string> or <iostream>...) 2. Conform to the coding style guide on the course website. 3. Handle any combination of I2C addresses and register addresses: Addresses can be between 0 and 255 (0x00 and 0xFF). Register can be numbers between 0 and 255 (0x00 and 0xFF). 4. Do not preallocate slave devices or registers before they are needed. If only one slave, and one register on that device are used, your program should not consume extra memory for the unused devices and unused registers. You can implement this as follows: Initially, your simulation should include no slave devices; they are added as needed. When a command uses a new I2C address (for read, write, or (later) analysis), create a new slave device for that address. When a new slave device is added, it will initially have no registers. If a read command uses a register that does not yet exist, just return 0xFF without creating the register. When a command writes to a non-existent register on a slave device, create the register. Generated Feb 15, 2012, 11:16 PM Page 4/12 Dr. Fraser

5 5. Implementation requirements for data storage: Use a QList to hold pointers to dynamically allocated slave devices. For each slave device, use a QMap to store its registers. You must use delete to free all dynamically allocated memory before your program finishes. Do not rely on the operating system to clean up the memory for you. 6. Recall that read commands ("R") need the register number to be set by a preceding write command. Read commands to a slave will read from the register that the last write command used. You may assume that all read commands to a device will occur after a write to the device, and that write's data was just the register number. For example, you may assume reads occur in the following valid pattern:: 11,W,10 11,R,04 The following is INVALID in many ways; the behaviour of your program can be undefined (we will not test this: read before write, more than just register in the write, multiple reads): 11,R,04 11,W, ,R,04 11,R,04 7. Implementation Suggestions: To convert the hexadecimal string "A5" into a number, use QString's toint() function. Look at the documentation for a overloaded version which accepts a base (base 16 for hex). To convert the number 42 into a hexadecimal QString, use the following code: // 42: Value to convert // 2: Number of digits // 16: Base for conversion (hex) // QChar('0'): Character to fill for extra digits (5 becomes "05") QString asstr = QString("%1").arg(42, 2, 16, QChar('0')); 8. Use iterators wherever possible, and you must use each style of iterator at least once. Do not use direct-access loops for QList or QMap; use an iterator. For example, avoid: // BAD! Use an iterator! for (int i = 0; i < mylist.size(); i++) { cout << mylist[i]; } You must use each of the three styles of iterator at least once. - C++ STD style: such as QList<int>::iterator itr = mylist.begin(); - Java style: such as QListIterator<int> itr(mylist); - Qt foreach: such as foreach (const int &value, mylist) {...} 9. Use exceptions to handle errors while parsing and processing the input file. Create one exception class to throw when there is an error parsing a line in the file. For example, throw it when the command is 'X' but should be one of 'R', 'W', or 'A'. Make this exception class hold a QString error message. Create one exception class to throw when there is a warning when processing an analysis Generated Feb 15, 2012, 11:16 PM Page 5/12 Dr. Fraser

6 command (see Section 2.4 ). Make this exception class also hold an error message. Have your code which is iterating through the input file catch these errors and print out the message string in the exception, along with the line number and full line of text from the input file. See examples in Section 1.5 for more information. 1.5 Sample Runs Bold-underlined text shows command-prompt input Run without arguments D:\212\As2-build-desktop\debug>As2.exe Usage: As2.exe <commandfile> Example: As2.exe i2ccommands.txt Processing read and write commands D:\212\As2-build-desktop\debug>As2.exe simple_readwrite.txt Processing I2C Log file: simple_readwrite.txt Reading from Address [0x11], Register[0xab] = 0x42 Reading from Address [0x11], Register[0x60] = 0x01 Reading from Address [0x11], Register[0x00] = 0x11 Reading from Address [0x11], Register[0x01] = 0x22 Reading from Address [0x11], Register[0x02] = 0x33 Reading from Address [0x11], Register[0x03] = 0x44 Reading from Address [0x11], Register[0x10] = 0xff Reading from Address [0x11], Register[0x11] = 0xff Reading from Address [0x11], Register[0x12] = 0xff Reading from Address [0x11], Register[0x13] = 0xff Reading from Address [0x11], Register[0xfe] = 0xff Reading from Address [0x11], Register[0xff] = 0xff Reading from Address [0x11], Register[0x00] = 0x11 Reading from Address [0x11], Register[0x01] = 0x22 Reading from Address [0x11], Register[0x02] = 0x33 Reading from Address [0x11], Register[0x03] = 0x44 Reading from Address [0x11], Register[0x04] = 0xff Reading from Address [0x11], Register[0x05] = 0xff Completed processing file with 0 errors. I2C Simulator Full Report ************************* I2C Device 0x11: Reg 0x00 current value 0x11 Reg 0x01 current value 0x22 Reg 0x02 current value 0x33 Reg 0x03 current value 0x44 Reg 0x60 current value 0x01 Reg 0xab current value 0x42 Generated Feb 15, 2012, 11:16 PM Page 6/12 Dr. Fraser

7 1.5.3 Processing read and write commands D:\212\As2-build-desktop\debug>As2.exe multi_readwrite.txt Processing I2C Log file: multi_readwrite.txt Reading from Address [0x10], Register[0x80] = 0x10 Reading from Address [0x10], Register[0x81] = 0x11 Reading from Address [0x10], Register[0x82] = 0x12 Reading from Address [0x10], Register[0x83] = 0x13 Reading from Address [0x20], Register[0x80] = 0x20 Reading from Address [0x20], Register[0x81] = 0x21 Reading from Address [0x20], Register[0x82] = 0x22 Reading from Address [0x20], Register[0x83] = 0x23 Reading from Address [0x30], Register[0x80] = 0x30 Reading from Address [0x30], Register[0x81] = 0x31 Reading from Address [0x30], Register[0x82] = 0x32 Reading from Address [0x30], Register[0x83] = 0x33 Completed processing file with 0 errors. I2C Simulator Full Report ************************* I2C Device 0x10: Reg 0x80 initial value 0x10 current value 0x10 Reg 0x81 initial value 0x11 current value 0x11 Reg 0x82 initial value 0x12 current value 0x12 Reg 0x83 initial value 0x13 current value 0x13 I2C Device 0x30: Reg 0x80 initial value 0x30 current value 0x30 Reg 0x81 initial value 0x31 current value 0x31 Reg 0x82 initial value 0x32 current value 0x32 Reg 0x83 initial value 0x33 current value 0x33 I2C Device 0x20: Reg 0x80 initial value 0x20 current value 0x20 Reg 0x81 initial value 0x21 current value 0x21 Reg 0x82 initial value 0x22 current value 0x22 Reg 0x83 initial value 0x23 current value 0x23 Generated Feb 15, 2012, 11:16 PM Page 7/12 Dr. Fraser

8 1.5.4 Handling parse errors Your error messages do not need to match perfectly with the messages shown below. However, your program should behave similarly for each line of the input file. D:\212\As2-build-desktop\debug>As2.exe test_errors.txt Processing I2C Log file: test_errors.txt PARSING ERROR on line 19: Missing data. Line 19 = ','. PARSING ERROR on line 20: Unable to convert hex string '' to a number. Line 20 = ',,'. PARSING ERROR on line 21: Extra data on line. Line 21 = ',,,'. PARSING ERROR on line 22: Missing direction (R/W). Line 22 = '10'. PARSING ERROR on line 26: Unable to convert hex string 'zz' to a number. Line 26 = 'zz,w,1'. PARSING ERROR on line 27: Value out of range. Must be between 0 and 255. Value: 200. Line 27 = '200,W,1'. PARSING ERROR on line 28: Value out of range. Must be between 0 and 255. Value: -1. Line 28 = '-1,W,1'. PARSING ERROR on line 31: Unable to convert hex string 'Hello' to a number. Line 31 = '00,W,Hello world!'. PARSING ERROR on line 32: Value out of range. Must be between 0 and 255. Value: 200. Line 32 = '00,W,200'. PARSING ERROR on line 33: Value out of range. Must be between 0 and 255. Value: -1. Line 33 = '00,W,-1'. PARSING ERROR on line 36: Extra data on line. Line 36 = '1,W,3,4,5,6'. PARSING ERROR on line 37: Missing data. Line 37 = '1,W'. PARSING ERROR on line 40: Missing direction (R/W). Line 40 = 'It's the end of the world as we know it.'. PARSING ERROR on line 41: Missing direction (R/W). Line 41 = 'I feel fine.'. PARSING ERROR on line 44: Unknown command. Expecting 'W', 'R', or 'A'. Line 44 = '10,X,11 12'. PARSING ERROR on line 47: Missing data. Line 47 = '10,W'. PARSING ERROR on line 48: Missing data. Line 48 = '10,R'. PARSING ERROR on line 51: Read expects only the number of bytes to read. Line 51 = '10,R,10 11'. Completed processing file with 18 errors. I2C Simulator Full Report ************************* I2C Device 0x10: Generated Feb 15, 2012, 11:16 PM Page 8/12 Dr. Fraser

9 2. I2C Slave Analysis This part adds extra functionality to the system you implemented for reading and writing I2C slave registers. Make sure you have the previous part working before continuing. 2.1 Background There are tools ("sniffers") which capture and log transactions on an I2C bus. Consider a working I2C system with a master and some slave devices. The sniffer would log all the transactions, capturing many read and write commands sent to the different slave devices. Imagine that you want to create a new super-slave device which simulates the operation of multiple slave devices. For example, you want to replace three slave devices with a single new slave device that makes the master think it is still working with the original three slaves The system from Part 1 does most of this by process write requests, and responding to read requests for all possible I2C addresses and registers. However, in order to create the replacement superslave device, you'll first need to analyze the transactions that are normally occurring on the bus. During this analysis, there are two important things to look out for: 1. What is the initial value in each register? So far, we have assumed that all registers start with the value 0xFF. However, in a real system, some registers will hold different values to start with. For example, one register may be the device's serial number, and another may its default configuration. Therefore, when the master reads from either of these two registers it will get a value other than 0xFF. We need to be able to look at the log of transactions and infer the initial value for each register. 2. Are there any registers that don't behave like simple read/write registers? There are some registers that will be simple read/write registers. These registers will start with some initial value, and only change their value when the master writes a new value to them. However, there are other registers which may change their value on their own (such as a register reporting the current time), or which may be read-only (such as the serial number for a device). We need to be able to look at the log of transactions and identify any registers which either change their value on their own, or which do not change their value when written to. 2.2 Command File Format: Analysis To perform this analysis, we'll introduce the analysis command ("A"). The analysis command is very similar to a read, in that it needs a preceding write to setup the register number. However, instead of it asking your program for the data, your program is given the data that a real I2C slave device replied with. Its format is: <Address>,W,<Register> <Address>,A,<Data> Address: The I2C address of the device. A: Indicate that this command is for an analysis. Data: A space separated list of 2-digit hex numbers representing the data that the real slave device replied with to the master. The following two sections describe the analysis to be performed on the data. Generated Feb 15, 2012, 11:16 PM Page 9/12 Dr. Fraser

10 2.3 Inferring Register Initial Value Change your program to handle not only write and read, but also also analysis commands: 1. For each register in each slave device, store both its initial value and its current value. 2. If the first command to access a register is an analysis command ("A"), then set the register's initial value (and current value) to the data in the command. 3. Whenever there is a write to a register, update only its current value field to the new value. 4. If there is a write to a register before there is an analysis command for it, then just set the register's initial value to whatever value is being written. (We have to record something as the initial value, and we don't have any way of determining what it actually was). 5. If there is a read from a register before it is referenced by an analysis or write commands, then just return 0xFF (without creating the register). 6. Change the program's summary report to also include the initial value for each register. See example below Using an analysis command to infer initial value Display of file analysis_simple.txt # Infer value via analysis (single byte) 81,W,C1 81,A,00 81,W,C1 81,R,1 # Test multiple bytes: 81,W,B0 81,A, ,W,B0 81,R,4 Program execution: D:\212\As2-build-desktop\debug>As2.exe analysis_simple.txt Processing I2C Log file: analysis_simple.txt Reading from Address [0x81], Register[0xc1] = 0x00 Reading from Address [0x81], Register[0xb0] = 0x20 Reading from Address [0x81], Register[0xb1] = 0x21 Reading from Address [0x81], Register[0xb2] = 0x22 Reading from Address [0x81], Register[0xb3] = 0x23 Completed processing file with 0 errors. I2C Simulator Full Report ************************* I2C Device 0x81: Reg 0xb0 initial value 0x20 current value 0x20 Reg 0xb1 initial value 0x21 current value 0x21 Reg 0xb2 initial value 0x22 current value 0x22 Reg 0xb3 initial value 0x23 current value 0x23 Reg 0xc1 initial value 0x00 current value 0x00 Generated Feb 15, 2012, 11:16 PM Page 10/12 Dr. Fraser

11 2.4 Reporting Behaviour problems For each analysis command ("A"), if a register already holds a current value, then check if its current value matches the value in the analysis command's data. If they do not match then do both: 1. Update the current value to be the value in the analysis command's data. 2. Generate an exception indicating that there was an analysis problem. This is an analysis exception, not a parsing exception, so use new exception classes. Have the exception store a message explaining the problem (see examples below). If the analysis command has multiple bytes of data, make sure it processes all the bytes before an exception is thrown Using an analysis command to infer initial value Input File: analysis_simple2.txt # Read-only register (should generate warning). 10,W,35 B5 10,W,35 10,A,E0 # Three read-only registers (should generate warning). 10,W,45 D1 D2 D3 10,W,45 10,A,C1 C2 C3 # Register changes on its own (generates warning) 10,W,A0 10,A,00 10,W,A0 10,A,01 Program execution: D:\212\As2-build-desktop\debug>As2.exe analysis_simple2.txt Processing I2C Log file: analysis_simple2.txt ANALYSIS PROBLEM on line 6: Register 0x35 mismatch: holds 0xb5 but expected 0xe0. Line 6 = '10,A,E0'. ANALYSIS PROBLEM on line 11: Register 0x45 mismatch: holds 0xd1 but expected 0xc1. Register 0x46 mismatch: holds 0xd2 but expected 0xc2. Register 0x47 mismatch: holds 0xd3 but expected 0xc3. Line 11 = '10,A,C1 C2 C3'. ANALYSIS PROBLEM on line 18: Register 0xa0 mismatch: holds 0x00 but expected 0x01. Line 18 = '10,A,01'. Completed processing file with 3 errors. I2C Simulator Full Report ************************* I2C Device 0x10: Reg 0x35 initial value 0xb5 current value 0xe0 Reg 0x45 initial value 0xd1 current value 0xc1 Reg 0x46 initial value 0xd2 current value 0xc2 Reg 0x47 initial value 0xd3 current value 0xc3 Reg 0xa0 initial value 0x00 current value 0x01 Generated Feb 15, 2012, 11:16 PM Page 11/12 Dr. Fraser

12 3. Testing The website contains some sample input files for testing. You will be submitting all your.h and.cpp files. The TA will be using the following sequence of commands to build them your system. You should ensure that your code will build. 1. Copy.h and.cpp files into a new folder names as2 on the CSIL Linux machines in SUR Copy the provided test files into the same folder. 3. Build a Qt project file (.pro): > qmake -project 4. Create a project makefile: > qmake 5. Build the project: > make 6. Run your program with an input file: >./as2 simple_readwrite.txt 4. Deliverables Submit a zip file named as2.zip containing just your.h and.cpp files to CourSys: You do not need to submit a makefile, a Qt project file, or any test files. Each of your.cpp and.h files must begin with a comment stating your name, your SFU user ID, and your SFU student number. (If in a pair, state both your information). If you are working in a pair: only submit one copy of the assignment, include a PAIRS.TXT file listing the name, SFU ID and student number of each of you. Please remember that all submissions will automatically be compared for unexplainable similarities. 5. Change History Feb 13: Revised section 0.4 to discuss the read command from the file, vs the general I2C read. Restated how the application should behave when reading/writing/analyzing registers and slaves that do not exist. Generated Feb 15, 2012, 11:16 PM Page 12/12 Dr. Fraser

Assignment 3: Inheritance

Assignment 3: Inheritance Assignment 3: Inheritance Due Wednesday March 21 st, 2012 by 11:59 pm. Submit deliverables via CourSys: https://courses.cs.sfu.ca/ Late penalty is 10% per calendar day (each 0 to 24 hour period past due).

More information

Problem Set 1: Unix Commands 1

Problem Set 1: Unix Commands 1 Problem Set 1: Unix Commands 1 WARNING: IF YOU DO NOT FIND THIS PROBLEM SET TRIVIAL, I WOULD NOT RECOMMEND YOU TAKE THIS OFFERING OF 300 AS YOU DO NOT POSSESS THE REQUISITE BACKGROUND TO PASS THE COURSE.

More information

Assignment 1: Port & Starboard

Assignment 1: Port & Starboard Assignment 1: Port & Starboard Revisions: Jan 7: Added note on how to clean project for submission. Submit a ZIP file of all the deliverables to the CourSys: https://courses.cs.sfu.ca/ All submissions

More information

Project 2: Shell with History1

Project 2: Shell with History1 Project 2: Shell with History1 See course webpage for due date. Submit deliverables to CourSys: https://courses.cs.sfu.ca/ Late penalty is 10% per calendar day (each 0 to 24 hour period past due). Maximum

More information

ArduCAM-M-2MP Camera Shield

ArduCAM-M-2MP Camera Shield 33275-MP ArduCAM-M-2MP Camera Shield 2MP SPI Camera Hardware Application Note Rev 1.0, Mar 2015 33275-MP ArduCAM-M-2MP Hardware Application Note Table of Contents 1 Introduction... 2 2 Typical Wiring...

More information

USB-I2C USB to I2C Communications Module Technical Specification

USB-I2C USB to I2C Communications Module Technical Specification Page 1 of 7 USB-I2C USB to I2C Communications Module Technical Specification The USB-I2C module provides a complete interface between your PC and the I2C bus. The module is self powered from the USB cable

More information

UPB US1-40 Single Rocker Wall Switch with Dimmer Firmware Specification

UPB US1-40 Single Rocker Wall Switch with Dimmer Firmware Specification UPB US1-40 Single Rocker Wall Switch with Dimmer Firmware Specification V 1.0 5/18/05 Revision History Spec. Rev. Date Firmware Rev. Description 1.0 5/18/05 V2.12 Originated from US2 spec V1.9 Table of

More information

SRF02 Ultrasonic range finder Technical Specification

SRF02 Ultrasonic range finder Technical Specification SRF02 Ultrasonic range finder Technical Specification I2C Mode For Serial mode click here I2C Communication To use the SRF02 in I2C mode, make sure nothing is connected to the mode pin, it must be left

More information

The RS-485 user manual for B800 series communication

The RS-485 user manual for B800 series communication The user manual of B800 Series Rs-485 The RS-485 user manual for B800 series RS-232 inbuilt inside the main board of B800 series frequency inverter, we can effect RS-485 through fitting board externally.

More information

GIGAVAC Contactors I 2 C Communication

GIGAVAC Contactors I 2 C Communication Document Revision: 3 GIGAVAC Contactors I 2 C Communication Product models: MXST15/16-mm-ss, delay on break contactors. Attention: Read this instruction entirely for a top-level-feel of what you prefer

More information

EE 109 Lab 8a Conversion Experience

EE 109 Lab 8a Conversion Experience EE 109 Lab 8a Conversion Experience 1 Introduction In this lab you will write a small program to convert a string of digits representing a number in some other base (between 2 and 10) to decimal. The user

More information

UNIVERSITY OF NEBRASKA AT OMAHA Computer Science 4500/8506 Operating Systems Fall Programming Assignment 1 (updated 9/16/2017)

UNIVERSITY OF NEBRASKA AT OMAHA Computer Science 4500/8506 Operating Systems Fall Programming Assignment 1 (updated 9/16/2017) UNIVERSITY OF NEBRASKA AT OMAHA Computer Science 4500/8506 Operating Systems Fall 2017 Programming Assignment 1 (updated 9/16/2017) Introduction The purpose of this programming assignment is to give you

More information

Project 5 - The Meta-Circular Evaluator

Project 5 - The Meta-Circular Evaluator MASSACHVSETTS INSTITVTE OF TECHNOLOGY Department of Electrical Engineering and Computer Science 6.001 Structure and Interpretation of Computer Programs Fall Semester, 2005 Project 5 - The Meta-Circular

More information

USB-MPC with MDIO and I2C support User s Manual

USB-MPC with MDIO and I2C support User s Manual USB-MPC with MDIO and I2C support User s Manual Future Designs, Inc. Your Development Partner FDI Information in this document is provided solely to enable the use of Future Designs, Inc. products. FDI

More information

Technical Specification. Third Party Control Protocol. AV Revolution

Technical Specification. Third Party Control Protocol. AV Revolution Technical Specification Third Party Control Protocol AV Revolution Document AM-TS-120308 Version 1.0 Page 1 of 31 DOCUMENT DETAILS Document Title: Technical Specification, Third Party Control Protocol,

More information

EECE.2160: ECE Application Programming

EECE.2160: ECE Application Programming Spring 2018 Programming Assignment #10: Instruction Decoding and File I/O Due Wednesday, 5/9/18, 11:59:59 PM (Extra credit ( 4 pts on final average), no late submissions or resubmissions) 1. Introduction

More information

1 Introduction Revision History... 4

1 Introduction Revision History... 4 Contents 1 Introduction 4 1.1 Revision History............................................. 4 2 Connectors 4 2.1 J1011 - PMBus Addressing........................................ 5 2.1.1 Parallel Operation........................................

More information

I2C interface Tutorial

I2C interface Tutorial UG108: Praxis II January 2013 Asian Institute of Technology Undergraduate Program Handout: I2C interface Instructor: Chaiyaporn Silawatchananai, Matthew N. Dailey I2C interface Tutorial Introduction: In

More information

Venstar Thermostat Adapter

Venstar Thermostat Adapter Developer Venstar Thermostat Adapter v001 Developer Venstar Thermostat Adapter Version 001 May 23, 2013 Revision History Rev Date Comments 001 05/23/13 Initial Release Page 1 of 13 Table of Contents 1

More information

Programming with Arrays Intro to Pointers CS 16: Solving Problems with Computers I Lecture #11

Programming with Arrays Intro to Pointers CS 16: Solving Problems with Computers I Lecture #11 Programming with Arrays Intro to Pointers CS 16: Solving Problems with Computers I Lecture #11 Ziad Matni Dept. of Computer Science, UCSB Thursday, 5/17 in this classroom Starts at 2:00 PM **SHARP** Please

More information

BV4531U. I2C or Serial 6 Way Relay

BV4531U. I2C or Serial 6 Way Relay BV4533 Date February 2018 11 Feb. 2018 Firmware Revision 1.0.4 Preliminary 1.1.0 Serial Updated I2C or Serial 6 Way Relay 3 Sep. 2018 1.1.0 I2C corrections, trigger is not used Introduction This is an

More information

Containers & Iterators

Containers & Iterators Runtime Error? Topics Containers & Iterators 1) What is the best way to store a group of items? 2) How can we step through all the items? 3) What Qt classes store items? Ch 4 03/02/12 CMPT 212 Slides #8

More information

Planar Simplicity Series

Planar Simplicity Series Planar Simplicity Series RS232 PROTOCOL Document 020-1285-00 1. INTRODUCTION 1.1 Purpose The purpose of this document is to explain in detail the commands and steps that can be used to control a Planar

More information

VZ8(6)9 rev B I2C communication quick manual. SGX Sensortech

VZ8(6)9 rev B I2C communication quick manual. SGX Sensortech VZ8(6)9 rev B I2C communication quick manual 1. VZ PCBA considerations External pull-up restors (4k7) are required on SDA And SCL (they are not implemented on VZ PCBA) VDD for VZ8(6)9T = 3V3 VDD for VZ8(6)9F

More information

BV4218. I2C-LCD & Keypad. Product specification. December 2008 V0.a. ByVac 2006 ByVac Page 1 of 9

BV4218. I2C-LCD & Keypad. Product specification. December 2008 V0.a. ByVac 2006 ByVac Page 1 of 9 Product specification December 2008 V0.a ByVac 2006 ByVac Page 1 of 9 Contents 1. Introduction...3 2. Features...3 3. Electrical Specification...3 4. I2C set...4 5. The LCD Set...5 5.1. 1...5 5.2. 2...5

More information

Lesson I2C. I²C (Inter-Integrated Circuit) Lab Assignment: I2C Slave Driver

Lesson I2C. I²C (Inter-Integrated Circuit) Lab Assignment: I2C Slave Driver Lesson I2C I²C (Inter-Integrated Circuit) Lab Assignment: I2C Slave Driver I²C (Inter-Integrated Circuit) What is I 2 C I2C is pronounced "eye-squared see". It is also known as "TWI" because of the initial

More information

The I2C BUS Interface

The I2C BUS Interface The I 2 C BUS Interface ARSLAB - Autonomous and Robotic Systems Laboratory Dipartimento di Matematica e Informatica - Università di Catania, Italy santoro@dmi.unict.it L.S.M. 1 Course What is I 2 C? I

More information

Developer Notes INSTEON Thermostat v012. Developer Notes. INSTEON Thermostat. Revision History

Developer Notes INSTEON Thermostat v012. Developer Notes. INSTEON Thermostat. Revision History Developer INSTEON Thermostat v012 Developer INSTEON Thermostat Version 012 June 19, 2012 Revision History Rev Date Comments 001 10/28/11 Initial Release 002 11/4/11 Updated formatting in some sections

More information

Assignment 4 - Vectors, Menus, & Creatures!

Assignment 4 - Vectors, Menus, & Creatures! Assignment 4 - Vectors, Menus, & Creatures! Due Wednesday July 20, 2011 by 11:59pm You may not work on assignments during your lab time. Submit all the deliverables to the Course Management System: https://courses.cs.sfu.ca/

More information

A0021. Overview. Features. Ordering Information. HSS Touch Signature IC 6 Input - I 2 C. Part Number Format: A X Y Z

A0021. Overview. Features. Ordering Information. HSS Touch Signature IC 6 Input - I 2 C. Part Number Format: A X Y Z VSS NC NC VDD SDA SENSOR 2 SENSOR 1 ADD1 HSS Touch Signature IC 6 Input - I 2 C A0021 Overview The patented AlSentis A0021 Touch IC is a complete 1 6 input touch sensing solution. It includes all signal

More information

Here is a C function that will print a selected block of bytes from such a memory block, using an array-based view of the necessary logic:

Here is a C function that will print a selected block of bytes from such a memory block, using an array-based view of the necessary logic: Pointer Manipulations Pointer Casts and Data Accesses Viewing Memory The contents of a block of memory may be viewed as a collection of hex nybbles indicating the contents of the byte in the memory region;

More information

Programming Standards: You must conform to good programming/documentation standards. Some specifics:

Programming Standards: You must conform to good programming/documentation standards. Some specifics: CS3114 (Spring 2011) PROGRAMMING ASSIGNMENT #3 Due Thursday, April 7 @ 11:00 PM for 100 points Early bonus date: Wednesday, April 6 @ 11:00 PM for a 10 point bonus Initial Schedule due Thursday, March

More information

HDS Series I2C Application Notes

HDS Series I2C Application Notes HDS Series I2C Application Notes I2C Bus Interface Introduction The I2C interface of the HDS series of power supplies allows remote control and monitoring and provides the following features: 1) Retrieving

More information

A0061. Overview. Features. Ordering Information. HSS Touch Signature IC 15 Input - I 2 C. Part Number Format: A X Y Z

A0061. Overview. Features. Ordering Information. HSS Touch Signature IC 15 Input - I 2 C. Part Number Format: A X Y Z Sensor5 ADD2 ADD1 SCL SDA Sensor6 Sensor7 Sensor1 Sensor0 Reset NC NC Sensor14 Sensor13 HSS Touch Signature IC 15 Input - I 2 C A0061 Overview The patented AlSentis A0061 Touch IC is a complete 1 15 input

More information

SRF08 Ultra sonic range finder Technical Specification

SRF08 Ultra sonic range finder Technical Specification SRF08 Ultra sonic range finder Technical Specification Communication with the SRF08 ultrasonic rangefinder is via the I2C bus. This is available on popular controllers such as the OOPic and Stamp BS2p,

More information

Pointer Casts and Data Accesses

Pointer Casts and Data Accesses C Programming Pointer Casts and Data Accesses For this assignment, you will implement a C function similar to printf(). While implementing the function you will encounter pointers, strings, and bit-wise

More information

Computer Science II Lecture 1 Introduction and Background

Computer Science II Lecture 1 Introduction and Background Computer Science II Lecture 1 Introduction and Background Discussion of Syllabus Instructor, TAs, office hours Course web site, http://www.cs.rpi.edu/courses/fall04/cs2, will be up soon Course emphasis,

More information

Elotech Standard Protocol. for Single R8200 SC

Elotech Standard Protocol. for Single R8200 SC Elotech Standard Protocol interface description / network protocol for Single R8200 SC ELOTECH Industrieelektronik GmbH Verbindungsstraße 27 D - 40723 HILDEN FON +49 2103 / 255 97 0 FAX +49 2103 / 255

More information

I 2 C Application Note in Protocol B

I 2 C Application Note in Protocol B I 2 C Application Note in Protocol B Description This document is a reference for a possible coding method to achieve pressure, temperature, and status for SMI part readings using I 2 C. This SMI Protocol

More information

JMY505G User's Manual

JMY505G User's Manual JMY505G User's Manual (Revision 3.42) Jinmuyu Electronics Co. LTD 2011/6/28 Please read this manual carefully before using. If any problem, please mail to: jinmuyu@vip.sina.com Contents 1 Product introduction...

More information

LCD2041 Technical Manual. Revision: 2.1

LCD2041 Technical Manual. Revision: 2.1 LCD2041 Technical Manual Revision: 2.1 Contents Contents ii 1 Getting Started 1 1.1 Display Options Available................................... 1 1.2 Accessories...........................................

More information

UNIVERSITY OF NEBRASKA AT OMAHA Computer Science 4500/8506 Operating Systems Summer 2016 Programming Assignment 1 Introduction The purpose of this

UNIVERSITY OF NEBRASKA AT OMAHA Computer Science 4500/8506 Operating Systems Summer 2016 Programming Assignment 1 Introduction The purpose of this UNIVERSITY OF NEBRASKA AT OMAHA Computer Science 4500/8506 Operating Systems Summer 2016 Programming Assignment 1 Introduction The purpose of this programming assignment is to give you some experience

More information

MCW Application Notes 24 th February 2017

MCW Application Notes 24 th February 2017 MCW Application Notes 24 th February 2017 www.motorcontrolwarehouse.co.uk Document number MCW-HEDY-001 Revision 0.1 Author Gareth Lloyd Product HEDY HD700 Title Summary HEDY HD700 Modbus Serial Communications

More information

UW CSE 351, Winter 2013 Final Exam

UW CSE 351, Winter 2013 Final Exam Full Name: Student ID #: UW CSE 351, Winter 2013 Final Exam March 20, 2013 2:30pm - 4:20pm Instructions: Write your full name and UW student ID number on the front of the exam. When the exam begins, make

More information

Project 5 - The Meta-Circular Evaluator

Project 5 - The Meta-Circular Evaluator MASSACHVSETTS INSTITVTE OF TECHNOLOGY Department of Electrical Engineering and Computer Science 6.001 Structure and Interpretation of Computer Programs Spring Semester, 2005 Project 5 - The Meta-Circular

More information

Here is a C function that will print a selected block of bytes from such a memory block, using an array-based view of the necessary logic:

Here is a C function that will print a selected block of bytes from such a memory block, using an array-based view of the necessary logic: Pointer Manipulations Pointer Casts and Data Accesses Viewing Memory The contents of a block of memory may be viewed as a collection of hex nybbles indicating the contents of the byte in the memory region;

More information

SFU CMPT 379 Compilers Spring 2018 Milestone 1. Milestone due Friday, January 26, by 11:59 pm.

SFU CMPT 379 Compilers Spring 2018 Milestone 1. Milestone due Friday, January 26, by 11:59 pm. SFU CMPT 379 Compilers Spring 2018 Milestone 1 Milestone due Friday, January 26, by 11:59 pm. For this assignment, you are to convert a compiler I have provided into a compiler that works for an expanded

More information

DS28CZ04 Evaluation System Evaluates: DS28CZ04

DS28CZ04 Evaluation System Evaluates: DS28CZ04 General Description The DS28CZ04 evaluation system (EV system) consists of a DS28CZ04 evaluation board (EV board) and a Maxim CMAXQUSB command module. The DS28CZ04 is a 4Kb EEPROM with four nonvolatile

More information

Programming Assignment #2

Programming Assignment #2 Programming Assignment #2 Due: 11:59pm, Wednesday, Feb. 13th Objective: This assignment will provide further practice with classes and objects, and deepen the understanding of basic OO programming. Task:

More information

pointers + memory double x; string a; int x; main overhead int y; main overhead

pointers + memory double x; string a; int x; main overhead int y; main overhead pointers + memory computer have memory to store data. every program gets a piece of it to use as we create and use more variables, more space is allocated to a program memory int x; double x; string a;

More information

XS S ERIES TM PMB US TM O PTION C ARD

XS S ERIES TM PMB US TM O PTION C ARD XS Series PMBus Option Card XS S ERIES TM PMB US TM O PTION C ARD Document: 40110r01 1 Contents 1 Introduction 4 2 Option Card Connectors 4 2.1 PMBus Address..............................................

More information

UEE1302 (1102) F10: Introduction to Computers and Programming

UEE1302 (1102) F10: Introduction to Computers and Programming Computational Intelligence on Automation Lab @ NCTU Learning Objectives UEE1302 (1102) F10: Introduction to Computers and Programming Programming Lecture 00 Programming by Example Introduction to C++ Origins,

More information

Character Functions & Manipulators Arrays in C++ CS 16: Solving Problems with Computers I Lecture #10

Character Functions & Manipulators Arrays in C++ CS 16: Solving Problems with Computers I Lecture #10 Character Functions & Manipulators Arrays in C++ CS 16: Solving Problems with Computers I Lecture #10 Ziad Matni Dept. of Computer Science, UCSB Lecture Outline Useful character manipulators & functions

More information

Lab8: SAM Assembler and Simulator

Lab8: SAM Assembler and Simulator Lab8: SAM Assembler and Simulator Due Date: Wednesday April 29th 2009 by midnight Background: The Instruction Set Architecture (ISA) provides a view of a processor's features as seen from the perspective

More information

User Manual for TeraRanger Evo with: USB and I2C/UART backboard

User Manual for TeraRanger Evo with: USB and I2C/UART backboard Copyright 2017 User Manual for TeraRanger Evo with: USB and I2C/UART backboard Hardware revision 1.0 Firmware revision 1.0.0 1/13 Copyright 2017 Table of contents: 1 Introduction 3 2 Mechanical integration

More information

CS 1510: Intro to Computing - Fall 2017 Assignment 8: Tracking the Greats of the NBA

CS 1510: Intro to Computing - Fall 2017 Assignment 8: Tracking the Greats of the NBA CS 1510: Intro to Computing - Fall 2017 Assignment 8: Tracking the Greats of the NBA Code Due: Tuesday, November 7, 2017, by 11:59 p.m. The Assignment The purpose of this assignment is to give you more

More information

User Manual for. TeraRanger Evo with: USB and I2C/UART backboard

User Manual for. TeraRanger Evo with: USB and I2C/UART backboard User Manual for TeraRanger Evo with: USB and I2C/UART backboard (Hardware revision 1.0, Firmware revision 1.0.0) Technical support: support@teraranger.com S a l e s a n d c o m m e r c i a l s u p p o

More information

DULCOMETER Multi-parameter Controller dialog DACa

DULCOMETER Multi-parameter Controller dialog DACa Software manual DULCOMETER Multi-parameter Controller dialog DACa Modbus RTU EN Valid only in combination with the operating instructions for the Multi-parameter Controller dialog DACa. A2100 Please carefully

More information

wybuild & wyupdate File Specifications

wybuild & wyupdate File Specifications wybuild & wyupdate File Specifications Version: 2.6.18 August 2012 General This document is licensed under the BSD License. Copyright 2017 wyday. Any questions can be asked on the wyday forum. File format

More information

************ THIS PROGRAM IS NOT ELIGIBLE FOR LATE SUBMISSION. ALL SUBMISSIONS MUST BE RECEIVED BY THE DUE DATE/TIME INDICATED ABOVE HERE

************ THIS PROGRAM IS NOT ELIGIBLE FOR LATE SUBMISSION. ALL SUBMISSIONS MUST BE RECEIVED BY THE DUE DATE/TIME INDICATED ABOVE HERE Program 10: 40 points: Due Tuesday, May 12, 2015 : 11:59 p.m. ************ THIS PROGRAM IS NOT ELIGIBLE FOR LATE SUBMISSION. ALL SUBMISSIONS MUST BE RECEIVED BY THE DUE DATE/TIME INDICATED ABOVE HERE *************

More information

NXShield Interface Specifications

NXShield Interface Specifications NXShield Advanced Development Guide v1.0 NXShield Interface Specifications Power Specs: NXShield can be powered from external power supply. Max Power Rating: 10.5 Volts DC Minimum 6.6 Volts DC needed to

More information

KNJN I2C bus development boards

KNJN I2C bus development boards KNJN I2C bus development boards 2005, 2006, 2007, 2008 KNJN LLC http://www.knjn.com/ Document last revision on December 5, 2008 R22 KNJN I2C bus development boards Page 1 Table of Contents 1 The I2C bus...4

More information

CS 2704 Project 2: Elevator Simulation Fall 1999

CS 2704 Project 2: Elevator Simulation Fall 1999 Elevator Simulation Consider an elevator system, similar to the one on McBryde Hall. At any given time, there may be zero or more elevators in operation. Each operating elevator will be on a particular

More information

JMY504M User's Manual

JMY504M User's Manual JMY504M User's Manual (Revision 3.42) Jinmuyu Electronics Co. LTD 2011/6/28 Please read this manual carefully before using. If any problem, please mail to: Jinmuyu@vip.sina.com Contents 1 Product introduction...

More information

OEM-ORP ORP. Reads mV mV. Range. 1 reading every 420ms. Response time. Any type & brand. Supported probes. Single point.

OEM-ORP ORP. Reads mV mV. Range. 1 reading every 420ms. Response time. Any type & brand. Supported probes. Single point. V 2.3 Revised /23/18 OEM-ORP Embedded ORP Circuit Reads Range Response time ORP -19.9mV 19.9mV 1 reading every 420ms Supported probes Calibration Temp compensation Data protocol Default I 2 C address Operating

More information

UW CSE 351, Summer 2013 Final Exam

UW CSE 351, Summer 2013 Final Exam Name Instructions: UW CSE 351, Summer 2013 Final Exam 9:40am - 10:40am, Friday, 23 August 2013 Make sure that your exam is not missing any of the 11 pages, then write your full name and UW student ID on

More information

CMSC162 Intro to Algorithmic Design II Blaheta. Lab March 2019

CMSC162 Intro to Algorithmic Design II Blaheta. Lab March 2019 CMSC162 Intro to Algorithmic Design II Blaheta Lab 10 28 March 2019 This week we ll take a brief break from the Set library and revisit a class we saw way back in Lab 4: Card, representing playing cards.

More information

Department of Electrical and Computer Engineering The University of Texas at Austin

Department of Electrical and Computer Engineering The University of Texas at Austin Department of Electrical and Computer Engineering The University of Texas at Austin EE 306, Fall 2011 Yale Patt, Instructor Faruk Guvenilir, Milad Hashemi, Jennifer Davis, Garrett Galow, Ben Lin, Taylor

More information

Version Action Author Date

Version Action Author Date Version Action Author Date 1.0 Initial document KP 25.08.2013 1.1 Document review, description and register update GP 26.08.2013 1.2 Status bits, current noise floor GP 29.08.2013 1.3 Using EG100 as a

More information

Number Systems for Computers. Outline of Introduction. Binary, Octal and Hexadecimal numbers. Issues for Binary Representation of Numbers

Number Systems for Computers. Outline of Introduction. Binary, Octal and Hexadecimal numbers. Issues for Binary Representation of Numbers Outline of Introduction Administrivia What is computer architecture? What do computers do? Representing high level things in binary Data objects: integers, decimals, characters, etc. Memory locations (We

More information

User Manual for TeraRanger Evo single point distance sensors and backboards

User Manual for TeraRanger Evo single point distance sensors and backboards User Manual for TeraRanger Evo single point distance sensors and backboards User manual relates to Hardware revision 1.0 Firmware versions 1.0 to 1.1.1 Table of contents: 1 Introduction 3 2 Mechanical

More information

Project 3: RPN Calculator

Project 3: RPN Calculator ECE267 @ UIC, Spring 2012, Wenjing Rao Project 3: RPN Calculator What to do: Ask the user to input a string of expression in RPN form (+ - * / ), use a stack to evaluate the result and display the result

More information

G52CPP C++ Programming Lecture 17

G52CPP C++ Programming Lecture 17 G52CPP C++ Programming Lecture 17 Dr Jason Atkin http://www.cs.nott.ac.uk/~jaa/cpp/ g52cpp.html 1 Last Lecture Exceptions How to throw (return) different error values as exceptions And catch the exceptions

More information

COMMUNICATION M-BUS PROTOCOL PR 118

COMMUNICATION M-BUS PROTOCOL PR 118 COMMUNICATION M-BUS PROTOCOL PR 118 CE4DT CONTO D4 Pd 03/01/2017 Pag. 1/27 CONTENTS 1. Standard M-Bus telegrams (Mb2) 2 1.1 Request for Data (REQ_UD2 ) 2 1.2 Details of telegrams 1,2,3 6 1.2.1 Telegram

More information

Application Note BDLxxxx RS232 SERIAL INTERFACE COMMUNICATION PROTOCOL (SICP V1.82)

Application Note BDLxxxx RS232 SERIAL INTERFACE COMMUNICATION PROTOCOL (SICP V1.82) Application Note BDLxxxx RS232 SERIAL INTERFACE COMMUNICATION PROTOCOL (SICP V1.82) Table of Contents 1. INTRODUCTION... 1 1.1 PURPOSE... 1 1.2 DEFINITIONS, ABBREVIATIONS AND ACRONYMS... 1 2. COMMAND PACKET

More information

EE 355 Lab 4 - Party Like A Char Star

EE 355 Lab 4 - Party Like A Char Star 1 Introduction In this lab you will implement a "hangman" game where the user is shown blanks representing letter of a word and then tries to guess and fill in the letters with a limited number of guesses

More information

White Paper Using the MAX II altufm Megafunction I 2 C Interface

White Paper Using the MAX II altufm Megafunction I 2 C Interface White Paper Using the MAX II altufm Megafunction I 2 C Interface Introduction Inter-Integrated Circuit (I 2 C) is a bidirectional two-wire interface protocol, requiring only two bus lines; a serial data/address

More information

Modbus ASCII Serial Device Driver Help 2009 Kepware Technologies

Modbus ASCII Serial Device Driver Help 2009 Kepware Technologies Modbus ASCII Serial Device Driver Help 2009 Kepware Technologies 1 Table of Contents 1 Getting Started... 3 Help Contents... 3 Overview... 3 2 Device Setup... 3 Device Setup... 3 Cable Diagram... 4 Modem

More information

I2C and SPI Foundation

I2C and SPI Foundation Revision 30 September 2010 Release I2C and SPI Foundation 17 March 2018 changed ref: command f to x Introduction I2C (I squared C) and SPI (Serial peripheral Interface) are two main ways that microcontrollers

More information

CS 103 Lab 6 - Party Like A Char Star

CS 103 Lab 6 - Party Like A Char Star 1 Introduction In this lab you will implement a "hangman" game where the user is shown blanks representing letter of a word and then tries to guess and fill in the letters with a limited number of guesses.

More information

CS/ECE 252: INTRODUCTION TO COMPUTER ENGINEERING UNIVERSITY OF WISCONSIN MADISON. Instructor: Rahul Nayar TAs: Annie Lin, Mohit Verma

CS/ECE 252: INTRODUCTION TO COMPUTER ENGINEERING UNIVERSITY OF WISCONSIN MADISON. Instructor: Rahul Nayar TAs: Annie Lin, Mohit Verma CS/ECE 252: INTRODUCTION TO COMPUTER ENGINEERING UNIVERSITY OF WISCONSIN MADISON Instructor: Rahul Nayar TAs: Annie Lin, Mohit Verma Examination 3 In Class (50 minutes) Wednesday, April 7, 2017 Weight:

More information

Using the I 2 C Interface on the ATmega328P and MC908JL16

Using the I 2 C Interface on the ATmega328P and MC908JL16 Ming Hsieh Department of Electrical Engineering EE 459Lx - Embedded Systems Design Laboratory Using the I 2 C Interface on the ATmega328P and MC908JL16 by Allan G. Weber 1 Introduction This document is

More information

CAN / RS485. Product Description. Technical Reference Note. Interface Adapter. Special Features

CAN / RS485. Product Description. Technical Reference Note. Interface Adapter. Special Features CAN / Interface Adapter For SHP Series Total Power: < 1 Watts Input Voltage: 5V Internal Outputs: CAN,, USB, I 2 C Special Features Input Protocols: 1) using Modbus 2) CAN using modified Modbus Output

More information

CSCI 102 Fall 2010 Exam #1

CSCI 102 Fall 2010 Exam #1 Name: USC Username: CSCI 102 Fall 2010 Exam #1 Problems Problem #1 (14 points) Problem #2 (15 points) Problem #3 (20 points) Problem #4 (16 points) Problem #5 (35 points) Total (100 points) Problem 1 Short

More information

Assignment 6: The Power of Caches

Assignment 6: The Power of Caches Assignment 6: The Power of Caches Due by: April 20, 2018 before 10:00 pm Collaboration: Individuals or Registered Pairs (see Piazza). It is mandatory for every student to register on Piazza. Grading: Packaging

More information

INSTEON Hidden Door Sensor

INSTEON Hidden Door Sensor Developer Notes INSTEON Door Sensor Developer Notes INSTEON Hidden Door Sensor Version 005 October 18, 2013 Revision History Rev Date Comments 001 4/15/13 Initial Release 002 8/2/13 Updated s 003 9/6/13

More information

Single SCT temperature controller

Single SCT temperature controller Description Data transmission: Profibus DP Single SCT temperature controller Table of contents: 1 Interface 2 1.1 General description 2 1.2 Cable routing, shielding and measures against interference voltages

More information

CS 215 Fundamentals of Programming II Spring 2011 Project 2

CS 215 Fundamentals of Programming II Spring 2011 Project 2 CS 215 Fundamentals of Programming II Spring 2011 Project 2 20 points Out: February 2, 2011 Due: February 9, 2011 Reminder: Programming Projects (as opposed to Homework exercises) are to be your own work.

More information

Nuvoton Touch Key Series NT1160 Datasheet

Nuvoton Touch Key Series NT1160 Datasheet Nuvoton Touch Series Datasheet The information described in this document is the exclusive intellectual property of Nuvoton Technology Corporation and shall not be reproduced without permission from Nuvoton.

More information

Assignment 1: Build Environment

Assignment 1: Build Environment Read the entire assignment before beginning! Submit deliverables to CourSys: https://courses.cs.sfu.ca/ Late penalty is 10% per calendar day (each 0 to 24 hour period past due, max 2 days). This assignment

More information

EE355 Lab 5 - The Files Are *In* the Computer

EE355 Lab 5 - The Files Are *In* the Computer 1 Introduction In this lab you will modify a working word scramble game that selects a word from a predefined word bank to support a user-defined word bank that is read in from a file. This is a peer evaluated

More information

Modbus Register Map: Galaxy 5000 & Galaxy 5500

Modbus Register Map: Galaxy 5000 & Galaxy 5500 Modbus Map: Galaxy 5000 & Galaxy 5500 Notes: 1. 16-bit registers are transmitted MSB first (i.e. big-endian). 2. INT32 UINT16 and and UINT32 are are most-significant word in in n+0, least significant word

More information

BISS MODULE NOTICE. Each service can have is own SW. but, if more than one service share the same SW, you can use the main SW.

BISS MODULE NOTICE. Each service can have is own SW. but, if more than one service share the same SW, you can use the main SW. Or how to use Biss modules. BISS MODULE NOTICE In opposite to all other CA system, for which the module has only to be inserted into the IRD, the BISS module need to be configured BEFORE being able to

More information

CS 6353 Compiler Construction Project Assignments

CS 6353 Compiler Construction Project Assignments CS 6353 Compiler Construction Project Assignments In this project, you need to implement a compiler for a language defined in this handout. The programming language you need to use is C or C++ (and the

More information

VPGate Manual PROFIBUS to serial

VPGate Manual PROFIBUS to serial VPGate Manual PROFIBUS to serial Important information Purpose of the Manual This user manual provides information how to work with the VPGate PROFIBUS to serial. Document Updates You can obtain constantly

More information

Homework Assignment #3

Homework Assignment #3 CS 540-2: Introduction to Artificial Intelligence Homework Assignment #3 Assigned: Monday, February 20 Due: Saturday, March 4 Hand-In Instructions This assignment includes written problems and programming

More information

Project 1 Computer Science 2334 Spring 2016 This project is individual work. Each student must complete this assignment independently.

Project 1 Computer Science 2334 Spring 2016 This project is individual work. Each student must complete this assignment independently. Project 1 Computer Science 2334 Spring 2016 This project is individual work. Each student must complete this assignment independently. User Request: Create a simple movie data system. Milestones: 1. Use

More information

Hardware: Logical View

Hardware: Logical View Hardware: Logical View CPU Memory Bus Disks Net USB Etc. 1 Hardware: Physical View USB I/O controller Storage connections CPU Memory 2 Hardware: 351 View (version 0) instructions? Memory CPU data CPU executes

More information

Modbus/TCP is supported on some controllers. See QCI-AN028 Modbus TCP.

Modbus/TCP is supported on some controllers. See QCI-AN028 Modbus TCP. Date: 9 October 2007 www.quicksilvercontrols.com Modbus Protocol Included files: Modbus Protocol.qcp Modbus CRC.xls The Modbus protocol may be implemented in either an ASCII format or RTU format. QuickSilver

More information

Specification E2 Interface

Specification E2 Interface Specification E2 Interface Version 4.1 Name Date Created: Robert Mayr. 15.04.2011 Checked: Haider A. 15.04.2011 Approved: Reason for change: Text corrections TABLE OF CONTENTS 1 INTRODUCTION... 3 1.1 Overview..................................................................................................................

More information