Component: DAC Quad (MCP4728) (MCP4728) (Analog Output): Difference between revisions
Appearance
XML import |
m Text replacement - "style="background-color:#EAE1EA;"" to "class="mtx-class-propfolder"" |
||
| (22 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
{| style="width:50%" | |||
{| | |||
|- | |- | ||
| width="20%" style="color: gray;" | Author | | width="20%" style="color:gray;" | Author | ||
| Matrix TSL | | Matrix TSL | ||
|- | |- | ||
| width="20%" style="color: gray;" | Version | | width="20%" style="color:gray;" | Version | ||
| 1.0 | | 1.0 | ||
|- | |- | ||
| width="20%" style="color: gray;" | Category | | width="20%" style="color:gray;" | Category | ||
| Analog Output | | Analog Output | ||
|} | |} | ||
==DAC Quad (MCP4728) component== | |||
Component to drive a quad digital to analogue converter (DAC) IC from Microchip via an I2C interface. Compatible with MCP4728 (12-Bit) devices. | |||
== | ==Detailed description== | ||
''No detailed description exists yet for this component'' | |||
==Examples== | |||
'' | ''<span style="color:red;">No additional examples</span>'' | ||
==Macro reference== | |||
===ControlPins=== | |||
{| class="mtx-class-macrotable wikitable" | |||
|- | |||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | |||
| width="90%" class="mtx-class-macrohead" | '''ControlPins''' | |||
|- | |||
| colspan="2" | Allows Shutdown (SHDN) and Latch (LDAC) pins to be controlled directly if enabled. | |||
|- | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-bool-icon.png]] - BOOL | |||
| width="90%" | Latch | |||
|- | |||
| colspan="2" | 0 = Data output driven from DAC register, 1 = Data output locked | |||
|- | |||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | |||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | |||
|} | |||
===Disable=== | |||
{| class="mtx-class-macrotable wikitable" | |||
|- | |||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | |||
| width="90%" class="mtx-class-macrohead" | '''Disable''' | |||
|- | |||
| colspan="2" | Disables the DAC output. | |||
|- | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="90%" | Channel | |||
|- | |||
| colspan="2" | Range: 0-3 / 0=DAC Channel 0 / 1=DAC Channel 1 ... | |||
|- | |||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | |||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | |||
|} | |||
===Enable=== | |||
{| class="mtx-class-macrotable wikitable" | |||
|- | |||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | |||
| width="90%" class="mtx-class-macrohead" | '''Enable''' | |||
|- | |||
| colspan="2" | Enables the DAC Output. | |||
|- | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="90%" | Channel | |||
|- | |||
| colspan="2" | Range: 0-3 / 0=DAC Channel 0 / 1=DAC Channel 1 ... | |||
|- | |||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | |||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | |||
|} | |||
===Initialise=== | |||
{| class="mtx-class-macrotable wikitable" | |||
|- | |||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | |||
| width="90%" class="mtx-class-macrohead" | '''Initialise''' | |||
|- | |||
| colspan="2" | Configures the SPI peripheral ready for communications and initialises the internal variables. DAC needs to be enabled before any output voltage can be generated. | |||
|- | |||
|- | |||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | |||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | |||
|} | |||
'' | ===SetDeviceAddress=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | |||
| width="90%" class="mtx-class-macrohead" | '''SetDeviceAddress''' | |||
|- | |||
| colspan="2" | Writes a new device address into EE memory. The use LDAC pin component property must be set to true and the LDAC pin should be unique for every MCP4728 device connected to the I2C bus. | |||
|- | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="90%" | OldAddress | |||
|- | |||
| colspan="2" | Range: 0-7 | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="90%" | NewAddress | |||
|- | |||
| colspan="2" | Range: 0-7 | |||
|- | |||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | |||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | |||
|} | |||
===SetInitialEEOutput=== | |||
{| class="mtx-class-macrotable wikitable" | |||
|- | |||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | |||
| width="90%" class="mtx-class-macrohead" | '''SetInitialEEOutput''' | |||
|- | |||
| colspan="2" | Stores a DAC value into EE memory to be used on power up. | |||
|- | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="90%" | Channel | |||
|- | |||
| colspan="2" | Range: 0-3 / 0=DAC Channel 0 / 1=DAC Channel 1 ... | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | |||
| width="90%" | DAC_Value | |||
|- | |||
| colspan="2" | The value to output to the DAC | |||
|- | |||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | |||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | |||
|} | |||
===SetOutput=== | |||
{| class="mtx-class-macrotable wikitable" | |||
|- | |||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | |||
| width="90%" class="mtx-class-macrohead" | '''SetOutput''' | |||
|- | |||
| colspan="2" | Sets the output voltage of the DAC 12-Bit: Range 0-4095 | |||
|- | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="90%" | Channel | |||
|- | |||
| colspan="2" | Range: 0-3 / 0=DAC Channel 0 / 1=DAC Channel 1 ... | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | |||
| width="90%" | DAC_Value | |||
|- | |||
| colspan="2" | The value to output to the DAC | |||
|- | |||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | |||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | |||
|} | |||
==Property reference== | |||
{| class="mtx-class-macrotable wikitable" | |||
|- | |||
Reference Voltage, Used to calculate the Voltage resolution. | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-prop-icon.png]] | ||
| width="90%" class="mtx-class-macrohead" | '''Properties''' | |||
|- | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]] | |||
| width="90%" | Pull Down Option | |||
Number of discrete output states available from the DAC. | |- | ||
| colspan="2" | | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]] | |||
| width="90%" | VREF Option | |||
|- | |||
Number of digital control bits | | colspan="2" | | ||
|- | |||
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]] | |||
| width="90%" | Gain Option | |||
|- | |||
| colspan="2" | Selects the maximum reference value for the DAC | |||
Maximum output resolution based on number of control bits. | |- | ||
| width="10%" align="center" | [[File:Fc9-type-15-icon.png]] | |||
| width="90%" | Vref Voltage | |||
|- | |||
| colspan="2" | Reference Voltage, Used to calculate the Voltage resolution. | |||
|- | |||
Specifies the Resolution per digital bit in terms of Voltage. | | width="10%" align="center" | [[File:Fc9-type-21-icon.png]] | ||
| width="90%" | Steps | |||
|- | |||
| colspan="2" | Number of discrete output states available from the DAC. | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-type-14-icon.png]] | |||
| width="90%" | Control Bits | |||
|- | |||
| colspan="2" | Number of digital control bits | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-type-10-icon.png]] | |||
| width="90%" | Resolution | |||
|- | |||
| colspan="2" | Maximum output resolution based on number of control bits. | |||
Channel selection | |- | ||
| width="10%" align="center" | [[File:Fc9-type-15-icon.png]] | |||
| width="90%" | Voltage Resolution | |||
|- | |||
| colspan="2" | Specifies the Resolution per digital bit in terms of Voltage. | |||
|- | |||
Pin used for SDA (data signal) | | width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | ||
| width="90%" class="mtx-class-propfolder" | I2C Connections | |||
|- | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]] | |||
| width="90%" | Device Address | |||
Pin used for SCL (clock signal) | |- | ||
| colspan="2" | | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]] | |||
| width="90%" | Channel | |||
|- | |||
Baud rate option selector | | colspan="2" | Channel selection | ||
|- | |||
| width="10%" align="center" | [[File:Fc9-type-5-icon.png]] | |||
| width="90%" | SDA | |||
|- | |||
| colspan="2" | Pin used for SDA (data signal) | |||
Baud rate to be used | |- | ||
| width="10%" align="center" | [[File:Fc9-type-5-icon.png]] | |||
| width="90%" | SCL | |||
|- | |||
| colspan="2" | Pin used for SCL (clock signal) | |||
|- | |||
On older microcontroller devices there is a potential for the I2C hardware channel to lock up if there is not | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]] | ||
| width="90%" | Baud Select | |||
a 10ms delay between an I2C stop event and the next I2C start event. | |- | ||
| colspan="2" | Baud rate option selector | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-type-14-icon.png]] | |||
Most modern microcontrollers will not have a problem so this property can be disabled to speed up the | | width="90%" | Baud Rate | ||
|- | |||
I2C communications. | | colspan="2" | Baud rate to be used | ||
|- | |||
| width="10%" align="center" | [[File:Fc9-type-7-icon.png]] | |||
| width="90%" | Stop Delay | |||
|- | |||
| colspan="2" | On older microcontroller devices there is a potential for the I2C hardware channel to lock up if there is not a 10ms delay between an I2C stop event and the next I2C start event. Most modern microcontrollers will not have a problem so this property can be disabled to speed up the I2C communications. | |||
Allows the LDAC pin to be driven from an output pin on the microcontroller. | |- | ||
| width="10%" align="center" | [[File:Fc9-type-7-icon.png]] | |||
If not used then tie the LDAC pin to GND to allow the DAC to function. | | width="90%" | Use LDAC Pin | ||
|- | |||
| colspan="2" | Allows the LDAC pin to be driven from an output pin on the microcontroller. If not used then tie the LDAC pin to GND to allow the DAC to function. | |||
|- | |||
| width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | |||
| width="90%" class="mtx-class-propfolder" | Simulation | |||
|- | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-type-7-icon.png]] | |||
| width="90%" | Simulation Comms | |||
|- | |||
| colspan="2" | | |||
|} | |||
==Component Source Code== | |||
Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/FC_Comp_Source_DAC_MCP4728.fcfx FC_Comp_Source_DAC_MCP4728.fcfx] | |||
Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_DAC_MCP4728.fcfx FC_Comp_Source_DAC_MCP4728.fcfx] | |||
Latest revision as of 14:37, 13 July 2026
| Author | Matrix TSL |
| Version | 1.0 |
| Category | Analog Output |
DAC Quad (MCP4728) component
Component to drive a quad digital to analogue converter (DAC) IC from Microchip via an I2C interface. Compatible with MCP4728 (12-Bit) devices.
Detailed description
No detailed description exists yet for this component
Examples
No additional examples
Macro reference
ControlPins
| ControlPins | |
| Allows Shutdown (SHDN) and Latch (LDAC) pins to be controlled directly if enabled. | |
| Latch | |
| 0 = Data output driven from DAC register, 1 = Data output locked | |
| Return | |
Disable
| Disable | |
| Disables the DAC output. | |
| Channel | |
| Range: 0-3 / 0=DAC Channel 0 / 1=DAC Channel 1 ... | |
| Return | |
Enable
| Enable | |
| Enables the DAC Output. | |
| Channel | |
| Range: 0-3 / 0=DAC Channel 0 / 1=DAC Channel 1 ... | |
| Return | |
Initialise
| Initialise | |
| Configures the SPI peripheral ready for communications and initialises the internal variables. DAC needs to be enabled before any output voltage can be generated. | |
| Return | |
SetDeviceAddress
SetInitialEEOutput
SetOutput
| SetOutput | |
| Sets the output voltage of the DAC 12-Bit: Range 0-4095 | |
| Channel | |
| Range: 0-3 / 0=DAC Channel 0 / 1=DAC Channel 1 ... | |
| DAC_Value | |
| The value to output to the DAC | |
| Return | |
Property reference
Component Source Code
Please click here to download the component source project: FC_Comp_Source_DAC_MCP4728.fcfx
Please click here to view the component source code (Beta): FC_Comp_Source_DAC_MCP4728.fcfx