Перейти к содержанию
    

Здравствуйте :)

 

 

 

Точно Spi переведён на приём? Copy-paste погубит мир :)

 

А вообще, для подобных работ осциллограф наипервейшее средство. Есть?

Осцилограф есть =) без него бы я вообще ничего не смог, на нем сигнал отправляемым мастером выглядит хорошо,вроде, такт тоже в норме

Копи пастом грешу конечно, но без него и того бы не было, а на прием переводится командой

 

SPI2->CR1 &= ~ SPI_CR1_BIDIOE; //BIDIOE прием

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Осцилограф есть =) без него бы я вообще ничего не смог, на нем сигнал отправляемым мастером выглядит хорошо,вроде, такт тоже в норме

Копи пастом грешу конечно, но без него и того бы не было, а на прием переводится командой

 

SPI2->CR1 &= ~ SPI_CR1_BIDIOE; //BIDIOE прием

 

Обратно от датчика что?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Обратно от датчика что?

ничего, насколько я могу судить, сигналы идут очень быстро и возможно накладываются, а может он просто молчит

в общем ничего интересного от датчика нет

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ничего, насколько я могу судить, сигналы идут очень быстро и возможно накладываются, а может он просто молчит

в общем ничего интересного от датчика нет

 

Зациклить обмен с датчиком.

Ждущая развертка, запуск от CS.

На каждый цикл обмена (CS 1-->0 и 1-->0) должно быть 16 синхроимпульсов SCK, на первые 8 - ваши данные (0x4F), на вторые 8 - ответ датчика.

 

Разворачивайте, смотрите.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Зациклить обмен с датчиком.

Ждущая развертка, запуск от CS.

На каждый цикл обмена (CS 1-->0 и 1-->0) должно быть 16 синхроимпульсов SCK, на первые 8 - ваши данные (0x4F), на вторые 8 - ответ датчика.

 

Разворачивайте, смотрите.

Посмотрел

for(uint32_t i=0; i<0x000000FF; i++);

//Прием данных.

изменил время задержки между приемом и передачей, и когда (CS 1-->0 и 1-->0) у меня там лежит 16 импульсов такта

 

но зато только сейчас заметил что в канале данных творится дурь, сейчас в пеинте написуюкакая

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Посмотрел

for(uint32_t i=0; i<0x000000FF; i++);

//Прием данных.

изменил время задержки между приемом и передачей, и когда (CS 1-->0 и 1-->0) у меня там лежит 16 импульсов такта

 

но зато только сейчас заметил что в канале данных творится дурь, сейчас в пеинте написуюкакая

 

Очень хорошо; что с данными?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Очень хорошо; что с данными?

 

картинка с плавным падением сигнала

 

 

Для проверки канала подал 10101010, вот что увидел осцилограф в канале данных(ровные кубики)

post-87107-1435131106_thumb.png

post-87107-1435131570_thumb.jpg

Изменено пользователем BooSooV

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

"…Мойша The Beatles напел…" :)

 

Синхроимпульсы как расположены?

0x4F, положим, видно. Плавный спад - разряд входной емкости. Ответ должен быть 0xBC.

 

10101010 - на фига? Датчик же висит на шине - хрень какая-нибудь загонтся в него…

 

Ё-моё! 0x4F! Маэстро, вы, не охренели? Запись в регистр для чтения?

Изменено пользователем Obam

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

"…Мойша The Beatles напел…" :)

 

Синхроимпульсы как расположены?

0x4F, положим, видно. Плавный спад - разряд входной емкости. Ответ должен быть 0xBC.

 

10101010 - на фига? Датчик же висит на шине - хрень какая-нибудь загонтся в него…

 

Ё-моё! 0x4F! Маэстро, вы, не охренели? Запись в регистр для чтения?

Вот так расположены синхроимпульсы

 

 

но но уважаемый =)) никакой записи и в помин нет, если я не ошибаюсь

даташит http://www.farnell.com/datasheets/1836732.pdf (стр 16) гласит:

SPI read

The SPI read command is performed with 16 clock pulses:

bit 0: READ bit. The value is 1.

bit 1: MS bit. When 0, do not increment the address, when 1, increment the address in

multiple readings.

bit 2-7: address AD(5:0). This is the address field of the indexed register.

bit 8-15: data DO(7:0) (read mode). This is the data that is read from the device (MSB first).

Multiple read command is also available in 3-wires mode.

 

блин вижу свой косяк

post-87107-1435132909_thumb.png

Изменено пользователем BooSooV

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

но но уважаемый =)) никакой записи и в помин нет, если я не ошибаюсь

Да ну?

 

 

0x4F как на картиночке будет расположено?

Тут старая сказка "про белого бычка": бит 0 в байте данных и бит 0 при его передаче. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

надо писать 8F == 10001111

1 = читаю

0 = без сдвига

001111 = откуда читаю

Спасибо за указание на ошибку, я один нолик пропустил

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кроме того, если нет записи, по-вашему, 11110010b (0x4F наоборот) по какому адресу читался ID датчика?

 

надо писать 8F == 10001111

 

Что датчик отвечает? Осцилл. старый? Почему сигналограммы в paint?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кроме того, если нет записи, по-вашему, 11110010b (0x4F наоборот) по какому адресу читался ID датчика?

 

 

 

Что датчик отвечает? Осцилл. старый? Почему сигналограммы в paint?

не долгой была моя радость, датчик отвечает FF

Осцилограмма в пеинте потому что способа проще я не нашел, у меня простой осцилограф, старого типа, никакого вывода на комп нету, и вот что он нам показал:

post-87107-1435134304_thumb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И из DR читается 0xFF?

Повторяемость результата есть?

 

не долгой была моя радость, датчик отвечает FF

 

Не нравится мне плавный спад: синхроимпульсы в это время есть?

Кстати, фронты синхроимпульсов правильно выбраны?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И из DR читается 0xFF?

Повторяемость результата есть?

что за DR?

я ведь должен прислать датчику такое чтобы считать? 10111100 (BC) ?

повторяемость 100% с этим все стабильно))

 

 

Синхроимпульсы есть? а как проверить правильно ли выбраны их фронты?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...