Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: PIC18F4520 - низкочастотный SPI... У меня одного такая проблема ?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > PIC
azidos
Товарищи, может быть кто нибудь сталкивался с подобной проблемой...

Процессор: PIC18F4520

Задача: передача от 1-го до 4-х байт подчиненному устройству (АЦП) по SPI-шине с
использованием аппаратного SPI. Частота шины - 12,5кГц (источник clock-ов для SPI модуля Timer2/2).
Конфигурация модуля: CKP (Clock polarity) = 1, CKE (Clock Select) = 0. Низкая частота шины
обусловлена необходимостью обеспечить повышенную помехоустойчивость, для чего все SPI-линии
фильтруются однокаскадным RC-фильтрами (ограничение фронта до 10мкс). Частота процессора - 8МГц (1
машинный цикл = 0,5мкс)

Проблема: Передача с 1-го по 7-й бит происходит безукорозненно. А вот с передачей 8-го бита не всё
так однозначно. Фронт 8-го клока, теоретически должен появлятся в середине импульса данных (тоже
8-го smile.gif) ), однако после того, как фронт 8-го клока был выдан на линию, через время Т=0,5мкс (один
цикл процессора), линия данных переводиться (!) в состояние лог. "1" - независимо от того, какой бит
мы передавали последним (1 или 0). Поскольку время "жизни" импульса данных, после фронта клока
составляет всего 0.5мкс, а сам фронт клока (и данных тоже) составляет 10мкс - то и получается, что
последний бит не может грамотно защёлкнуться в подчинённом устройстве. ВОПРОС: КАК ПРИ ИСПОЛЬЗОВАНИИ
АППАРТНОГО SPI, ОБЕСПЕЧИТЬ ДЛИТЕЛЬНОСТЬ 8-ГО ИМПУЛЬСА ДАННЫХ, РАВНУЮ ДЛИТЕЛЬНОСТИ ПЕРИОДА ТАКТОВОГО
СИГНАЛА (в моём случае 1/12,5кГц = 80мкс). Поскольку в настоящее время, длительность 8-бита данных,
составляет всего 0,5*(период тактового сигнала)+1 машинный цикл = 0,5*80мкс+0,5мкс=40,5мкс
Don2
[quote name='azidos' date='Feb 12 2007, 13:55' post='209705']
Товарищи, может быть кто нибудь сталкивался с подобной проблемой...

Процессор: PIC18F4520

Задача: передача от 1-го до 4-х байт подчиненному устройству (АЦП) по SPI-шине с
использованием аппаратного SPI. Частота шины - 12,5кГц (источник clock-ов для SPI модуля Timer2/2).
Конфигурация модуля: CKP (Clock polarity) = 1, CKE (Clock Select) = 0.
ВОПРОС: КАК ПРИ ИСПОЛЬЗОВАНИИ
АППАРТНОГО SPI, ОБЕСПЕЧИТЬ ДЛИТЕЛЬНОСТЬ 8-ГО ИМПУЛЬСА ДАННЫХ, РАВНУЮ ДЛИТЕЛЬНОСТИ ПЕРИОДА ТАКТОВОГО
СИГНАЛА



Попробуйте CKP=0, CKE=1.
Павел Недригайлов
Спасибо! Вы и мне очень помогли =) Не знаю, сколько бы я парился.
А чем вызвана та особенность с преждевременным сбрасыванием spi?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.