RadiatoR 2 27 мая, 2016 Опубликовано 27 мая, 2016 (изменено) · Жалоба Всем доброго дня. Пытаюсь завести вышеуказанный датчик по SPI. Все настроил, читаю WHO_AM_I и другие регистры по дефолту с числом - читаются нормально. Пытаюсь сделать запись в регистр (например CTRL1_XL 0x10) число 0x40 - не выходит. Как определяю - осциллограмма правильная, а после этого читаю регистр, а там видит 0xFF. Когда тыкаю осцилл на MISO сразу начинает видеть 0. Такое ощущение, что на ноге есть маленький "+", а осцилл его на "-" утягивает. Но дело точно не в нем. Осциллограмма MOSI + clk, на MISO в той же области все как и должно быть - "-" по всей длине клока. Глаз замылился уже, хотя вроде просто до нельзя, более того раньше заводил всякие разные аксели, правда на I2C сидели. Подкиньте свежую идею что не так. Спасибо. PS после попытки записи в регистр перестают читаться и другие регистры. Видимо толи запись идет не туда, куда нужно, толи еще что-то PS2 при перезагрузке проце без записи в регистры, просто читать то, что было загружено (как я думла с ошибкой) начинает видеть. То есть запись проходит, но что-то где-то каверкается в SPI? Или видимо в самом датчике, т.к. я осциллом смотрел там были нули. Изменено 28 мая, 2016 пользователем ЯadiatoR Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MegaVolt 25 27 мая, 2016 Опубликовано 27 мая, 2016 · Жалоба Как определяю - осциллограмма правильная, а после этого читаю регистр, а там видит 0xFF.По правильному ли фронту защёлкиваются данные из датчика? Судя по осцилограмам звон стоит хороший и не исключено что по неправильонму франту можно защёлкивать этот самый звон как 1. А осциллограф добавляет небольшую ёмкость которая делает эти выбросы меньше порога срабатывания. А может фронт и правильный просто наводки например от клока пролазят на выходную линию. Ещё идеи. Нету ли какого то обмена по этим же шинам во время того как CS не активен? Может он этот обмен воспринимает как I2C обмен и куда то там сваливается? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RadiatoR 2 28 мая, 2016 Опубликовано 28 мая, 2016 · Жалоба Прблема была следующая - код записи в регистр выглядел так: void SPIWrite(byte reg, byte data) { while(!(SPI2->SR&SPI_SR_TXE)); CS_EN; SPI2->DR=(data<<8)|(reg&0x7F); while(SPI2->SR&SPI_SR_BSY); CS_DIS; } а чтения так: byte SPIRead(byte reg) { CS_EN; SPI2->DR=reg|0x80; while(!(SPI2->SR&SPI_SR_RXNE)); CS_DIS; return SPI2->DR>>8; } После записи в регистре DR оставалось 2 байта. и при следующем чтении CS устанавливался и сразу сбрасывался при входе в while. Я добавл в ф-ю записи в конце команду ushort temp=SPI2->DR; и сбрасывал принятые байты таким образом. После этого заработало Жалко одно - ST никак не хочет сделать хардварным CS. Хотя бы 1 канал. Программное ногодрыганье дико не нравится, да и работает не правильно. Если бы было хотя бы прерывание по BSY, но и его нет. Вот и приходится городить всякие while(SPI2->SR&SPI_SR_BSY); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
batson 0 11 июня, 2016 Опубликовано 11 июня, 2016 · Жалоба с чем-то похожим вот тут намучался http://electronix.ru/forum/index.php?showtopic=105804 о смотрю у тебя осциллограф pv6502 или pv6503, тоже думаю купить, есть несколько вопросов: 1. какое входное напрядение он способен измерять без делителя? 2. есть ли гальваническая изоляция между минусом щупа и usb? 3. какое общее впечатление от совта Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RadiatoR 2 11 июня, 2016 Опубликовано 11 июня, 2016 · Жалоба У меня pv6503а. Все характеристики есть тут http://www.pv65.ru/ 1. По ссылке выше есть пара упоминаний про 150В. Это как я понял с делителем на 10. То есть максимум 15В. Я выше 12-13 не пробовал подавать и при измерении 8В+ уже использую делитель на всякий пожарный. 2. Гальваника полная. 3. Софт простой и удобный. Не требует мощного компа. Короч на планшете с win7 идет легко. Интиутивно понятный. Много приятных фич как с различными уровнями срабатываний так и с триггерами + есть гена. В общем впечатления очень приятные. За ~5 лет работы с ним у меня только однажды появилась проблема - он здох. Вручную отремонтить мог, но изготовитель не дал исходников прошивки контроллера (мне казалось он полетел). В итоге отнесли на митинку и там сразу заменили на рабочий. Без вопросов и доков, просто обменяли. В общем своих денег стоит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться