Небольшая проблемка с неясной причиной по перетягиванию одеяла:
Пытаюсь уравновесить по скорости приёма-передачи 2 процессора. Работоспособность по SPI интерфейсу возможна лишь в случае когда:
Мастер:
setup_spi(SPI_MASTER | SPI_CLK_DIV_64 | SPI_L_TO_H | SPI_XMIT_L_TO_H); - имеет кварц (OSC) 1MHz.
Слейв:
setup_spi (SPI_SLAVE | SPI_H_TO_L | SPI_XMIT_L_TO_H); - имеет (OSC) 500kHz.
Согласно даташиту, скорость обмена FCLOCK=FOSC/((SSPxADD + 1)(4)),
тогда: у Мастера 1000000/((64+1)*4)=15384,615
у Слейва 500000/((1+1)*4)=62500,
т.е видно явное преимущество Слейва (с запасом),
Но при увеличении OSС мастера до 4MHz (скорость 61536) - вся идиллия пропадает, наблюдается искажение читаемых данных из SSPxBUF в следствии циклического их сдвига.
Чё за засада? Ведь Мастер(61536)‹Слейв(62500) ?????
Кто-то пиzдит, либо Протеус либо даташит(что вряд-ли).
Никто не встречался с данной проблемой
Как их заставить дружно работать?