Mega64 SPI режим Slave

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Нашел транзистор. Понюхал.
Сообщения: 167
Зарегистрирован: Вт июл 10, 2007 23:15:17
Откуда: Магнитогорск

Сообщение ipkin »

Привет всем.
решаю такую задачу.
имеется устройство с жки индикатором (сегментным) индикатор управляется контроллером LC75874 (даташит во вложении).
требуется снять данные приходящие на этот микроконтроллер.
Пакет данных состоит из 44 байт (т.е разбит на четыре 11-байтных подпакета).
вот таким образом:
A2 xx xx xx xx xx xx xx xx xx 00
A2 xx xx xx xx xx xx xx xx xx 01
A2 xx xx xx xx xx xx xx xx xx 02
A2 xx xx xx xx xx xx xx xx xx 03
где A2 это начало подпакетов а 00 01 02 03 это концы
написал прожку вроде всё работает но почемуто медленно(фузы стоят такие SUT0 и CKOPT)
в моём случае правильность пакета индицируется звуковым сигналом (бипчиком) так вот он пикает примерно раз в 2 секунды.
неужели 44 байта читаются и проверяются так долго
похоже косяк гдето в программе.
посмотрите пожалуйста не могу понять из-за этого весь проект встал
файл LC75874-2.rar переименовать в LC75874.r00
да вот ещё что
пробовал выводить прочитанный пакет на com порт компьютера в терминал всё ок но только всё равно эта задержка присутствует
Вложения
spi.rar
(600 байт) 169 скачиваний
shema.rar
(6.94 КБ) 158 скачиваний
lc75874-1.rar
(195.31 КБ) 158 скачиваний
lc75874-2.rar
(169.37 КБ) 185 скачиваний
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2512
Зарегистрирован: Пн апр 06, 2009 19:33:29
Откуда: Молдова, Кишинев

Сообщение BCluster »

честно гря нифига не понятно в вашем коде. Куча goto - это очень большое зло. Не надо так делать ) При возможности перепишите)

А может контроллер выдает пакет с такой задержкой?
Контактная информация:
Реклама
Нашел транзистор. Понюхал.
Сообщения: 167
Зарегистрирован: Вт июл 10, 2007 23:15:17
Откуда: Магнитогорск

Сообщение ipkin »

нет контроллер не даёт такую задержку.
это выносной дисплей от автомагнитолы
когда я кручу ручку громкости то каждый шаг валкодера изменяет показания на индикаторе.
т.е они могут меняться и один раз в сек и быстрее в зависимости с какой скоростью я вращаю ручку.
т.е задержка где то в проге но вот где понять не могу
Опытный кот
Аватара пользователя
Сообщения: 703
Зарегистрирован: Вс янв 18, 2009 21:12:49

Сообщение asteroid7 »

При передаче пакета нужно обязательно управлять ногой CE.
Удивлён, что без СЕ это как то работает :)


блин... опечатался... имел ввиду не CE, а SS
Последний раз редактировалось asteroid7 Вт июн 23, 2009 07:29:37, всего редактировалось 1 раз.
Реклама
Эиком - электронные компоненты и радиодетали
Нашел транзистор. Понюхал.
Сообщения: 167
Зарегистрирован: Вт июл 10, 2007 23:15:17
Откуда: Магнитогорск

Сообщение ipkin »

asteroid7 писал(а):При передаче пакета нужно обязательно управлять ногой CE.
Удивлён, что без СЕ это как то работает :)
данные идущие на LC75874 нужно принимать мегой
выв SS постоянно на земле(спи активирован)
а вот начало пакета я привязал от управления CE
но щас переписал прошку с использованием прерывания(внешнего)и всё заработало как надо
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2512
Зарегистрирован: Пн апр 06, 2009 19:33:29
Откуда: Молдова, Кишинев

Сообщение BCluster »

while (!(SPSR & 0x80)); - у вас тут ; в конце, зочем?
Контактная информация:
Реклама
Нашел транзистор. Понюхал.
Сообщения: 167
Зарегистрирован: Вт июл 10, 2007 23:15:17
Откуда: Магнитогорск

Сообщение ipkin »

BCluster писал(а):while (!(SPSR & 0x80)); - у вас тут ; в конце, зочем?
Вы про это:
data[0]=a;
for (i=1; i<44; i++) //читаем оставшиеся 43 байта
{
while (!(SPSR & 0x80));
data=SPDR; //и пишем их в буфер
}
Опытный кот
Аватара пользователя
Сообщения: 703
Зарегистрирован: Вс янв 18, 2009 21:12:49

Сообщение asteroid7 »

Только сейчас заметил ошибку в моём посте выше. Не СЕ, а SS ногой на меге нужно управлять для связи по SPI, иначе о синхронизации данных можно забыть.
Нашел транзистор. Понюхал.
Сообщения: 167
Зарегистрирован: Вт июл 10, 2007 23:15:17
Откуда: Магнитогорск

Сообщение ipkin »

asteroid7 писал(а):Только сейчас заметил ошибку в моём посте выше. Не СЕ, а SS ногой на меге нужно управлять для связи по SPI, иначе о синхронизации данных можно забыть.
в моём случае SPI должен быть влючен постоянно т.к при низком CE передаётся адрес а при высоком данные
Собутыльник Кота
Аватара пользователя
Сообщения: 2512
Зарегистрирован: Пн апр 06, 2009 19:33:29
Откуда: Молдова, Кишинев

Сообщение BCluster »

да я про это, но я уже понял что вы имели ввиду )
Контактная информация:
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»