Здравствуйте!
Есть atmega88, к ней на SPI поключена микросхема контроллера. На USART в MSPIM подключен АЦП (так показалось удобнее - тем боолее разницы по описанию никакой (мне нужен только мастер) - плюс буферизация).
И возникает такая странная вещь - на работу USART в MSPIM влияет то - подключен ли пятипроводковый программатор (он подключается фактически к нативному SPI).
Допустим, я заливаю прошивку. МК перезапускается. Вероятность того что USARTв MSPIM будет "нормально общаться" с АЦП - 20-30%. Нормально - это означает что работает все как надо - и данные верные, и команды АЦП выполняет. Ненормально - соответсвенно остальные %. Выражается это в том, что приходят или 0, или всякие непонятные числа. Причем = это может быть все что угодно - обравки посылаемых команд, рандомные числа, сплошные нули - но нет даже обрывков полезных данных.
Если не "общается" - не вынимая программатор, делаю рестарт платы по питанию. Вероятность корректной работы - 40-50%.
Если опять приходят некорректные данные - выключаю питание, вынимаю программатор из LPT порта, включаю питание - вероятность, что заработает верно - 40-50%.
При дальнейших включениях, выключениях - вероятность, что будет работать нормально падает.
Если не заводится - разумным остается только способ залить прошивку снова и т.д.
Как может влиять программатор на схему??? Может от него какие-то клоки идут.....? F_atmega88=12.5MHz, F_ADC=7.68MHz, BBREG в USART 128.