After some battle with stm32f4discovery board and built-in DAC(CS43l22) I disovered why I couldn't receive ACK signal. The problem was that everytime when I tried to make a transfer, address of device was shifted by 1 to the left (addr << 1) that's why DAC 0x94 addres became 0x128. I have discovered that by checking every adress from 0 to 255 and I found that transfer address was 0xA4 (0x94 >> 1). The solution to this problem was changing
to
in i2c_lld_master_transmit_timeout and i2c_lld_master_receive_timeout in lld drivers (i2c_lld.c) in I2Cv1 folder.
Can someone can tell me why address had to be shifted?