Микроконверторы фирмы Analog Devices в микропроцессорных приборных комплексах. Виноградов А.Б - 224 стр.

UptoLike

224
В качестве линии /SS интерфейса ведущего SPI можно использовать лю-
бую линию вывода МК ADuC824. В данном примере программа использует ли-
нию P3.4. Нумерация выводов DataFlash указана для исполнения в корпусе 8-
SOIC, а в скобкахдля корпуса 28-SOIC.
Программа spi_df.asm устанавливает значение ADRF_L_R равным 0, а
значения ADRF_M_R и ADRF_H_R позволяет пользователю выбрать самостоя-
тельно путем нажатий на кнопку «0» в пределах адресного пространства
AD45DB041, но не подряд, а с некоторым фиксированным шагом (в программе
он равен 32). Получившийся абсолютный адрес в десятичном представлении
индицируется в верхней строке ЖКИ. Программа также позволяет пользовате-
лю выбрать значение байта данных для записи в DataFlash путем нажатий на
кнопку «1». ASCII-код последнего выбранного байта индицируется в нижней
строке ЖКИ по адресу 64 ОЗУ ЖКИ. Перебор возможных значений байта дан-
ных производится кнопкой «1» по кольцу в некоторой (заданной программно)
области значений. При нажатии на кнопку «2» производится запись выбранного
значения байта данных в DataFlash. По окончании записи ASCII-код записанно-
го байта отображается в нижней строке ЖКИ по адресу 70, однако об успешно-
сти записи программа самостоятельно судить не может, так как по определе-
нию интерфейса SPI в нем отсутствуют какие-либо аппаратные средства диаг-
ностики ошибки ведомого устройства.
Об успешности записи может судить сам пользователь. При нажатии на
кнопку «3» производится чтение байта данных из DataFlash по текущему адре-
су. ASCII-код прочитанного байта отображается в нижней строке ЖКИ по ад-
ресу 72. При правильно собранной схеме, исправных микросхемах ADuC824 и
DataFlash и корректном питании записанные и прочитанные данные должны
быть одинаковыми. Таким образом, варьируя адреса и данные записи, пользо-
ватель может наглядно убедиться в работоспособности предложенного про-
граммного модуля.
Аппаратную поддержку интерфейса SPI ADuC824 в программе использу-
ет подпрограмма Pod_TX_BYTE. Она осуществляет запись в ведомое устройст-
во SPI одного байта данных из аккумулятора с одновременным чтением из ве-
домого устройства одного байта данных, который затем помещает в аккумуля-
тор. Подпрограмма возвращает управление по окончании передачи. Прерыва-
ния по окончании передачи по SPI здесь не используются (запрещены), так как
в данном конкретном примере они не дают большого выигрыша в быстродей-
ствии. Так, при максимальной частоте ядра и максимальной скорости передачи
по шине SPI (Fcore/2=6,28 МГц) суммарное время перехода к обработке преры-
вания по окончании передачи по SPI и возврата из него в основную программу
(с учетом необходимости сохранения и восстановления контекста) будет сопос-
тавимо с временем простого ожидания окончания передачи по SPI в основной
программе.