Jump to content

Component: DAC Quad (MCP4728) (MCP4728) (Analog Output): Difference between revisions

From Flowcode Help
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="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 (Release)
| 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.


==[[File:Component Icon adb523db_db13_4d19_bfa3_0fbc177e4d3f.png|Image]] DAC Quad (MCP4728) (MCP4728) component==
==Detailed description==
Component to drive a quad digital to analogue converter (DAC) IC from Microchip via an I2C interface.
Compatible with MCP4728 (12-Bit) devices.


==Examples==
''<span style="color:red;">No additional examples</span>''




==Downloadable macro reference==


===<span style="font-weight: normal;"><u><tt>SetOutput</tt></u></span>===
Sets the output voltage of the DAC


12-Bit: Range 0-4095


'''Parameters'''


:[[Variable Types|BYTE]] ''Channel''
::Range: 0-3 / 0=DAC Channel 0 / 1=DAC Channel 1 ...


:[[Variable Types|UINT]] ''DAC_Value''
::The value to output to the DAC




'''Return value'''


:''This call does not return a value''




===<span style="font-weight: normal;"><u><tt>ControlPins</tt></u></span>===
Allows Shutdown (SHDN) and Latch (LDAC) pins to be controlled directly if enabled.


'''Parameters'''


:[[Variable Types|BOOL]] ''Latch''
::0 = Data output driven from DAC register, 1 = Data output locked




'''Return value'''


:''This call does not return a value''




===<span style="font-weight: normal;"><u><tt>SetInitialEEOutput</tt></u></span>===
Stores a DAC value into EE memory to be used on power up.


'''Parameters'''


:[[Variable Types|BYTE]] ''Channel''
::Range: 0-3 / 0=DAC Channel 0 / 1=DAC Channel 1 ...


:[[Variable Types|UINT]] ''DAC_Value''
''No detailed description exists yet for this component''
::The value to output to the DAC


==Examples==


'''Return value'''


:''This call does not return a value''




===<span style="font-weight: normal;"><u><tt>Disable</tt></u></span>===
Disables the DAC output.


'''Parameters'''


:[[Variable Types|BYTE]] ''Channel''
::Range: 0-3 / 0=DAC Channel 0 / 1=DAC Channel 1 ...




'''Return value'''


:''This call does not return a value''




===<span style="font-weight: normal;"><u><tt>Enable</tt></u></span>===
Enables the DAC Output.


'''Parameters'''


:[[Variable Types|BYTE]] ''Channel''
::Range: 0-3 / 0=DAC Channel 0 / 1=DAC Channel 1 ...




'''Return value'''


:''This call does not return a value''




===<span style="font-weight: normal;"><u><tt>SetDeviceAddress</tt></u></span>===
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.


'''Parameters'''


:[[Variable Types|BYTE]] ''OldAddress''
::Range: 0-7


:[[Variable Types|BYTE]] ''NewAddress''
::Range: 0-7




'''Return value'''
''<span style="color:red;">No additional examples</span>''


:''This call does not return a value''




===<span style="font-weight: normal;"><u><tt>Initialise</tt></u></span>===
Configures the SPI peripheral ready for communications and initialises the internal variables. DAC needs to be enabled before any output voltage can be generated.


'''Parameters'''


:''This macro has no parameters''




'''Return value'''


:''This call does not return a value''






==Simulation macro reference==


''This component does not contain any simulation macros''
==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.&nbsp;
|-
|-
| 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&nbsp;
|-
| 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==
<span style="font-weight: normal;"><u>Pull Down Option</u></span>


This property is of type ''Fixed list of ints'' and can be referenced with the variable name ''PDOption''.
===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.&nbsp;
|-
|-
| 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 ...&nbsp;
|-
| 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''
|}


''<span style="color:red;">No additional information</span>''


===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.&nbsp;
|-
|-
| 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 ...&nbsp;
|-
| 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''
|}




<span style="font-weight: normal;"><u>VREF Option</u></span>
===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.&nbsp;
|-
|-
| 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''
|}


This property is of type ''Fixed list of ints'' and can be referenced with the variable name ''VREFOPtion''.


''<span style="color:red;">No additional information</span>''
===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.&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | OldAddress
|-
| colspan="2" | Range: 0-7&nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | NewAddress
|-
| colspan="2" | Range: 0-7&nbsp;
|-
| 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.&nbsp;
|-
|-
| 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 ...&nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | DAC_Value
|-
| colspan="2" | The value to output to the DAC&nbsp;
|-
| 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''
|}


<span style="font-weight: normal;"><u>Gain Option</u></span>


This property is of type ''Fixed list of ints'' and can be referenced with the variable name ''GainOP''.
===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&nbsp;
|-
|-
| 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 ...&nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | DAC_Value
|-
| colspan="2" | The value to output to the DAC&nbsp;
|-
| 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''
|}


Selects the maximum reference value for the DAC


<span style="font-weight: normal;"><u>Vref Voltage</u></span>
==Property reference==


This property is of type ''Floating point'' and can be referenced with the variable name ''VrefVol''.
{| 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'''  
<span style="font-weight: normal;"><u>Steps</u></span>
|-
 
|-
This property is of type ''Unsigned integer'' and can be referenced with the variable name ''Steps''.
| 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" | &nbsp;
<span style="font-weight: normal;"><u>Control Bits</u></span>
|-
 
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
This property is of type ''Signed integer'' and can be referenced with the variable name ''BITS''.
| width="90%" | VREF Option
 
|-
Number of digital control bits
| colspan="2" | &nbsp;
 
|-
<span style="font-weight: normal;"><u>Resolution</u></span>
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
 
| width="90%" | Gain Option
This property is of type ''Line of text'' and can be referenced with the variable name ''Res''.
|-
 
| colspan="2" | Selects the maximum reference value for the DAC&nbsp;
Maximum output resolution based on number of control bits.
|-
 
| width="10%" align="center" | [[File:Fc9-type-15-icon.png]]
<span style="font-weight: normal;"><u>Voltage Resolution</u></span>
| width="90%" | Vref Voltage
 
|-
This property is of type ''Floating point'' and can be referenced with the variable name ''VoltRes''.
| colspan="2" | Reference Voltage, Used to calculate the Voltage resolution.&nbsp;
 
|-
Specifies the Resolution per digital bit in terms of Voltage.
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
 
| width="90%" | Steps
<span style="font-weight: normal;"><u>Device Address</u></span>
|-
 
| colspan="2" | Number of discrete output states available from the DAC.&nbsp;
This property is of type ''Fixed list of ints'' and can be referenced with the variable name ''DeviceAddress''.
|-
 
| width="10%" align="center" | [[File:Fc9-type-14-icon.png]]
''<span style="color:red;">No additional information</span>''
| width="90%" | Control Bits
 
|-
 
| colspan="2" | Number of digital control bits&nbsp;
 
|-
<span style="font-weight: normal;"><u>Channel</u></span>
| width="10%" align="center" | [[File:Fc9-type-10-icon.png]]
 
| width="90%" | Resolution
This property is of type ''Fixed list of ints'' and can be referenced with the variable name ''cal_i2c1::CHANNEL''.
|-
 
| colspan="2" | Maximum output resolution based on number of control bits.&nbsp;
Channel selection
|-
 
| width="10%" align="center" | [[File:Fc9-type-15-icon.png]]
<span style="font-weight: normal;"><u>SDA</u></span>
| width="90%" | Voltage Resolution
 
|-
This property is of type ''Single digital pin'' and can be referenced with the variable name ''cal_i2c1::SDA''.
| colspan="2" | Specifies the Resolution per digital bit in terms of Voltage.&nbsp;
 
|-
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
<span style="font-weight: normal;"><u>SCL</u></span>
|-
 
|-
This property is of type ''Single digital pin'' and can be referenced with the variable name ''cal_i2c1::SCL''.
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
 
| width="90%" | Device Address
Pin used for SCL (clock signal)
|-
 
| colspan="2" | &nbsp;
<span style="font-weight: normal;"><u>Baud Select</u></span>
|-
 
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
This property is of type ''Fixed list of ints'' and can be referenced with the variable name ''cal_i2c1::BAUD_LIST''.
| width="90%" | Channel
 
|-
Baud rate option selector
| colspan="2" | Channel selection&nbsp;
 
|-
<span style="font-weight: normal;"><u>Baud Rate</u></span>
| width="10%" align="center" | [[File:Fc9-type-5-icon.png]]
 
| width="90%" | SDA
This property is of type ''Signed integer'' and can be referenced with the variable name ''cal_i2c1::BAUD''.
|-
 
| colspan="2" | Pin used for SDA (data signal)&nbsp;
Baud rate to be used
|-
 
| width="10%" align="center" | [[File:Fc9-type-5-icon.png]]
<span style="font-weight: normal;"><u>Stop Delay</u></span>
| width="90%" | SCL
 
|-
This property is of type ''True or false'' and can be referenced with the variable name ''cal_i2c1::StopDel''.
| colspan="2" | Pin used for SCL (clock signal)&nbsp;
 
|-
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&nbsp;
 
|-
 
| 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&nbsp;
 
|-
<span style="font-weight: normal;"><u>Use LDAC Pin</u></span>
| width="10%" align="center" | [[File:Fc9-type-7-icon.png]]
 
| width="90%" | Stop Delay
This property is of type ''True or false'' and can be referenced with the variable name ''UseLDAC''.
|-
 
| 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. &nbsp;
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
 
|-
<span style="font-weight: normal;"><u>DAC Output Scope Traces</u></span>
| 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.&nbsp;
 
|-
This property is of type ''True or false'' and can be referenced with the variable name ''ScopeTraces''.
| width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]]
 
| width="90%" class="mtx-class-propfolder" | Simulation
Selects if the scope traces are automatically generated or not
|-
 
|-
<span style="font-weight: normal;"><u>Scope Traces</u></span>
| width="10%" align="center" | [[File:Fc9-type-7-icon.png]]
 
| width="90%" | Simulation Comms
This property is of type ''True or false'' and can be referenced with the variable name ''cal_i2c1::ScopeTraces''.
|-
 
| colspan="2" | &nbsp;
Selects if the component pin connections are automatically generated on the data recorder window or not.
|}
 
Yes: Automatically add the component pins to a group on the data recorder which will reflect the sim data during simultion.
 
No: Do not show the pin signals on the data recorder window.
 
<span style="font-weight: normal;"><u>Console Data</u></span>
 
This property is of type ''True or false'' and can be referenced with the variable name ''cal_i2c1::ConsoleData''.
 
Selects if the console data is automatically generated or not


<span style="font-weight: normal;"><u>Injector</u></span>
==Component Source Code==


This property is of type ''Fixed list of ints'' and can be referenced with the variable name ''cal_i2c1::Injector''.
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]


Specifies the injector component on the panel to interact with to provide comms simulation.
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. 
- BOOL Latch
0 = Data output driven from DAC register, 1 = Data output locked 
- VOID Return


Disable

Disable
Disables the DAC output. 
- BYTE Channel
Range: 0-3 / 0=DAC Channel 0 / 1=DAC Channel 1 ... 
- VOID Return


Enable

Enable
Enables the DAC Output. 
- BYTE Channel
Range: 0-3 / 0=DAC Channel 0 / 1=DAC Channel 1 ... 
- VOID 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. 
- VOID Return


SetDeviceAddress

SetDeviceAddress
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. 
- BYTE OldAddress
Range: 0-7 
- BYTE NewAddress
Range: 0-7 
- VOID Return


SetInitialEEOutput

SetInitialEEOutput
Stores a DAC value into EE memory to be used on power up. 
- BYTE Channel
Range: 0-3 / 0=DAC Channel 0 / 1=DAC Channel 1 ... 
- UINT DAC_Value
The value to output to the DAC 
- VOID Return


SetOutput

SetOutput
Sets the output voltage of the DAC 12-Bit: Range 0-4095 
- BYTE Channel
Range: 0-3 / 0=DAC Channel 0 / 1=DAC Channel 1 ... 
- UINT DAC_Value
The value to output to the DAC 
- VOID Return


Property reference

Properties
Pull Down Option
 
VREF Option
 
Gain Option
Selects the maximum reference value for the DAC 
Vref Voltage
Reference Voltage, Used to calculate the Voltage resolution. 
Steps
Number of discrete output states available from the DAC. 
Control Bits
Number of digital control bits 
Resolution
Maximum output resolution based on number of control bits. 
Voltage Resolution
Specifies the Resolution per digital bit in terms of Voltage. 
I2C Connections
Device Address
 
Channel
Channel selection 
SDA
Pin used for SDA (data signal) 
SCL
Pin used for SCL (clock signal) 
Baud Select
Baud rate option selector 
Baud Rate
Baud rate to be used 
Stop Delay
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.  
Use LDAC Pin
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. 
Simulation
Simulation Comms
 

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