mirror of
https://github.com/RobTillaart/Arduino.git
synced 2024-10-03 18:09:02 -04:00
2.5 KiB
2.5 KiB
DAC8551
Arduino library for DAC8554 SPI Digital Analog Convertor
Description
The DAC8554 is a SPI based 16 bit DAC with four channels.
Warning the library is not tested extensively.
Interface
Core
- DAC8554(uint8_t slaveSelect, uint8_t address = 0) Constructor for hardware SPI, since 0.2.0 the slaveSelect pin needs to be defined.
- DAC8554(uint8_t spiData, uint8_t spiClock, uint8_t slaveSelect, uint8_t address = 0) Constructor for the software SPI
- void begin() initializes all pins to default state
- void setValue(uint8_t channel, uint16_t value) set the value of the channel to 0 - 65535
- void setSingleValue(uint8_t channel, uint16_t value) writes the value to the channel but does not affect buffered ones. TODO - elaborate.
- uint16_t getValue(uint8_t channel) returns the last value written.
Power down
check datasheet for details.
- void setPowerDown(uint8_t powerDownMode) sets power down mode. 0 - 3.
- uint8_t getPowerDownMode() returns last written mode.
- void setSinglePowerDown(uint8_t channel, uint8_t powerDownMode) does not affect other channels.
Power down mode | Value |
---|---|
DAC8554_POWERDOWN_NORMAL | 0x00 |
DAC8554_POWERDOWN_1K | 0x40 |
DAC8554_POWERDOWN_100K | 0x80 |
DAC8554_POWERDOWN_HIGH_IMP | 0xC0 |
Broadcast
- void bufferValue(uint8_t channel, uint16_t value) prepare a new value for a channel.
- void broadcastBuffer() write all buffers to all(up to 4) 8554's channel's
- void broadcastValue(uint16_t value) write value to all(up to 4) 8554's channel's
- void broadcastPowerDown(uint8_t powerDownMode) write powerDownMode to all 8554's channel's
Operation
See examples
demo_hw_spi.ino
- write a sawtooth to channel A followed by a sinus
- uses HW SPI
demo_sw_spi.ino
- write a sawtooth to channel A followed by a sinus
- uses SW SPI
demo_same_time_write.ino
- writes two square waves that trigger at the same time
demo_sequential_write.ino
- writes two square waves sequentially (slight time difference)
demo_powerdown.ino
- idem
TODO
more testing