Halfback
Участник-
Posts
425 -
Joined
-
Last visited
Everything posted by Halfback
-
Всем доброго дня. Тоже развлекаюсь с E77 на 868 МГц Пока есть хотелка увеличить дальность, путем сужения BW полосы чирпа. В библиотеке почему-то гвоздями прибиты только 125 250 и 500КГц. Никто не знает почему так? Если либу сильно не ковырять то можно повысить дальность выкрутив в минимум spreading factor (преамбулу = 12 либа сама выставит). Есть еще способ увеличить дальность?
-
Не получается нормально прочитать регистры АЦП AD7792
Halfback replied to Halfback's topic in Операционные усилители и АЦП
Вот так спасибо. Привел CPHA (2 EDGE) и CPOL (High) в соответствие и всё заработало как надо. Ура! -
Не получается нормально прочитать регистры АЦП AD7792
Halfback replied to Halfback's topic in Операционные усилители и АЦП
AD779X_Reset(); -> это выплевывание из МК в АЦП 4 раза 0xFF AD779X_HWDetect(); -> это выплевывание из МК в АЦП 0x60 и потом 0x00, где АЦП должен выплюнуть байт с идентификатором. -
Не получается нормально прочитать регистры АЦП AD7792
Halfback replied to Halfback's topic in Операционные усилители и АЦП
Хорошо. ВОт осциллограммы SPI Соответствуют коду rrr=AD779X_HWDetect(); rrr=AD779X_HWDetect(); Другими словами первая строчка работает, ответ есть. Вторая не работает, ответ всегда 0. Вот это осциллорамма SCK и SDO Вот это осциллорамма SCK и CS Вот это более подробная осциллорамма SCK и SDO когда данные с АЦП выплевываются. ВОт осциллограммы SPI Соответствуют коду rrr=AD779X_HWDetect(); AD779X_Reset(); rrr=AD779X_HWDetect(); Первая и третья строчка работает если между ними ставить сброс. Осциллорамма SCK и SDO Осциллорамма SCK и CS -
Не получается нормально прочитать регистры АЦП AD7792
Halfback replied to Halfback's topic in Операционные усилители и АЦП
Изначально либу на гитхабе писал не индус, я её во многом переработал. Если топик надо перенести в другое место - я не против. Просто в этом же разделе было обсуждение АЦП 7792 но на дркгкю тему, вот и решил разместить тут же. -
Всем доброго времени суток! Ситуация такая: подаю питание на АЦП, выдаю софтовый сброс с чипселектом 32 единицы, читаю ID - всё нормально, возвращает 0x4A (с маской 0xF интересно что это именно А) а далее всё, кранты. Допустим читаю это же регистр или другие регистры - возвращает в основном нули. Если перед каждым чтением регистра выдавать софтовый сброс то всё хорошо, все регистры по умолчанию читаются в соответствии с даташитом. Вопрос - что я не так делаю? Т.е. вот так работает, rrr = 0x4A: volatile unsigned short rrr; AD779X_Reset(); HAL_Delay(1); rrr=AD779X_HWDetect(); AD779X_Reset(); HAL_Delay(1); rrr=AD779X_HWDetect(); вот так не работает volatile unsigned short rrr; rrr=AD779X_HWDetect(); HAL_Delay(1); rrr=AD779X_HWDetect(); unsigned char AD779X_HWDetect() { unsigned char result; ADCDevice.CSControl(cssEnable); ADCDevice.TxByte(AD779X_RDR_ID); /* send cmd: read ID register */ m_adc_model = ADCDevice.RxByte(); /* get ID */ ADCDevice.CSControl(cssDisable); return (m_adc_model); } ВТорой день туплю, не понимаю почему так происходит. Что АЦП не нравиться? Почему сброса требует? На осциллографе вроде всё нормально. Когда не работает, SDO АЦП действительно не отвечает.
-
Помогите с указателями на функции Си
Halfback replied to Halfback's topic in Программирование
Спасибо, совет хороший, но в моем случае не применим т.к. в структуре ADCDevice будут поля которые могут меняться. -
Помогите с указателями на функции Си
Halfback replied to Halfback's topic in Программирование
Вы даже не удосужились понять суть моего вопроса и начали давать "ценные" советы как по SPI работать с АЦП. А если бы это был не АЦП а другое устройство? И не SPI ? Суть вопроса данного топика от этого не поменялась бы никак. Надеюсь понятно пояснил. -
Помогите с указателями на функции Си
Halfback replied to Halfback's topic in Программирование
В общем всем спасибо за потраченное время. А ларчик то открывался просто. Ведь было же в "ADC.h" объявлено extern tADС_Device ADCDevice; это значит что в main.c можно написать так tAD779X_Device ADCDevice = { .TxByte = SPI_TxByte, .RxByte = SPI_RxByte }; и причем тут потуги на тему как надо работать с АЦП, что необходимость DMA (хотя кто сказал что это какой-нибудь STM32 а не AVR/PIC) и т.д. и т.п.??? совершенно непонятно зачем некоторые товарищи пытались уводить тело вопроса в сторону. -
Помогите с указателями на функции Си
Halfback replied to Halfback's topic in Программирование
в АЦП есть регистры для конфигурации усиления входа, смещений и т.п. На счет разрядности обращения к АЦП - к сути вопроса это отношения не имеет. при обращении ADCDevice.TxByte(0xA0) реально должна вызываться SPI_TxByte(0xA0) в "ADC.h" объявлен тип tADC_TxByte как указатель на функцию, принимающая в качестве аргумента unsigned char и ничего не возвращающая. Но вот меня клинит на том, где правильно написать что tADC_TxByte = SPI_RxByte; -
Помогите с указателями на функции Си
Halfback posted a topic in Программирование
всем доброго времени суток. с проектом непонятки следующие: 1. Есть АЦП. В него отправляют байты по SPI и также получают. В соответствующем для АЦП h-файле есть записи typedef void (* tADC_TxByte)(unsigned char Data); typedef unsigned char (* tADC_RxByte)(void); typedef struct { tADC_TxByte TxByte; tADC_RxByte RxByte; } tADC_Device; extern tADС_Device ADCDevice; 2. Есть для микроконтроллера файлы SPI.c и SPI.h где определены соответствующие функции для работы с SPI void SPI_TxByte(unsigned char Data); unsigned char SPI_RxByte(void); Так вопрос вот в чем - как правильно привязать обращения типа data[0] = ADCDevice.RxByte() к SPI_RxByte(void); и соответственно ADCDevice.TxByte(0xA0) к SPI_TxByte(0xA0); ??? Есть ли способ увязать не корректируя файлы "ADC.c" и "ADC.h"? Например создать файлик "ext_SPI.h" и правильно его инклудить. Прошу ногами сильно не пинать. Наверное это предновогодний ступор. -
Схема измерения разности потенциалов с высоким входным сопротивлением
Halfback replied to Halfback's topic in Схемотехника
потенциал мерить нужно относительно электрода сравнения. Рассматривается AgCl Например в стеклянной или пластиковой емкости с соленой/пресной водой, где рядом погружен электрод сравнения, надо штырем из нержавейки ткнуться в цинковую пластину, расположенную на дне. И померить разность потенциалов с точностью до 1мВ. На первом рисунке, электрод подключается к неинвертирующему входу ОУ. На сколько я понял там нужно применить что-то вроде коаксиала и оплетку коаксиала подключить ко выводу 2 ОУ, центральную жилу к 3 ноге ОУ. Предполагается, для того чтобы эта система работала, в жидкости с электродом оплетка д.б. оголена? Или как это работает? На второй картинке (FIGURE 3) мне не известный электрод сравнения, у которого судя по рисунку 2 вывода. Я ориентируюсь на электрод сравнения ЭСр-10111, у которого 1 вывод. -
Схема измерения разности потенциалов с высоким входным сопротивлением
Halfback replied to Halfback's topic in Схемотехника
мысль понятная, только вот я PH не мерю, у которой есть зависимость от температуры жижи. Мне нужна только разность потенциалов между электродами. Кстати, если только к одному электроду подключить Vref через 10 МОм то по идее в соленой и пресной воде потенциалы относительно Vref должны выровняться. И тогда потенциал с электродов спокойно можно подавать на гигаомные/тераомные входы буфера на ОУ, питание которого привязано к общему Vref. Расстояние между электродами всегда постоянно. Что скажете? -
Схема измерения разности потенциалов с высоким входным сопротивлением
Halfback replied to Halfback's topic in Схемотехника
если выбирать между наводками и искажением напряжения (разности потенциалов между электродами) то выбираю бороться с наводками, например между инструментальником и АПЦ поставить ФНЧ с постоянной времени сотни миллисекунд. балансировка "нуля" вольтметра планируется при старте девайса, переключением цепей электродов в цепь КЗ. Да и 3-й электрод очень не хотелось бы внедрять хотя бы с конструктивной точки зрения. -
Схема измерения разности потенциалов с высоким входным сопротивлением
Halfback replied to Halfback's topic in Схемотехника
технически не понятно. На электрод сравнения предлагается подавать Vref ? Или Vref опускать в воду считай третьим электродом, рядом с двумя другими электродами? -
Схема измерения разности потенциалов с высоким входным сопротивлением
Halfback replied to Halfback's topic in Схемотехника
точности в 1мВ будет достаточно. Микровольты не нужны. -
Схема измерения разности потенциалов с высоким входным сопротивлением
Halfback replied to Halfback's topic in Схемотехника
Потенциал относительно ОУ не знаю. Ёмкость большая стекло. К сожалению не металл. Кстати ОУ с изолированеыми FET подобные вопросы не решают, без введения выравнивающего потенциала схемы? -
Всем доброго времени суток! Надо в жидкости померить и оцифровать разность потенциалов, типа электрохимии. Нужно максимально большое входное сопротивление. Хотябы Гигаом. Вижу есть ОУ с CMOS, у которых входной ток в НКУ 1пА С реализацией схемы есть вопросы. На сколько я понимаю такая схема будет работать когда напряжения V1 и V2 на входу относительно нуля должны находиться в диапазоне питания ОУ. А в моем случае потенциалы в жидкости никак не связаны с питанием ОУ, и подтяжки по входам не поставить ввиду обеспечения требованиям ГОм на входе, то будет ли такая схема работать? ОУ к примеру MCP601 или инструментальник типа AD8236
-
AE857 по сабжу ОК но, к сожалению, не подходит по двум причинам: - входное сопротивление - совсем низкое, на интересующем самом низком диапазоне 10В(5В) всего то 180кОм. Хотелось бы единицы а то и десятки МОм. - по метрологии характеристики весьма посредственные. Пределы допускаемой основной абсолютной погрешности измерений на диапазоне 5В -> 0,002*5+0,0016*5 = +/- 18мВ. Многовато. Хотелось бы раза в 3 поменьше. ПЛК, я так понимаю, наверное не подразумевают более-менее точные измерения. Это ж комбайн а не точное СИ.
-
Дорого времени суток. Компактный вольтметр DC без индикации с RS485 или 232 с сертификатом Госреестра РФ - такие у нас вообще бывают? Искал - не нашел. Заранее спасибо за наводку!
-
тактирую от внешнего кварцевого резонатора на 32768 https://www.chipdip.ru/product0/8001797043 у него 20ppm, мой уход больше этой цифры. Частотомера хорошего у меня нет но осцилл RIGOL показал с предварительно настроенного выхода MCO импульсы частотой 32765...32771 Гц (в течение часа). STM пишет в том ключе, что мол подавая более высокую частоту аля HSE и считая кол-во импульсов LSE за определенную длительность в секундах, можно понять смещение LSE от нужной 32768. Ну о потом это смещение в регистре RTC_CALR учесть. Но до конца в этот процесс не смог вникнуть.
-
всем доброго времени суток. Есть непонятки как реализовать калибровку RTC, конкретно у меня за 1 час время уходит на 1-2 минуты. в МК есть регистр RTC calibration register (RTC_CALR) где есть возможность добавить тиков или пропустить. В кубике на это счет даже есть функция HAL_RTCEx_SetCalibrationOutPut(...). Вопрос вот в чем - как понять сколько тиков надо добавить или пропустить? Нигде не могу найти соотв. exampe как всем этим механизмом пользоваться. Хочется иметь возможность подстраивать RTC без внешнего участия и подключений частотомеров. MK семейства F4 и L4
-
трансформатор Ethernet HX1188NL: поменять местами каналы прм и прд
Halfback replied to Halfback's topic in Интерфейсы
так а есть в каких-нибудь даташитах или стандартах фразы, говорящие о то что подобный трюк допустим? Лично по моим ощущениям, в приемном и передающем каналах трансформаторы и симфазные фильтры скорее всего одинаковые, но напрягает, что в даташитах, причем на разные аналогичного применения трансформаторы (в т.ч. отечественные), четко разделяют каналы на прием и передачу. Поэтому допускаю подвох. -
всем доброго времени суток. вопрос сопряжения м/с LAN8720AI и трансформатора HX1188NL: по трассировке если следовать документации то получается проводники RX TX между м/с и трансформатором будут крест/накрест. Можно ли изменить связи таким образом, что в трансрфматоре канал который обозначен как Tranceiver использовать как Receiver и наоборот? Тогда по трассировке получиться всё четко.
-
Замена э/м реле на твердотельное для низковольтовых сигналов
Halfback replied to Halfback's topic in Схемотехника
реле стоит в гальванически изолированной зоне, а для применения подобных электронных ключей придется отдельно подводить изолированное питание и т.п. В конкретной задаче такой путь не приемлем.