Страница 1 из 1
Несовместимость режимов SPI
Добавлено: Вс окт 15, 2017 10:57:09
Specelectrokaz
Привет народ! Пытаюсь подключить к микроконтроллеру меге8 или меге328P, внешний сигма-дельта АЦП от аналог-девайс AD7799 и макс7221, потом ещё хочу добавить туда nrf24l01+. У всех у них есть SPI, но гвоздь в том что, АЦП работает в режиме "3", а макс7221 и радиомодуль в режиме "0". Если я на меге выставлю режим "3" (так как значение АЦП в преоритете!))) ), то будет ли это всё правильно работать?Ведь макс7221 и радиомодуль работают в режиме "0", понимаю что в даташите написано так мол и так и никак больше)), но в чудо верить хочеться. Или как вариант: как только я собираться буду поработать с одной из микросхем то каждый раз переключать режим SPI, но на эти переключения тоже уходит время работы микроконтроллера,делаю весы с семисегментным индикатором на тензодатчиках.
З.Ы.: купить другие сигма дельта АЦП, радимодули и светодиодные драйверы работающие "на одной волне" тяжеловато, так как ждать придётся ещё месяц, с этими вещами где я живу вообще туго.
Re: Несовместимость режимов SPI
Добавлено: Вс окт 15, 2017 14:36:13
AlanDrakes
Ещё раз перечитал мануал на AD7798/99. Там нет указания работы в режиме 3.
Есть несколько раз сноска на то, что пин /CS может быть подтянут к земле и таким образом можно работать в трёх-проводном режиме.
Судя по моим исходникам проекта, задействующего этот АЦП, последний прекрасно уживается на режиме 0.
Так что, используйте 0-й режим. Проблем с ним не было.
Re: Несовместимость режимов SPI
Добавлено: Вс окт 15, 2017 14:45:19
musor
а зачем весам такой ацп? чем не угодил HX710(711) народный да и дисплем лучше рулит чтото вроде tm1640
Re: Несовместимость режимов SPI
Добавлено: Вс окт 15, 2017 15:54:09
akl
[uquote="AlanDrakes",url="/forum/viewtopic.php?p=3207370#p3207370"]Есть несколько раз сноска на то, что пин /CS может быть подтянут к земле и таким образом можно работать в трёх-проводном режиме...[/uquote]Как раз /CS и может быть разделителем при работе с таким бутербродом SPI. Сам активно использую AD7799+MAX31855, разделяя потоки именно /CS. Правда, SPI у меня программный.
Re: Несовместимость режимов SPI
Добавлено: Вс окт 15, 2017 16:08:12
Specelectrokaz
там картинка есть в даташите на 7 стр. ад7799 как данные передаются, так вот там sclk на высоком уровне, а в макс7221 и радиомодуле на низком уровне, вот это меня и смущает, но в любом случае буду пробовать.
Добавлено after 5 minutes 40 seconds:
весам планирую в дальнейшем придать сертификат поэтому и решил сразу взять ад7799, а так на столе лежит hx711, да что-то hx711 мне не очень нравиться в коде делаю четыре замера потом вывожу среднее и на семисегментик его, значение ацп сильно прыгает, ещё обнулял четыре младших разряда(получилось 20-разрядное значение) и всё равно прыгает, но над этим ещё подумаю.
Re: Несовместимость режимов SPI
Добавлено: Вс окт 15, 2017 16:26:46
musor
90% китайвесов имеющих сертификаты имеют чипы на HX710 \711\712 в преобразователе с тензы и автобаланс нулей чисто за счет чипа
эти чипы кроме всего ещеи питание мерят и выводят на шину что удобно для питания от АКБ
единственое но везде стоят МК семейства 51
Re: Несовместимость режимов SPI
Добавлено: Вс окт 15, 2017 17:31:15
akl
AD7799 все это умеет. Прекрасно управляется любым контроллером и ПЛК.
Re: Несовместимость режимов SPI
Добавлено: Пн окт 16, 2017 12:07:45
Ivanoff-iv
невзлетит на "0" добавь инвертор...
Re: Несовместимость режимов SPI
Добавлено: Пн окт 16, 2017 16:40:51
AlanDrakes
[uquote="Specelectrokaz",url="/forum/viewtopic.php?p=3207454#p3207454"]значение ацп сильно прыгает, ещё обнулял четыре младших разряда(получилось 20-разрядное значение) и всё равно прыгает, но над этим ещё подумаю.[/uquote]
Делайте или на скользящем среднем, или используйте другие методы фильтрации.
У меня с этим АЦП идёт банальное среднее.
Массив из 8 измерений, перезаполняется циклически. Все значения суммируются в большую переменную, затем сдвигается на 3 бита вправо (делим на 8, раз уж АЦП настроен на линейную шкалу без знака). Итоговое значение - результат измерения. Достаточно стабильно получается 4 знака после запятой (измеряю напряжение до 16V, результирующих бит получается 20-21 без особых биений).
[uquote="akl",url="/forum/viewtopic.php?p=3207443#p3207443"Как раз /CS и может быть разделителем при работе с таким бутербродом SPI. Сам активно использую AD7799+MAX31855, разделяя потоки именно /CS. Правда, SPI у меня программный.[/uquote]
Так больше-то разделять и нечем, кроме /CS.
Собственно, аналогичным образом на SPI шине висят несколько устройств, используя программный выбор ведомого устройства. А сам SPI - аппаратный.
Второй софтовый пришлось готодить из-за дисплея (тот самый Nokia 1110i с его 9-ю битами).