Jump to content

    

Wano

Свой
  • Content Count

    271
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Wano

  • Rank
    Местный

Recent Profile Visitors

980 profile views
  1. 1)20А совсем не мало и для уменьшения потерь переключать ключ надо бы побыстрее, а слаботочная нога атмеги сделать этого не сможет. Хорошо бы поставить хоть какой-то (2 биполярника) драйвер. Всё зависит от частоты переключения (слухового восприятия). 2)Так же не забывайте про защитный диод параллельно нагрузке и RC цепочку в параллель ключу. Это удалит иголки на фронтах. 3)В цепи питания атмеги перед какой-нить 7805 обязательно LC фильтр. 4)Соединения минимальной длины от блока питания до вашей схемы.
  2. Отчасти вопрос надуманный можно или нет, когда говорим про "On Board Type". Но вот описания температуры и времени пайки чего-то не видать в их описании. Но вот был пример в жизни когда после впаивания/выпаивания DC/DC от Chinfa и последующих виброиспытаниях модули начинали "неконтачить" где-то внутри. После этого решено было больше не использовать б/у. При определённых обстоятельствах и температуре нагрева можно повредить пайку ног внутри модуля. Выявляется сей факт как всегда на объекте перед заказчиком
  3. Меня просто задел Ваш 19-й пост про "бутербротдрайверы" в отношении аллегро и тошибы. Мне показалось это утверждение безосновательным. Последней ссылка тому доказательство. 5 микрух против одной. Впрочем каждому своё. allegro.pdf
  4. Может уже можно ссылочку? А то уже третий пост говорите, что схема есть и намекаете на кривость рук.
  5. Да, драйвера мосфетов. Не видел я популярную схему, кроме стандартной, которой весь инэт забит. В остальном что на выходе? Обратную ЭДС никто не отменял. Шибают всплески там хорошие от мотора. Куда это дело девать ? Либо диодом садим , либо верхним ключом. Если диодом - то вариантов два: 1)чоппер работает и диоды калятся до посинения. Mожно RC , но это всё одно. 2)чоппер просто не работается и калится мотор на всех 5-ти амперах и вентилятор стоит на нём. Если верхним ключом - то его управление либо самопальный драйвер на 1-3 транзюках, либо что-то типа IR2104(1-3$). С таким раскладом выходим на вагон мелочи. Цена A39-х порядка трёх баксов, столько же и L297 ,а возможных косяков гораздо меньше + адекватный нагрев всех составляющих. ИМХО не вижу ни единого плюса в сторону L297, ни в возможностях ни в какой-то мифической экономии денег, которая потов выльется ещё непонятно во что.
  6. Сравнивать L297+8 и серию А39.. Allegro всё равно,что разводить демагогию якобы паинт лучше фотошопа. Собирал контроллеры: 1)L297+8 - ток маловат был,L298 накрылся 2)L297+IRFZ - наверно была разводка плохая 3)L297+драйвер+IRFZ c толстыми дорожками п/п Да работает, но силовая часть греется, мотор греется вообще конкретно. Защитные диоды греются. Плохая регулировка тока покоя и движения (тут можно долго говорить что у L297 есть ножка VREF и что на неё можно повесить выход ЦАП). Когда подобные схемы собраны на печатке в трех экземплярах и начинают работать одновременно на токах порядка 3-х ампер, тут начинаются все чудеса. 4)A3986+IRFZ34+DAC AD5301+MC - собирал на плате для трёх осей. Шаг, полушаг, четверть - слух радует разгон торможение. Во время простоя ток скидывается чётко. Очевидного влияния одновременной работы не видно.Про разогрев силовой части вообще можно забыть, никаких радиаторов на 3-х амперах. Фишка по поводу поддержания тока , входа PFD1 PFD2. В случае медленного вращения нет звона,если есть передачи в виде шестерен без существенной нагрузки. Схема без каких-то доработок , всё как по шиту.
  7. А ресетить всегда надо после включения? Вроде читаешь что-нить в пустую и всё ок.
  8. USB Host LPC2387

    Да я подвесил контроллер питания MIC2025 . Короче вопрос решился такими строчками : USBPortSel &= ~0x03; USBPortSel |= 0x01; которые чудесным образом подключают первый порт к хосту. Только описаны они чего-то в разделе OTG , а в разделе HOST ни слова.
  9. внешний RESET вроде самый главный. После этого проц стартует как только-что включенный и попасть в DAbort сразу не может. После старта выполняется вшитый загрузчик который "отоборажает" вектора из основной проги и дальше заново попадает на нулевой адрес, и только поооосле всё выполняется по программе. В подтверждение можете запустить в отладчике и поставить брэйкпоинт на "нуле".
  10. USB Host LPC2387

    День добрый. Может кто подскажет по настройке первого USB порта как Host. Ноги настроил так: P0.29 - USB_D+ P0.30 - USB_D- P1.18 - USB_UP_LED P1.19 - USB_PPWR1 - подача питания на USB P1.22 - USB_PWRD1 - состояние питания P1.27 - USB_OVRCR1 - перегрузка питания, режим вывода без подтягивающих резисторов в остальном как по примеру NXP PCONP |= 0x80000000; VICIntEnClr = (1 << 22); /* Enable the USB interrupt source */ VICSoftIntClr = (1 << 22); OTG_CLK_CTRL|= 0x01; while(OTG_CLK_STAT != 0x01); pinsel = HC_REVISION; /* P0[29] = USB_D+1 */ /* P0[30] = USB_D-1 */ PINSEL1&=0xC3FFFFFF; PINSEL1|=0x14000000; /* P1[18] = USB_UP_LED1 01 */ /* P1[19] = USB_PPWR1 10 */ /* P1[22] = USB_PWRD1 10 */ /* P1[27] = USB_OVRCR1 10 */ PINSEL3&=0xFF3FCF0F; PINSEL3|=0x00802090; PINMODE3|=0x00800000; Hcca = (volatile HCCA *)0x7FD00000; TDHead = (volatile HCTD *)0x7FD00100; TDTail = (volatile HCTD *)0x7FD00110; EDCtrl = (volatile HCED *)0x7FD00120; EDBulkIn = (volatile HCED *)0x7FD00130; EDBulkOut = (volatile HCED *)0x7FD00140; TDBuffer = (volatile USB_INT08U *)0x7FD00150; FATBuffer = (volatile USB_INT08U *)0x7FD001D0; /* Initialize all the TDs, EDs and HCCA to 0 */ Host_EDInit(EDCtrl); Host_EDInit(EDBulkIn); Host_EDInit(EDBulkOut); Host_TDInit(TDHead); Host_TDInit(TDTail); Host_HCCAInit(Hcca); Host_DelayMS(50); /* Wait 50 ms before apply reset */ HcControl = 0; /* HARDWARE RESET */ HcControlHeadED = 0; /* Initialize Control list head to Zero */ HcBulkHeadED = 0; /* Initialize Bulk list head to Zero */ /* SOFTWARE RESET */ HcCommandStatus = OR_CMD_STATUS_HCR; HcFmInterval = DEFAULT_FMINTERVAL; /* Write Fm Interval and Largest Data Packet Counter */ /* Put HC in operational state */ HcControl = (HcControl & (~OR_CONTROL_HCFS)) | OR_CONTROL_HC_OPER; HcRhStatus = OR_RH_STATUS_LPSC;/* Set Global Power */ HcHCCA = (USB_INT32U)Hcca; HcInterruptStatus |= HcInterruptStatus;/* Clear Interrrupt Status */ /* Enable interrupts */ HcInterruptEnable = OR_INTR_ENABLE_MIE | OR_INTR_ENABLE_WDH | OR_INTR_ENABLE_RHSC; VICIntSelect &= ~(1 << 22); /* Configure the ISR handler */ VICVectPriority22 = 2; VICVectAddr22 = (USB_INT32U)Host_Isr; /* Set the vector address */ VICIntEnable = (1 << 22); /* Enable the USB interrupt source */ После прохождения HcRhStatus = OR_RH_STATUS_LPSC; никаких признаков жизни на ножках будто порт вообще не подключен.
  11. Ну не всё так хорошо для всех. Долбился с OLED WEH001602 всё как у обычного ЖКИ , но только не работает он нормально. Постоянные сбои, срывается память куда-то. Указатель адреса сам по себе летает по всей памяти. Пашет только на ооочень медленной скорости. Подключаю обычные FORDATA всё как часы. И только когда запитал OLED от 3,3 стало всё супер. Вроде как 3,3 лог 1 должна быть, а видно что-то не то. И ноги у LPC толерантны к 5В и всё равно косяк.
  12. Добавлю по поводу буфера на входе АЦП. В случае применения сигма-дэльта АЦП во время преобразования происходит заряд конденсаторов. Если нет буфера и фильтр высокоомный, то будет приличная погрешность. Смотрел работу LTC2440 - очень хорошо заметен на осцилле провал при работе с мультиплексором.
  13. Жизнь станет легче если залить один раз загрузчик в начало флэша. Он займёт там места не более , чем тот же код в основной прошивке. 1)Стартанул загрузчик из флэш - глянул надо ли шить ROM. 2)Если надо то скачиваем сектор(ы) положенного размера (согласно шиту на проц) с SD в RAM и зашиваем. Плюсы перед тем, чтобы прога шила сама себя: 1)Пользуемся прерываниями на здоровье 2)В случае падения прошивки её можно перезалить ещё раз. 3)Стартовать можем и без WDT p.s. Данный совет мне дал уважаемы aaarr.
  14. Скопировать свою таблицу векторов в RAM на адрес 0х40000000 и сделать ремэп MEMMAP=2. А чтобы линкер не лез в первые 64 байта изменить в скаттер файле RW_IRAM1 0x40000040 0x0000FFC0 { ; RW data .ANY (+RW +ZI) } ну или alt+f7 и там поменять, если глубже лезть не хочется.
  15. Считать за секунду количество полупериодов и использовать его в следующей секунде. Прикинуть шаг=(процент=0-100)/(число полупериодов=~100) На каждый полупериод прибавлять шаг. Если сумма стала больше единицы, то пропускаем этот полупериод в нагрузку и вычитаем из суммы единицу. Надо ли при этом делать так, чтобы число положительных и отрицательных полупериодов было примерно равно? А то на 50% выходит однополярный выпрямитель. Или это простительно?