Вы находитесь на странице: 1из 2

Завершающая буква "#" в названиях WP# и HOLD# указывает на то, что они являются сигналами с

активным низким уровнем - их функции активируются, когда они переходят на низкий уровень. Они
оба неактивны, когда находятся под воздействием высоких сил, и это подтверждается их
описаниями:
Пока сигнал HOLD# низкий, память остается в состоянии Hold. Чтобы возобновить связь с устройством,
HOLD# должен быть установлен на высокий уровень…
и

Когда WP# имеет высокий уровень, функция блокировки бита BPL отключена.
Поднимите оба сигнала на высокий уровень с помощью резисторов сопротивлением 1 кОм (или
любого другого доступного значения). 10 кОм — это немного больше, чем мне хотелось бы.

Вы также можете привязать сигналы непосредственно к VCC, но использование подтягивающих


резисторов позволяет при необходимости снизить уровень сигналов позже.

0
У меня есть флэш-память Macronix MX35LF1GE4AB NAND, и я хочу прочитать ее содержимое с помощью
Rarpberry Pi.
Но у меня возникли проблемы с подключением контакта HOLD. Должен ли я заземлить это? Я хочу, чтобы
он читал из него данные.
HOLD# имеет активный низкий уровень. Если вы установите низкий уровень, чип перейдет в режим
удержания, что позволит ему игнорировать интерфейс связи. Поэтому, если вы хотите связаться с
чипом, не устанавливайте его на низкое значение.

4
В SPI у меня есть несколько вопросов...
Я понимаю, как синхронизируются биты, но как разделяются байты?

Требуется ли вывод выбора подчиненного устройства только для включения высокого импеданса вывода
данных? Или это также необходимо для разделения байтов/слов?

Кроме того: из того, что я прочитал ( описание PIC16f74 ) , у меня сложилось впечатление , что SPI может
быть 3-проводным, и есть режимы адресации, которые меня так смущают, что я думаю, что сделаю вид, что
не читал на данный момент!
Я просто подключаю PIC16F к 8-битной флэш-памяти Atmel AT45DB011D , поэтому больше ничего по
линиям SPI. У него также есть многобайтовые команды, так как же он их разграничивает?
SPI и использование флэш-чипа для меня совершенно новы, любое краткое руководство было бы здорово!
ответ
Отсортировано по:
? ???? ?? ?? ???? (?? ????????? )
7
В SPI нет концепции «разграничения» байтов. Тот простой факт, что 8 бит были переданы, составляют байт,
а девятый бит будет первым битом следующего байта.

В SPI прием начинается, когда линия выбора чипа опускается (или поднимается для некоторых
чипов). Затем данные синхронизируются по одному биту в сдвиговый регистр. По мере поступления
каждого бита сдвиговый регистр перемещает все биты на один ниже.

Чип SPI обычно имеет фиксированный размер сдвигового регистра и не ограничен размерами
байтов. Некоторые имеют кратность 8 бит, и это хорошо, некоторые — 10 бит, некоторые — 17 бит и т. д.
Если вы тактируете больше, чем необходимое количество бит, первые биты выпадают из конца сдвигового
регистра и теряются, поэтому, если у вас есть 10-битный сдвиговый регистр, и вы можете отправлять только
кратные 8 битам (что общий для чипов PIC), то если вы отправите первый байт как 6 бит 0, за которым
следуют 2 бита данных, а затем второй байт из 8 бит данных, первые 6 бит будут отброшены по мере того,
как они отпадают в конце, и сдвиговый регистр будет содержать только последние 10 бит.

Режимы адресации по сути берут несколько дополнительных битов из потока данных SPI и сравнивают их с
набором выводов, привязанных к высокому или низкому уровню чипа. Если они совпадают, следует
действовать с данными в сдвиговом регистре. Если они этого не делают, то от него следует отказаться.

Ряд микросхем SPI имеют функцию сквозной передачи, с помощью которой вы можете объединить их
вместе, и по мере того, как данные синхронизируются с первым чипом, то, что находится в конце его
сдвигового регистра и обычно отбрасывается, отправляется на выходной контакт. Затем они могут
поступить на вход следующего чипа, передавая данные по линии от чипа к чипу. В этом случае очень важно
убедиться, что ваши данные упакованы в один поток без битов, которые вы обычно отбрасываете (это
может быть сложно, если чипы не используют бит, кратный 8).

Количество «проводов» в SPI в лучшем случае вводит в заблуждение, поскольку на самом деле оно не
говорит вам, сколько реальных проводов необходимо.

Обычно у вас есть:

 Часы
 Выбор чипа
 Данные вввод
 Данные Вывод

 Clock
 Chip Select
 Data in
 Data out

 Некоторые чипы могут не иметь выхода для данных, и они только принимают данные в
себя. Некоторые объединяют вход и выход вместе, поэтому вам придется как-то разделить их — либо
программно, если можете, либо аппаратно.

Если у вас есть как входящие, так и исходящие данные, то SPI может работать в полнодуплексном режиме
(но не всегда), где при синхронизации данных в сдвиговом регистре данные также синхронизируются для
чтения. Это не часто используется, поскольку большинство систем полагаются на отправку команды до
того, как может произойти ответ. Иногда существует еще одна линия, сигнализирующая о завершении
отправки данных на устройство SPI и о необходимости отправки ответа. Однако чаще всего это происходит,
когда получено определенное количество битов или определенная комбинация битов. Обычно начало
передачи дополняется 0, а затем сигнализирует устройству о начале приема стартовым битом.
Есть много способов сделать это, и никто, кажется, никогда не делает то же самое, что и кто-либо другой, а
иногда даже и он сам.

SPI определяет, как данные передаются, а не как они формируются

Вам также может понравиться