Odkryłem problem podczas używania urządzenia peryferyjnego SPI w trybie slave na Atmel SAM4S. Czasami słowa mogą zostać nieco przesunięte. Mogę wymusić ten stan, włączając w urządzeniu peryferyjnym określoną liczbę zegarów po uaktywnieniu NSS
. Robię to, czekając na NSSR, a następnie używając pętli opóźnienia, aby poczekać określony czas, zanim włączę urządzenie peryferyjne. Potwierdziłem w zakresie, że gdy urządzenie peryferyjne jest włączone n
zegary po włączeniu NSS
, słowa są przesuwane o n
bitów.
Gdy urządzenie peryferyjne przejdzie w ten stan, jedynym sposobem przywrócenia jest wykonanie resetowania (tj. ustawienie SWRST
w rejestrze sterującym). Wyłączenie i ponowne włączenie nie wystarcza.
Ten problem zaobserwowano również w MPU SAM9G45.