Me gustaría tener una salida de mi DAC programada por el STM32, utilizando el protocolo I2C. Tengo algunos problemas ...
mC: Nucleo-F303RE
DAC: MCP47FEB11A0-E / ST hoja de datos: enlace
Así es como establecí el circuito:
- Vdd - > 5V
- Vref - >
- Vout - > expectativa: se supone que debo medir 5 V con el multímetro
- NC - >
- Vss - > GND
- LAT0 / -HVC - >
- SCL - > va a la SCL en la resolución STM + 4K7
- SDA - > va a la SDA en la resolución STM + 4K7
Esto es lo que hice:
- utilizando CubeMX, generé el proyecto habilitando los pines I2C (SCL, SDA)
- encontré la dirección de la hoja de datos, después de cambiar y convertir tengo 0xC0 (aunque no estoy seguro de esto)
- quería usar la función hal_i2c_isdeviceready / mem_write
En este punto, probablemente te habrás dado cuenta de que soy un principiante y no estoy muy seguro de lo que estoy haciendo. Todo lo que sé es de tutoriales / videos, pero en este momento no sé cómo proceder.
Primero me gustaría ver si la comunicación I2C está funcionando, luego use la función mem_write:
HAL_I2C_MEM_WRITE(&i2c1,
0xC0,
0x64, //because in the datasheet at the 'write' option I think this is supposed to be a command bit 00001000
I2C_MEMADD_SIZE_8BIT,
register value,
2,
100)
Después de muchos intentos, el programa no tiene errores ni salida del DAC, así que no sé cuál es el problema y cómo hacerlo funcionar.
Aquí está el enlace al código: enlace