• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Ногодрыг на rtl

kab

New member
@=AK=
очень упрощенно Аналоговый компьютер — Википедия
В том виде, котором читали мне - адова смесь прецизионной электроники с электротехникой.
Как это ни странно, с помощью пары деревянных реек можно довольно шустро перемножать числа. И не только...

Называлось это - логарифмическая линейка.
 

=AK=

New member
В том виде, котором читали мне - адова смесь прецизионной электроники с электротехникой.
А, это... Проходил, даже лабы делал когда-то. Только к аналоговым датчикам они относятся довольно фиолетово. А термисторы мерять - вообще чистое удовольствие: ratiometric measurement. Опорой является не прецизионный источник напряжения или тока, а точный резистор. Никаких усилителей, все источники погрешностей сведены к нулю, на результат только сопротивление проводов влияет.
 

АндрейМ

New member
Только к аналоговым датчикам они относятся довольно фиолетово.
Это когда нет вообще никаких требований. Электрические АВМ (это я для kab), сдохли от того, что требования к элементной базе и конструкции запредельные
 

kab

New member
Это когда нет вообще никаких требований. Электрические АВМ (это я для kab), сдохли от того, что требования к элементной базе и конструкции запредельные
Да ничего там запредельного - совершенно:
- подключаешь емкость параллельно нагрузке - вот тебе интеграл. Подключаешь последовательно - дифференциал. На современных ЦЭВМ (обратить внимание на "Ц") численными методами умучаетесь решать дифуравнения высших порядков, которые на АВМ решаются за секунды. А вообще, каждый инструмент хорош к месту и ко времени...

ЗЫ.@АндрейМ - я не пытаюсь дискутировать. Сказанное выше - :). А общие представление, какие вычислительные устройства, когда и для чего использовались - у меня есть :)
Извините, что не по теме...
 

pvvx

Активный участник сообщества
Еще раз, буквально - в рамках моего использования, ошибка датчика при измерении температуры металлической гильзы, находящейся в паро-жидкостной среде, состоящей из смеси органических и неорганических веществ и их азеотропов, в которой происходят множественные смены фаз, в непрерывном режиме, не превышает шага встроенного в ds18 АЦП. Если производить секвентальное усреднение по нескольким значениям опроса график становится гладким в пределах шага АЦП. Если дочитали до сюда, то предлагаю перечитать название темы и либо начинать писать по делу, либо пройти флудить куда-то в другое место. Спасибо за понимание.
О - по делу :) Скорее всего у ds18 очень большой шум у самой полупроводниковой части где происходит измерение температуры - от этого ровного графика и повторяемости замеров, хоть дифференциальных, в шаг его псевдо-ADC не получить. Полупроводниковые измерители температуры очень шумные и на них влияют другие физические явления. Хорошо подходят для rand() :)

Пробовал менять все биты регистров управления i/o PB_0 на RTL8195A - пока не вышло сделать OK. Там вообще какая-то странность и с подтяжкой PullUp - напряжение выходит в 0.7В при PullUp и установке его в Input, а не к 3.3В. Возможно что-то не то на самом модуле напаяно или я что накосячил или неверно залепил... :) Быстро не вышло разобраться... а времени на это пока нет. По тому и написал - "надо ковыряться". С другими i/o не проверял.
У RTL-00 там впаян св.диод и про это напоминать не надо. И про то, что питание порта B подключено.
Возможно есть управление питанием у GPIO контроллера портом B - этого не проверял.
 
Последнее редактирование:

АндрейМ

New member
ЗЫ.@АндрейМ - я не пытаюсь дискутировать. Сказанное выше - :). А общие представление, какие вычислительные устройства, когда и для чего использовались - у меня есть :)
Надоело обсасывать - я постарался забыть электротехнику и не хочу к ней возвращаться. Стопка листов расчета на пару проводников очень хорошо помогает с таким просветлением :)
О - по делу :) Скорее всего у ds18 очень большой шум у самой полупроводниковой части где происходит измерение температуры - от этого ровного графика и повторяемости замеров, хоть дифференциальных, в шаг его псевдо-ADC не получить. Полупроводниковые измерители температуры очень шумные и на них влияют другие физические явления. Хорошо подходят для rand() :)
:) На графиках встречаются странные колебания, но все списываю на переход фаз в многокомпонентной смеси т.к. эти артефакты достаточно растянуты по времени и не похожи на обычный шум. А графиков я отсмотрел уже часов на 100 точно.
 

pvvx

Активный участник сообщества
На графиках встречаются странные колебания, но все списываю на переход фаз в многокомпонентной смеси т.к. эти артефакты достаточно растянуты по времени и не похожи на обычный шум. А графиков я отсмотрел уже часов на 100 точно.
У нас часто проще - адсорберы железные и внутри помех нет. Тупую цифру по типу 1-wire тянуть не катит - а вдрух рядом умный электро-сварщик на заводе решил что тут ему лучше варить? :)
 

pvvx

Активный участник сообщества
Странная фигня в SDK - вот такой интересный кусок нашелся
RTL00_WEB/serial_api.c at 1e44ff6a55a3b6237faf22b62835570e181261c8 · pvvx/RTL00_WEB · GitHub
А что там интересного?
Менять направление передача-прием объединенных ножек TX-RX можно и путем смены мапинга выходов UART на разные I/O... Но не позволяет TX переключить в OK при самой передаче байта.
 
Последнее редактирование:

АндрейМ

New member
А что там интересного?
Менять направление передача-прием объединенных ножек TX-RX можно и путем смены мапинга выходов UART на разные I/O... Но не позволяет TX переключить в OK при самой передаче байта.
на UART2 заработало без внешней обвязки на стандартном SDK.
 

АндрейМ

New member
Опишите, что вышло, если есть время...
Идея вот отсюда FT232: Как подружить 1-wire с компом / Связь железа с компьютером. / Сообщество EasyElectronics.ru

Код:
#define UART2_TX    PA_4 // UART_2
#define UART2_RX    PA_0

typedef enum owFunc_t{
    OW_CMD_FREE, OW_CMD_IDLE, OW_CMD_RESET,
    OW_CMD_READ_BITS,OW_CMD_WRITE_BITS, OW_CMD_WAIT_CONV
} owFunc_t;

serial_init(&ow_sobj,UART2_TX  ,UART2_RX);
serial_format(&ow_sobj, 8, ParityNone, 1);

//-------------------------
    switch(cmd){
        case OW_CMD_RESET:
            serial_baud(&ow_sobj,9600);
            serial_putc(&ow_sobj,0xF0);
            ow_io_buf[0]=serial_getc(&ow_sobj)!=0xF0?1:0;
            return ow_io_buf[0];
        case OW_CMD_READ_BITS:
            serial_baud(&ow_sobj,115200);
            memset(ow_io_buf,0,sizeof(ow_io_buf));
            ow_bit=0;
            while (ow_bit<ow_bits) {
                serial_putc(&ow_sobj,0xFF);
                int c=serial_getc(&ow_sobj);
                if (c==0xFF) {
                    ow_io_buf[ow_bit>>3]|=1<<(ow_bit&7);
                }
                ow_bit++;
            }
            return 1;
        case OW_CMD_WRITE_BITS:
            serial_baud(&ow_sobj,115200);
               ow_bit=0;
                while (ow_bit<ow_bits) {
                    serial_putc(&ow_sobj,((ow_io_buf[ow_bit>>3]>>(ow_bit&7))&1)?0xFF:00);
                    (void) serial_getc(&ow_sobj);
                    ow_bit++;
                }
                return 1;
            break;
        default:
            return 0;
            break;
    }
На чтении, при "0" датчика - 0xfc. Этот кусок работает с блокирующей процедурой ds_search, как время появится напишу и выложу DMA или IRQ драйвер.
 
Сверху Снизу