This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
resources:eval:user-guides:eval-adicup3029:reference_designs:demo_cn0414 [09 Nov 2018 11:46] – [Outputting Data] Andrei Drimbarean | resources:eval:user-guides:eval-adicup3029:reference_designs:demo_cn0414 [03 Mar 2021 02:55] (current) – [Obtaining the Source Code] adding in .Hex files Brandon Bushey | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== PLC Arduino Shield Input Demo ====== | ====== PLC Arduino Shield Input Demo ====== | ||
- | The **ADuCM_demo_cn0414** project provides a solution to control a **PLC** or **DCS** input system using the **EVAL-CN0414-ARDZ** and the **EVAL-ADICUP3029**. It uses an **ADC** with 4 differential voltage channels and 4 current channels and boasts low power **Open-Wire Detection** capabilities and **HART** communication. It has a 32kb EEPROM memory that can also be used to identify the board and is controlled via a command line interface (**CLI**). | + | The **ADuCM3029_demo_cn0414** project provides a solution to control a **PLC** or **DCS** input system using the **EVAL-CN0414-ARDZ** and the **EVAL-ADICUP3029**. It uses an **ADC** with 4 differential voltage channels and 4 current channels and boasts low power **Open-Wire Detection** capabilities and **HART** communication. It has a 32kb EEPROM memory that can also be used to identify the board and is controlled via a command line interface (**CLI**). |
===== General Description/ | ===== General Description/ | ||
Line 7: | Line 7: | ||
The **ADuCM_demo_cn0414** project uses **EVAL-CN0414-ARDZ** to provide a complete, fully isolated and highly flexible, four channel analog input system. The **EVAL-CN0414-ARDZ** is suitable for programmable logic controllers (**PLC**) and distributed control system (**DCS**) applications that require multiple voltage inputs. It boasts **open wire detection** and has **HART**-compatible, | The **ADuCM_demo_cn0414** project uses **EVAL-CN0414-ARDZ** to provide a complete, fully isolated and highly flexible, four channel analog input system. The **EVAL-CN0414-ARDZ** is suitable for programmable logic controllers (**PLC**) and distributed control system (**DCS**) applications that require multiple voltage inputs. It boasts **open wire detection** and has **HART**-compatible, | ||
- | The circuit can be divided into the following parts: the ADC, the input channels, the HART modem and the memory. | + | The circuit can be divided into the following parts: the ADC, the input channels, the HART modem and the memory. |
- | FIXME! MAYBE LINK TO APP NOTE | + | |
The **ADC** is the core of the **EVAL-CN0414-ARDZ** shield. It is an [[adi> | The **ADC** is the core of the **EVAL-CN0414-ARDZ** shield. It is an [[adi> | ||
- | FIXME! MARKS DIAGRAM | + | {{ : |
Alternatively the user can request a burst read of up to 2000 samples returned at the ADC output data rate. | Alternatively the user can request a burst read of up to 2000 samples returned at the ADC output data rate. | ||
The application uses the **ADCs Open-Wire Detection** capabilities for the voltage channels. When activated this option also tracks the state of the channel connection on every read and gives a warning when a channel is disconnected. | The application uses the **ADCs Open-Wire Detection** capabilities for the voltage channels. When activated this option also tracks the state of the channel connection on every read and gives a warning when a channel is disconnected. | ||
Line 29: | Line 28: | ||
* 24V and 1A limited power supply (**optional**) | * 24V and 1A limited power supply (**optional**) | ||
* Software | * Software | ||
- | * [[https://gitlab.analog.com/Platformation/ | + | * [[https://github.com/analogdevicesinc/ |
* CrossCore Embedded Studio (2.8.0 or higher) | * CrossCore Embedded Studio (2.8.0 or higher) | ||
* ADuCM302x DFP (3.2.0 or higher) | * ADuCM302x DFP (3.2.0 or higher) | ||
Line 38: | Line 37: | ||
===== Setting up the Hardware ===== | ===== Setting up the Hardware ===== | ||
- | - Connect **EVAL-CN0414-ARDZ** board to the **EVAL-ADICUP3029**.{{ : | + | - Connect **EVAL-CN0414-ARDZ** board to the **EVAL-ADICUP3029**. |
- | - Connect a micro-USB cable to P10 connector of the EVAL-ADICUP3029 and connect it to a computer.{{ : | + | - Set the jumpers into the position shown below. This is the standard position and only works for one board systems.{{ : |
+ | - Connect a micro-USB cable to P10 connector of the EVAL-ADICUP3029 and connect it to a computer. The final setup should look similar to the picture below.{{ : | ||
===== Configuring the Software ===== | ===== Configuring the Software ===== | ||
Line 57: | Line 57: | ||
===== Outputting Data ===== | ===== Outputting Data ===== | ||
- | ==== Serial Terminal Output ==== | + | {{page>/ |
- | !FIXME - make sure this is correct for your application | + | ==== Available commands ==== |
- | Once the hardware and software is configured, user needs to follow on screen instructions to run Visible Light Detection\Measurement demo. | + | |
- | Following | + | Typing **help** or **h** after initial calibration sequence will display the list of commands and their short versions. Bellow |
- | Select COM Port | + | |
- | Baud rate: 9600 | + | |
- | Data: 8 bit | + | |
- | Parity: none | + | |
- | Stop: 1 bit | + | |
- | Flow Control: none | + | |
- | \\ | + | |
- | ==== Smart Device Output | + | ^ Command |
+ | ^ General commands ^ | ||
+ | | //h// | Display available commands. | | ||
+ | | // | ||
+ | ^ Internal register commands ^ | ||
+ | | //r// | Display voltage or current on the selected channel.\\ <// | ||
+ | | // | ||
+ | ^ HART commands ^ | ||
+ | | // | ||
+ | | // | ||
+ | | // | ||
+ | | // | ||
+ | | // | ||
+ | | // | ||
+ | | // | ||
+ | ^ ADC commands ^ | ||
+ | | // | ||
+ | | // | ||
+ | | // | ||
+ | | // | ||
+ | | // | ||
+ | | // | ||
+ | | // | ||
+ | | // | ||
+ | | // | ||
+ | | // | ||
+ | ^ EEPROM commands ^ | ||
+ | | // | ||
- | !FIXME | + | {{ : |
- | ==== Wi-Fi Output ==== | ||
- | !FIXME - Make sure you talk about how to display the data, and link over to the Wi-Fi wiki page for more details. | ||
- | ===== Obtaining the Source Code ===== | + | ===== Obtaining the Software |
- | We recommend not opening | + | There are two basic ways to program |
+ | - Dragging | ||
+ | - Building, Compiling, and Debugging using CCES | ||
- | The source code and include files of the FIXME!**file_name_of_demo** can be found here: | + | Using the drag and drop method, |
- | <WRAP round 80% download> | + | Importing the project into CrossCore is going to allow you to change parameters and customize the software to fit your needs, but will be a bit more advanced and will require you to download |
- | FIXME! | + | The software for the **ADuCM3029_demo_cn0414** can be found here: |
- | [[https:// | + | <WRAP round 80% download> |
+ | Prebuilt CN0414 Hex File | ||
+ | * [[https:// | ||
+ | Complete CN0414 Source Files | ||
+ | * [[https:// | ||
</ | </ | ||
- | |||
- | |||
===== How to use the Tools ===== | ===== How to use the Tools ===== | ||
Line 108: | Line 129: | ||
==== Project Structure ==== | ==== Project Structure ==== | ||
- | FIXME! | + | The program is composed of two main parts: |
+ | | ||
+ | - Main process. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Board setup initializes **UART**, **SPI** and **I2C** communication and verifies if there is an active **EVAL-CN0414-ARDZ** board connected by reading the AD4111 ID register. Here is also initialized the update timer for the internal channel registers. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | The main process routine implements the **CLI** and calls the commands input by the user. This routine also checks the flags asserted in the asynchronous events (the update channel register flag, the HART received flag and the floating channel flags) and calls the appropriate handler methods. There is also a flag asserted by the channel register update rate and the **ADC** output data rate. If the update rate would be too close to the output data rate, the actual update rate might slow down to be possible for the program to maintain all functionality. The update rate may never be bigger or equal to the **ADC** output data rate divided by 8 (for 8 channels). | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | The flow chart below represents the way the channel registers | ||
+ | |||
+ | {{ : | ||
// End of Document // | // End of Document // | ||