Active quenching circuit rev-3 firmware.

Dependencies:   mbed USBDevice

Committer:
kramnik
Date:
Tue Jan 08 21:54:34 2019 +0000
Revision:
0:21fa2141c5b2
Working rev-3 firmware

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kramnik 0:21fa2141c5b2 1 #include "mbed.h"
kramnik 0:21fa2141c5b2 2 #include "dac2.h"
kramnik 0:21fa2141c5b2 3
kramnik 0:21fa2141c5b2 4 // DAC2 Pin Setup
kramnik 0:21fa2141c5b2 5 // 12-bits, 1-channel (I2C1: PB7 = SDA, PB6 = SCL)
kramnik 0:21fa2141c5b2 6 I2C i2c_dac2_1ch( PB_7, PB_6 );
kramnik 0:21fa2141c5b2 7 DigitalOut dac2_1ch_addrsel( PB_5 ); // sets the A0 (LSB) address bit (use like chip select)
kramnik 0:21fa2141c5b2 8
kramnik 0:21fa2141c5b2 9 void dac2_init( void ) {
kramnik 0:21fa2141c5b2 10 i2c_dac2_1ch.frequency( 400000 );
kramnik 0:21fa2141c5b2 11 dac2_write( 0 );
kramnik 0:21fa2141c5b2 12 }
kramnik 0:21fa2141c5b2 13
kramnik 0:21fa2141c5b2 14 void dac2_write( uint16_t val ) { // For MCP4725 12-bit DAC (values 0..4095)
kramnik 0:21fa2141c5b2 15 dac2_1ch_addrsel = 1; // Assert A0
kramnik 0:21fa2141c5b2 16
kramnik 0:21fa2141c5b2 17 char message[ 3 ];
kramnik 0:21fa2141c5b2 18 message[ 0 ] = 0x40; // Write new value without saving to EEPROM
kramnik 0:21fa2141c5b2 19 message[ 1 ] = val / 16;
kramnik 0:21fa2141c5b2 20 message[ 2 ] = ( val % 16 ) << 4;
kramnik 0:21fa2141c5b2 21
kramnik 0:21fa2141c5b2 22 i2c_dac2_1ch.write( ( 0x61 << 1 ), message, 3 );
kramnik 0:21fa2141c5b2 23
kramnik 0:21fa2141c5b2 24 dac2_1ch_addrsel = 0; // De-assert A0
kramnik 0:21fa2141c5b2 25 }