Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:1
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:5
Форум » starterkit.ru » Отладочные платы » SK-AT91SAM9260-SIMXXX
Проблема с потерей последнего бита при чтении по SPI на AT91SAM9260
Lampus
Добавлено 05.12.2011 19:17
0
Сообщение: 1
Lampus
5

Пункты: 3552
Регистрация: 26.04.2011
Приветствую.
Столкнулся со следующей проблемой: имеется ведомое SPI устройство, работающее в SPI Mode 3 (CPOL=1, CPHA=1). Особенность данного устройство в том, что оно выдаёт последний бит на MISO укороченный, то есть после нарастающего фронта (из 0 в 1) SCK примерно через 250-350 нс данные исчезают. Но, по идее, этого должно быть более чем достаточно, чтобы захватить бит. Если я всё правильно понимаю, то данные на MOSI и MISO должны захватываться по одному фронту тактирующего сигнала: http://upload.wikimedia.org/wikipedia/commons/6/6b/SPI_timing_diagram2.svg
Не похоже, что проблема софтовая, ибо вместо atmel_spi заводил bitbang-драйвер. Эффект тот же самый - теряется последний бит в зависимости от фазы луны, раз на раз не приходится.
Спуститься к концу Подняться к началу
Персональная информация
Lampus
Добавлено 06.12.2011 12:43 Редактировалось 06.12.2011 12:48 Сообщение: 2
Lampus
5

Пункты: 3552
Регистрация: 26.04.2011
Добавлю парочку осциллограм для пояснения.
Итак, на осциллограммах видны следующие кривые:
зелёный (4) - MISO;
пурпурный (3) - SCK;
синий (2) - MOSI;
1. http://img-fotki.yandex.ru/get/5823/34036614.0/0_795f0_cf1cca27_L.jpg
2. http://img-fotki.yandex.ru/get/4423/34036614.0/0_795f1_fc8f4317_L.jpg
На первом графике показано чтение байта 0x55, обратите внимание на продолжительность последего бита.
На втором графике этот самый последний бит.
Интервал между rising edge SCK и falling edge MISO около 300 нс, чего должно быть более чем достаточно, но бит почему то не захватывается.

P.S. почему не получается прикрепить файлы или вставить лин на внешнее изображение?
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 06.12.2011 13:11 Редактировалось 06.12.2011 13:16 Сообщение: 3
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
P.S. почему не получается прикрепить файлы или вставить лин на внешнее изображение?

чуть не в тему - а вот так:
title
и вот так
title

при написание сообщения для вставки картинки с внешнего ресурса нажимаем самую правую пиктограмму, в тело сообщения попадает конструкция тега:
{img=center alt=title}{/img}
где вместо фигурных скобок квадратные. между }{ вставляем полный url для картинки и все должно отобразится (для радикал.ру это первая строка)

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Jerry123
Добавлено 06.12.2011 13:19 Сообщение: 4
Jerry123
0

Пункты: 889
Регистрация: 03.09.2010
эм какбы а что за устройство такое интерресное с укороченным битом? это вообсчето вроде неправильно по протаколу SPI. Чип селект как выглядит? может быть он поднимается слишком рано поэтому устройство и перестает выдавать данные. Так визуально все ок, может контроллер SPI работает не так как хочется, а так как запрограммирован :) ну тобишь конфигурация у него неправильная.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 06.12.2011 13:23 Сообщение: 5
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
эм какбы а что за устройство такое интерресное с укороченным битом?

в такой роли может выступить например ФПГА с кривой реализацией SPI..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Lampus
Добавлено 06.12.2011 13:31 Сообщение: 6
Lampus
5

Пункты: 3552
Регистрация: 26.04.2011
Цитата
эм какбы а что за устройство такое интерресное с укороченным битом?

Это SPI-to-I2C мост NXP SC18IS600. Нужен он, потому что требуется гальваническая развязка, а SPI развязать явно проще. Железка вообще весьма бажная.
Цитата
Чип селект как выглядит? может быть он поднимается слишком рано поэтому устройство и перестает выдавать данные
Хорошо выглядит, поднимается через несколько микросекунд (~5 us). Я даже в spi_transfer.delay_usecs задержку дополнительную ставил.
Цитата
ну тобишь конфигурация у него неправильная.

С софтовым SPI на тех же пинах абсолютно тот же эффект.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 06.12.2011 13:40 Сообщение: 7
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Это SPI-to-I2C мост NXP SC18IS600. Нужен он, потому что требуется гальваническая развязка, а SPI развязать явно проще.

а не проще поставить I2C гальваноразвязку? или мост требуется позарез?

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Jerry123
Добавлено 06.12.2011 13:42 Сообщение: 8
Jerry123
0

Пункты: 889
Регистрация: 03.09.2010
подтяжки на линиях есть(внешние или внутренние, выход может быть ОС)? иногда бывает тыкаешься осциллографом и этого уже бывает достаточно чтоб все стало ок. Сними осциллограмму именно той пачки где бит потерялся.
Спуститься к концу Подняться к началу
Персональная информация
Jerry123
Добавлено 06.12.2011 13:44 Сообщение: 9
Jerry123
0

Пункты: 889
Регистрация: 03.09.2010
Цитата
а не проще поставить I2C гальваноразвязку? или мост требуется позарез?

ну попробуй заизолируй, была анналогичная задача с развязкой I2C. какой есть пример гальвано развязки?
Спуститься к концу Подняться к началу
Персональная информация
Lampus
Добавлено 06.12.2011 13:45 Сообщение: 10
Lampus
5

Пункты: 3552
Регистрация: 26.04.2011
Мост всё рано уже поставили, и переделывать плату желания не много. К тому же драйвер для AT91 TWI помечен как BROKEN, и очень настоятельно рекомендуется использовать битбанговую софтовую реализацию.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Отладочные платы » SK-AT91SAM9260-SIMXXX