Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

Re: stm32 ds18b20

Пт июн 17, 2022 09:26:27

Ну зачем эта жесть с delay'ями, если 1-wire прекрасно можно в виде конечного автомата сварганить на UART+DMA или TIM+DMA?
И не нужно будет две ноги тратить: у UART есть режим полудуплекса по одному проводу, с таймером еще проще (CC2 в режиме захвата вешается на ту же ногу, что и CC1 в режиме ШИМа).

Re: stm32 ds18b20

Пт июн 17, 2022 11:10:54

ТС хочет на ногодрыге.
Остальные варианты уже сколько раз предлагались =]

Re: stm32 ds18b20

Пт июн 17, 2022 13:01:16

ТС хочет на ногодрыге.

А потом еще удивляется, чего это его на других форумах забанили!
Да за это и забанили: за извращения в самой жестокой форме!

Re: stm32 ds18b20

Пт июн 17, 2022 18:52:16

Не за это меня забанили.А за то что я пошутил что за 100 доларов сделаю работу с таймером AVR.А модератор просил 400 это за что за поффисионализм?А насчёт USART-DMA 1_Wire.Куплю переходник и буду эксперементировать на железке.А сейчас с 22.12 .2021 я без работы.На Украине туго.

Re: stm32 ds18b20

Пт июн 17, 2022 18:59:13

Да какая разница - на ногодрыге или не на ногодрыге? Главное - попробовать, что-то сделать, получить результат. А потом уже можно и совершенствовать, переносить на уарт например. Пусть автор хоть как-то сделает уже, поймет как это работает, а там видно будет.

Re: stm32 ds18b20

Сб июн 18, 2022 03:16:51

ivan dimir, будете тут разводить срач - и тут забанят. Про политику идите в другие разделы трепаться.

ЗЫ: Срач потчистил.

Re: stm32 ds18b20

Сб июн 18, 2022 12:23:38

ivan dimir писал(а):А насчёт USART-DMA 1_Wire.Куплю переходник и буду эксперементировать на железке.
О каком переходнике речь?
DS18B20 возможно подключить к USART и производить обмен через DMA. http://purebasic.mybb.ru/viewtopic.php?id=574

Что сейчас есть из железа?
Есть STM32 (какие), ST-Link, DS18B20, резисторы, конденсаторы, провода, паяльник и т. д.?
При отсутствии всего перечисленного, можете использовать протеус если комп мощный (симуляция STM32 затратна по ресурсам).

Re: stm32 ds18b20

Сб июн 18, 2022 15:08:37

Ну есть stm32f103c8t .stm32f411?.и stm32f407vet а протеус какой лучше использовать ?Хочется железо поберечь.

Добавлено after 2 minutes 56 seconds:
ivan dimir, будете тут разводить срач - и тут забанят. Про политику идите в другие разделы трепаться.

ЗЫ: Срач потчистил.

Извините на этом сайте я вне политики. Интересуют только знания.

Re: stm32 ds18b20

Сб июн 18, 2022 18:15:20

ivan dimir писал(а):протеус какой лучше использовать
Текущую версию.
Для симуляции STM32 нужен мощный комп (в первую очередь, производительный процессор и быстрая оперативная память), иначе симуляция в реальном времени будет невозможной.

ivan dimir писал(а):Хочется железо поберечь.
В смысле чтобы не вывести из строя или не перетирать флеш? В последнем случае, отладка в ОЗУ поможет.

Re: stm32 ds18b20

Сб июн 18, 2022 20:49:53

Ну зачем эта жесть с delay'ями, если 1-wire прекрасно можно в виде конечного автомата сварганить на UART+DMA или TIM+DMA?
И не нужно будет две ноги тратить: у UART есть режим полудуплекса по одному проводу, с таймером еще проще (CC2 в режиме захвата вешается на ту же ногу, что и CC1 в режиме ШИМа).

Так TIM+DMA?Или UART+DMA?
В CubeIDE отладка на таких платках проблематично.А какие требования системные ОС?И какой протеус?

Re: stm32 ds18b20

Сб июн 18, 2022 21:23:44

Так TIM+DMA?Или UART+DMA?
В CubeIDE отладка на таких платках проблематично.А какие требования системные ОС?И какой протеус?

Отвечаю последовательно.
И TIMx+DMA, и UART1+DMA не потребуют задействования двух ног. Про другие UART'ы мне лень читать - есть ли там полудуплексный режим.
На калокуб мне насрать, сам знаешь. И презираю использующих это говнище.
Требований к ОС никаких нет. Можешь даже на игровой приставке все это делать, если тебе слишком сложно в линуксе или бсд работать.
Протеус - без понятия, что это за УГ. Слышал неоднократно, но ни разу не видел. Думаю, тебе лучше с этим куском УГ не связываться.

Re: stm32 ds18b20

Вс июн 19, 2022 05:11:33

Ну как не требует USART-DMA TIM-DMA требует по две ноги RX TX я так понимаю.Ну если я не правильно понял то вы выскажите правильную информацию.Да и примеров по USART-DMA и TIM-DMA мало .А вообще на 1-wire ds18b20 USART-DMA и TIM-DMA это разные программы. Или одна ?

Re: stm32 ds18b20

Вс июн 19, 2022 09:33:27

Нет, неправильно понимаешь. А ссылку на реализацию с таймером я ещё в самом начале давал.

Re: stm32 ds18b20

Вс июн 19, 2022 17:00:08

У меня вопрос от аматора к вам профи а могли бы вы в кратце на пальцах объяснить принцып USART-DMA 1-wire. Прицип таймера как он работает .Как он реализует протокол 1-Wire ?.Я чужие исходники плохо умею читать.

Re: stm32 ds18b20

Вс июн 19, 2022 18:16:07

На уарте пусть тебе расскажет тот, кто на нем делал. Я делал на таймере, ссылку в самом начале давал. Принцип элементарный: сначала ты "послание" зашифровываешь побитно и в каждый элемент массива uint8_t складываешь значения регистра CC1 таймера, на котором делаешь это дело. Из регистра CC2 будешь забирать захваченные данные. Таймер одновременно как бы генерирует шим на CC1 и захватывает сигнал на CC2. После передачи разбираешь данные, которые через DMA приплыли из регистра CC2, да дешифруешь.
Естественно, мультиплексор соединяет CC1 и CC2 на одной ноге.

Re: stm32 ds18b20

Вс июн 19, 2022 19:08:30

Так ты настраиваешь таймер в режиме захвата? Это один вход в режиме захвата?

Re: stm32 ds18b20

Вс июн 19, 2022 19:36:41

Я же говорю: CC1 в режиме ШИМ, CC2 — в режиме захвата. Оба — на одной и той же ноге. Вот же:
Код:
void DS18_pinsetup(){
    TIM1->CR1 = 0;
    RCC->APB2ENR |= RCC_APB2ENR_IOPAEN | RCC_APB2ENR_TIM1EN | RCC_APB2ENR_AFIOEN;
    RCC->AHBENR |= RCC_AHBENR_DMA1EN;
    pin_set(GPIOA, 1<<8); // 1 @ line
    // PA8 as opendrain output
    GPIOA->CRH = (GPIOA->CRH & ~(GPIO_CRH_MODE8 | GPIO_CRH_CNF8)) |
            CRH(8, CNF_ODOUTPUT | MODE_FAST);
    TIM1->PSC = 71; // 1MHz
    // CC1 is output (PWM mode 1, active->inactive, enable preload), CC2 is input @TI1
    TIM1->CCMR1 = TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1PE |
            TIM_CCMR1_CC2S_1;
    // enable CC1 & CC2, CC1 active low
    TIM1->CCER = TIM_CCER_CC1E | TIM_CCER_CC2E | TIM_CCER_CC1P;
    TIM1->DIER = 0; // disable IRQ & DMA events
    // main output enable
    TIM1->BDTR = TIM_BDTR_MOE;
    // T1Ch2: per->mem, T1Ch1: mem->per; 16bit->8bit,
    DMA1_Channel2->CCR = DMA_CCR_MINC | DMA_CCR_PSIZE_0 | DMA_CCR_TCIE | DMA_CCR_DIR;
    DMA1_Channel3->CCR = DMA_CCR_MINC | DMA_CCR_PSIZE_0 | DMA_CCR_TCIE;
    DMA1_Channel2->CPAR = (uint32_t)&TIM1->CCR1;
    DMA1_Channel3->CPAR = (uint32_t)&TIM1->CCR2;
    TIM1->CR1 = TIM_CR1_URS; // only ARR overflow generates interrupt

    NVIC_EnableIRQ(TIM1_UP_IRQn); // last interrupt to turn timer off
    NVIC_EnableIRQ(DMA1_Channel2_IRQn);
    dsstate = DS18_SLEEP;
}

Re: stm32 ds18b20

Вс июн 19, 2022 20:07:53

Я так и понял а как вы задержки делаете.Функция инициализации и ресета?

Re: stm32 ds18b20

Пн июн 20, 2022 09:18:09

Ну я же ссылку дал. Неужто трудно открыть код? Все идет внутри конечного автомата. Вот:
Код:
        case DS18_DETDONE:
            if(TIM1->CCR2 > RESET_BARRIER) DS18_startmeas(Tms);
            else dsstate = DS18_ERROR;
        break;

Re: stm32 ds18b20

Пн июн 20, 2022 13:48:51

Eddy_Em писал(а):Ну я же ссылку дал. Неужто трудно открыть код?
Он же написал
ivan dimir писал(а):Я чужие исходники плохо умею читать.
Можно делать хоть 1500 ссылок на исходники но будет ли результат?
Ответить