Я действительно новичок в встроенном программировании, но мне была задана задача написать код C для программирования устройства, которое я могу отправлять командам (16-разрядные слова). В спецификации, которая была предоставлена мне, есть раздел с определенными «минимальными таймингами» устройства, например «Enable to First Clock Setup Time = 150ns». Существуют другие тайминги, такие как «Ширина часов = 50 нс» и т. Д.Как использовать минимальные тайминги при программировании устройства?
Устройство имеет три основных контакта: EN, CLK и DATA. Первоначально устройство отключено, и я подумываю использовать государственные машины для отправки команды, но я смущен о минимальных таймингах.
Так что мои вопросы:
-Как я включаю/компенсацию указанных минимальных таймингов, указанных на листе.
-Как смоделировать задержку в C?
Вы управляете всеми тремя контактами? У вас есть какой-то таймер в процессоре? Если у вас есть * no * timer, есть ли какие-либо инструкции, которые занимают точное количество тактовых циклов? Знаете ли вы время одного такта? –
Предполагая, что часы составляют приблизительно 10 МГц, я думаю, это означает, что каждый такт составляет около 100 нс. Я считаю, что у меня есть контроль над булавками (пока). –
Как вы заявляете, каждый такт составляет ~ 100 нс, а время, необходимое для программирования, меньше 100 нс. Поэтому вы, вероятно, можете игнорировать эти минимальные тайминги. Однако устройство, вероятно, имеет индикацию состояния, которая может быть прочитана из кода C. Поэтому прочитайте состояние, чтобы определить, готово ли устройство для следующей команды. – user3629249