Сначала я сделал управление
tda8425 на пике по i2c "неправильным" способом - делал уровень HIGH на шине посыланием непосредственно единички на ногу порта(bsf PORT,PIN). Потом увидел, что это неправильно, поставил 5K резисторы на шину и начал делать то же самое, только теперь уже для изменения уровня перенастраивал порт на вход и выход(bsf STATUS,RP0 bsf PORT,PIN bcf STATUS,RP0). И все перестало работать!
Точнее даже не все. Этой микросхеме нужна инициализация в виде:
бит START
посылаем ее адрес (MAD)
посылаем суб-адрес функции (SAD)
посылаем значение (X)
MAD
SAD
X1
...
MAD
SAD
X5
бит STOP
так эта инициалиавция работает, но дальше мне нужно допустим изменить громкость. Для этого посылаю:
START
MAD
SAD
X1
STOP
Так после этого нету ответа от процесора (ACK).
От рабочей программы отличается *только* способом установки 0 или 1 на шине.