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:51] – [Wi-Fi Output] 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>/ |
- | The program outputs data and **CLI** interface to a serial terminal through **UART**. | + | ==== Available commands ==== |
- | - In order to view the data, you must flash the program to the EVAL-ADICUP3029. | + | Typing **help** or **h** after initial calibration sequence will display |
- | - Then follow | + | |
- | Following is the UART configuration. | + | ^ Command |
- | | + | ^ General commands ^ |
- | | + | | //h// | Display available commands. | |
- | Data: 8 bit | + | | // |
- | | + | ^ Internal register commands ^ |
- | Stop: 1 bit | + | | //r// | Display voltage or current on the selected channel.\\ <// |
- | Flow Control: none | + | | // |
- | \\ | + | ^ HART commands ^ |
- | The terminal program must interpret | + | | // |
+ | | // | ||
+ | | // | ||
+ | | // | ||
+ | | // | ||
+ | | // | ||
+ | | // | ||
+ | ^ ADC commands ^ | ||
+ | | // | ||
+ | | // | ||
+ | | // | ||
+ | | // | ||
+ | | // | ||
+ | | // | ||
+ | | // | ||
+ | | // | ||
+ | | // | ||
+ | | // | ||
+ | ^ EEPROM commands ^ | ||
+ | | // | ||
- | ==== Smart Device Output ==== | + | {{ : |
- | !FIXME - Make sure you point out which app is correct and then talk about the data that gets output. (Pictures are great) and link over to the app page so customers can figure out how to download/ | ||
+ | ===== Obtaining the Software ===== | ||
- | ===== Obtaining | + | There are two basic ways to program |
+ | - Dragging and Dropping the .Hex to the Daplink drive | ||
+ | - Building, Compiling, and Debugging using CCES | ||
- | We recommend not opening | + | Using the drag and drop method, the software is going to be a version that Analog Devices creates for testing and evaluation purposes. This is the EASIEST way to get started with the reference design |
- | The source code and include files of the FIXME!**file_name_of_demo** can be found here: | + | Importing the project into CrossCore is going to allow you to change parameters |
- | <WRAP round 80% download> | + | The software for the **ADuCM3029_demo_cn0414** can be found here: |
- | + | ||
- | FIXME! | + | |
- | [[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 109: | 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 // | ||