ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
2 июля
179127
Ксения (21.01.2010 17:46 - 17:57, просмотров: 42455)
Про SPI Хотелось бы выяснить (а точнее утвердится в своих предположениях) по поводу возможных последствий из-за пропусков сигнала стробирования CLOCK. Предположим, что один импульс CLOCK по какий-то причине "потерялся" и не был принят (т.е. распознан приемником). То что тогда? Возникнет смещение на один бит во всех последуюших данных или есть какая-то возможность ограничить распростанение ошибки вперед, снова вернувшись к правильной синхронизации? И что надо сделать, чтобы начала передаваемых и принимаемых байтов снова синхронизовались? Отдельно хотела бы поставить вопрос о связи МК с АЦП через SPI. Тут обычно присутствует возможность принудительной синхронизации через чип-селект (CS). Даже после кратковременного отключения и повторного включения CS, АЦП начинает воспринимать поступающие в него биты с начала байта. Т.е. если даже я недокормила ему весь байт целиком, а только передала его часть, то после дрыганья чип-селектом он снова вернется к приему первого бита первого байта посылки управляющего слова. Поэтому дрыгая чип-селектом (а лучше, отключая его после каждого опроса) я не рискую испортить все данные из-за возможного сбоя. При таком сбое будет испорчена всего лишь одна точка, та, на которую пришелся сбой, но дальнейшие точки будут запрошены и прочитаны правильно. Но как быть, когда чип-селектом дрыгать нельзя? Т.е. когда он либо вообще отсутствует у АЦП, либо у меня нет возможности им управлять (приходится заземлить) из-за того, что гальванический изолятор (ADuM) имеет всего 4 канала, уже занятых под CLOCK, DI, DO и DREADY? Произойдет ли сихронизация (забывание ранее принятых битов) автоматически, когда будет готова следующая точка (выставлен DREADY) или этого не случится. АЦП у меня ADS1255, но примерно такая же история и с большинством остальных.