AU08 (28.08.2016 22:12 - 22:18, просмотров: 3527)
Интересно, почему происходит "Фигвам", а не инвертирование SCK для SPI.C в ATXMEGA256A3U? Где искать? Для линии данных всё прекрасно, порт штатно настраивается на аппаратную инверсию.
PORTC.OUT = 0;
PORTC.PIN5CTRL = PORT_INVEN_bm|PORT_OPC_TOTEM_gc;//и инверсия
Для SCK, казалось, что тоже будет всё просто:
PORTC.PIN7CTRL = PORT_INVEN_bm|PORT_OPC_TOTEM_gc;//и инверсия
PORTC.OUTСLR = (1<<7); // set to low bit 7 т.к. на порту инверсия
А вот и нет. После замены 74HC1G14 на 74LVC1G17 и программной настройки порта на инверсию в статике всё прекрасно, логические уровни как положено, следовательно настройки порта влияют.
В "динамике" же связь по SPI работать перестаёт:
// настроить SPIC
SPIC.CTRL=SPI_ENABLE_bm|SPI_MASTER_bm|SPI_MODE_0_gc|divider; // частота 250 кГц
devnull=SPIC.DATA;
SPIC.DATA = (cmd_word>>8); // записать первый байт
while(!(SPIC.STATUS&SPI_IF_bm));// подождать окончания передачи
SPIC.DATA = (cmd_word&0xFF); // записать второй байт
while(!(SPIC.STATUS&SPI_IF_bm));// подождать окончания передачи
SPIC.CTRL=0;
Что такое асимметричный ответ?
Это когда о тебе негативно отзываются в комментарии, а ты об авторе этого комментария пишешь хорошо и по-доброму: в некрологе!