Например TDA7294

Форум РадиоКот :: Просмотр темы - Помогите найти подобие lb1838 но на 12вольт
Форум РадиоКот
https://radiokot.ru/forum/

Помогите найти подобие lb1838 но на 12вольт
https://radiokot.ru/forum/viewtopic.php?f=61&t=175827
Страница 1 из 1

Автор:  vispower [ Вт мар 02, 2021 14:49:32 ]
Заголовок сообщения:  Помогите найти подобие lb1838 но на 12вольт

Нарыл с дисковода драйвер шагового движка lb1838, мне он очень понравился тем что можно тремя ножками моторчик крутить (ena1 и ena2 можно объединить), а значит на один контроллер можно их больше повесить, но у нее минус максимальное наряжение в 9вольт, нужно до 14вольт. Может кто знает подобный дривер, на большее напряжение.

Автор:  kr5 [ Сб мар 06, 2021 17:32:26 ]
Заголовок сообщения:  Re: Помогите найти подобие lb1838 но на 12вольт

Стоимость и доступность сдвигового регистра серии 595 такова, что позволяет не обращать внимание на кол-во "ножек" в подобных задачах, а значит утверждение "понравился тем что можно тремя ножками моторчик крутить" не выдерживает критики и не может быть нормальным критерием для поиска драйвера.

Автор:  vispower [ Вт мар 09, 2021 07:47:53 ]
Заголовок сообщения:  Re: Помогите найти подобие lb1838 но на 12вольт

Не согласен! Зачем мне на плате лишнее. У каждого свои тараканы

Автор:  iddqd [ Пт апр 09, 2021 04:42:17 ]
Заголовок сообщения:  Re: Помогите найти подобие lb1838 но на 12вольт

Я как раз с флопаря сдул какой-то KA28xx (производитель - Fairchild). И шаговик оттуда же. По найденому даташиту до 15 вольтов держит. У него вообще по сути 2 сигнала, задающих полярность каждой фазы. Есть chip enable но он странный, я так и не понял на что влияет, ток через обмотки не вырубает. Впрочем с тем степпером и чипом не так уж важно, они с самого начала ОК насчет такого режима. Насколько это до сих пор производится и продается - хз.

А что до сдвиговых регистров - ну, знаете?! Шаговикам все же какие-никакие времянки надо формировать, и когда это просто лапки, вон того шаговика переключить - одно, а когда кучу битов в регистр загонять, с точки зрения программирования и трекинга состояний кучи шаговиков это уже трэш какой-то. Вместо тривиального кода делающего что задумано будут какие-то костыли, потому что в лоб сменить в момент X состояние только потребных лапок не трогая остальные - уже ой. В таком случае может иметь смысл взять процик с чуть большим количеством лапок.

Автор:  Morroc [ Ср апр 21, 2021 23:33:31 ]
Заголовок сообщения:  Re: Помогите найти подобие lb1838 но на 12вольт

Сколько же у вас ШД и с какой частотой их крутите чтобы это стало критично ? ) Код сильно отличаться не должен, просто дергать пины будете через функцию-прокладку.

Автор:  Land [ Пт апр 22, 2022 14:20:50 ]
Заголовок сообщения:  Re: Помогите найти подобие lb1838 но на 12вольт

не знаю, вдруг кому пригодится. Код для lb1838 под атмегу8.
Спойлер
Код:
#include <avr/io.h>
#include <avr/interrupt.h>

//----------
//  Управление портом B
//----------

#ifdef   PORTB
#define PORTB_OUT_ALL()   (DDRB = 0xFF);
#define PORTB_IN_ALL()   (DDRB = 0x00);
// Настройка порта B на выход по пинам
#define PORTB_OUT(x)   (DDRB |= (1 << x))
// Настройка порта B на вход по пинам
#define PORTB_IN(x)      (DDRB &= ~(1 << x))
// Вывод в порт B по пинам 1
#define PORTB_ON(x)      (PORTB |= (1 << x))
// Вывод в порт B по пинам 0
#define PORTB_OFF(x)   (PORTB &= ~(1 << x))
// Чтение из порта B по пинам
#define PORTB_RD(x)      (PINB & (1 << x))
// Инвертирование битов порта B
#define PORTB_XOR(x)   (PORTB ^= (1 << x))
// Вывод значения в порт
#define PORTB_DATA_OUT(b)   PORTB = b
// Чтение из порта
#define PORTB_DATA_IN()   PINB
//----------
#define EN1 1
#define EN2 2
#define IN 3
#define RVRS 0
#endif

char i = 1;
uint16_t steps = 0;
char flag_STOP = 1;
char flag_RVRS = 0;

ISR(TIMER2_COMP_vect)
{
   PORTB ^= (1 << EN1)|(1 << EN2);
   if(!i) {PORTB_XOR(IN); i = 2;} else;
   i--;
   steps--;
   OCR2 = 0x25;
}

ISR(INT0_vect)
{
   
}

void setup(void)
{
   asm("wdr");
   MCUCSR &= ~(1<<WDRF); /* Clear WDRF in MCUSR */
   WDTCR |= (1<<WDCE) | (1<<WDE);   /* Write logical one to WDCE and WDE */
   /* Keep old prescaler setting to prevent unintentional time-out */
   WDTCR = 0x00;   /* Turn off WDT */
   //----------
   PORTB_IN(RVRS);
   PORTB_ON(RVRS);
   PORTB_OUT(EN1); //PB1, PB2 out
   PORTB_OUT(EN2);
   PORTB_OUT(IN);
   PORTB_OFF(EN1);
   PORTB_OFF(EN2);
   PORTB_OFF(IN);
   //--------Timer2-------------------
   TCCR2 = 0; // set entire TCCR2A register to 0
   TCNT2  = 0x00; // initialize counter value to 0xFF
    // 256 presc. toggle OC2 PWM Pfase Correct
   TIMSK |= (1 << OCIE2);
   OCR2 = 0x25; // 500Hz 0x25 для тактов   
   sei();
}


int main(void)
{
   setup();
      
   while(flag_STOP)
      {
      if(PORTB_RD(0))
         {
            PORTB_ON(EN1); PORTB_OFF(EN2); PORTB_ON(IN); flag_RVRS = 1; TCCR2 |=(1 << WGM21)|(1 << CS22)|(1<< CS21)|(1<< CS20); steps = 477;
         } else
            {
               PORTB_ON(EN2); PORTB_OFF(EN1); PORTB_OFF(IN); flag_RVRS = 0; TCCR2 |=(1 << WGM21)|(1 << CS22)|(1<< CS21)|(1<< CS20); steps = 477;
            }         
         
      while (steps){};
      PORTB &= ~(1 << EN1)|(1 << EN2);   
      TCCR2 = 0;
      flag_STOP = 0;
      }
}
рабочий, проверено, шаговик крутит туда-сюда.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/