Перейти к содержанию

Прот5

Members
  • Постов

    61
  • Зарегистрирован

  • Посещение

Весь контент Прот5

  1. все, вопрос снят.... если кому интересно - вместо USART1_IRQHandler надо использовать __irq_usart1(void), тогда все ок.
  2. Всем привет! Пытаюсь настроить прерывание на чтение USART1 без HAL/SPL напрямую обращаясь к регистрам в среде Arduino IDE и столкнулся с проблемой: обработчик прерывания не цепляется по всей видимости при линковке, т.е. само прерывание срабатывает при отправке на ком-порт, и сразу начинает мигать индикатор ошибки у Blue pill (stm32f103c)... в остальном все работает нормально, не работает именно RX у МК... причем, если не использовать прерывание на чтение, то RX так же не работает, т.е. если просто выставить биты RE, TE и UE.. то TX работает, а RX нет: ... void USART1_IRQHandler(void) { if (USART1_BASE->SR & USART_SR_RXNE) { } } void setup(){ ... RCC_BASE->APB2ENR |= (RCC_APB2ENR_USART1EN); USART1_BASE->BRR = 0x1D4C; //baudrate 9600 @72Mhz USART1_BASE->CR2 = (USART1_BASE->CR2&0xFFFF80FF);//обнуляем LINEN STOP[1:0] CLK EN CPOL CPHA LBCL USART1_BASE->CR3 = (USART1_BASE->CR3&0xFFFFF804);// обнуляем CTSIE CTSE RTSE DMAT DMAR SCEN NACK HDSEL IREN EIE USART1_BASE->CR1 |= USART_CR1_UE | USART_CR1_RE | USART_CR1_TE | USART_CR1_RXNEIE; noInterrupts(); NVIC_BASE->ISER[37/32] = BIT(37%32); // 37 - USART1 из Reference Manual'a interrupts();// вызывает внутри __enable_irq(), напрямую почему-то не определено и хрен знает какой хидер цеплять ... } ... Кто-нибудь сталкивался с подобным? Как без HAL SPL все это дело напрямую запилить, а точнее, чтобы линковщик обработчик USART1_IRQHandler вшил? Пробовал добавлять extern "C" { void USART1_IRQHandler(void){...} } ... тоже не помогло, причем если поставить после всех хидеров сразу с описанием внутренностей функции, то линковщик ругается "conflicts with new declaration with 'C' linkage".... а если перед setup(), то линкуется без ошибок, но видать выкидывает эту функцию.... не могу заставить его подхватить обработчик.
  3. нужен физический переключатель (3х позиционный с 2 путями), т.к. переключается boot0 на стм32 одновременно с резетом (1 путь у свича для переключения бут0, 2ой - для сброса). Схема с кондером работает удобно (щелкнул в одно крайнее положение и программируй, щелкнул в другое крайнее сброс + обычная работа, промежуток подвешен, что дает возможность кондеру разрядиться для очередного сброса и разряжается быстрее, чем щелкаешь), но я не знаю можно ли так конденсатор насиловать, чтоб он разряжался в обратку?
  4. он не закроется до тех пор пока к пину1 подтянуто 3.3в.... а с конденсатором закрывается после его заряда от 3.3в... а далее если переключить пин1 на 2.... то конденсатор разрядится, а транзистор останется при этом выключенным до следующего переключения пина 1 на 3.3в
  5. Ну вот мне это и не нравится, испортит ли это конденсатор? или в таком случае лучше ставить неполярный?
  6. Всем привет! Была задача через переключатель (switch, не кнопку) сделать кратковременный автоматический сброс МК. Задачу реализовал (картинка в аттаче) - надо сбросить, подтягиваю через свитч пин 1 к 3.3в и далее можно в подвешенное состание переключить либо не переключать вовсе, а когда надо скинуть снова, то переключить сначала в подвешенное состояние, если не было сделано до этого и потом опять на 3.3в переключить................. но вот интуиция подсказывает, что реализация кривая (не нравится наличие подтяжки к земле на плюсе кондера)..... конденсатор не разряжался через R40 (без R39, когда переводил переключатель в подвешенное состояние и обратно МК не сбрасывался повторно.... первый раз сбрасывается на ура, а далее нет) при подвешенном контакте 1 и разряжаться стал только когда вставил R39, что мне не особо нравится (заряд снимается сразу с обкладки анода через R39)....не выйдет ли из строя конденсатор при такой схеме подключения? Почему конденсатор не разряжается через R40, если накопившийся заряд от плюса к минусу должен идти? Как правильней реализовать задумку (по триггеру подавать ноль на RST пин МК и быстро возвращать в исходное состояние) или и так сойдет? Осциллограф показывает плавный разряд с небольшим резким спадом в начале разряда (на 1/4-1/5 от 3.3в), подача на гейт же резкая с 0 до 3.3в.
  7. @KomSoft Спасибо огромное за объяснение, многое стало понятно теперь! А вариант 1с) подразумевает толщину меди 2oz или 1oz?
  8. Спасибо за полезное инфо! Буду знать! Спасибо за подробное объяснение!! Не совсем понял только, это расчет для реализации лэйаута как на 1а? Макс темп кристалла 125гр - это Tj(junction)? на графиках почему-то есть еще Та=125гр (это покоя температура и соотв окружающей среды)? Получается, что не все потеряно и транзистор годен для тока до 4.5а!?
  9. @Ремирович Да, я пробовал на светодиоде с резистором и все изумительно работало, но там в плане понимания просто все было - питание одно было и к истоку земля цеплялась. А после к нмосфету доп источник питания подключил: минус к истоку, к стоку один конец нихрома, другой конец которого к плюсу и даже не думал, что минус еще на землю кинуть надо (считал что от плюса к минусу пойдет), причем затвор управлялся ардуино чз 1к и 10к кидал на минус, который подводил к истоку для подвешенной ситуации, потом кидал не на минус, а на землю...... в итоге в какой-то момент спалил один канал (пробил) и началось непонимание того почему при закрытом затворе ток идет..... потом только когда все отсоединил ,подключил опять светодиод с резистором понял это, когда переподключил его на второй канал, на котором все работало как надо. Далее уже к нему подключил все как на схеме и землю, как Вы правильно сказали и все заработало как надо и мосфет не греется особо, правда ток не сильный (около 400мА, т.к. сопротивление нихрома имеющейся длины у меня около 25 Ом, плюс провода от нихрома и крокодилы).... выделение тепла нихромом порядка 5-6Вт. Теперь вот думаю, что такой нмосфет не потянет ток 2.5-3.5а, несмотря на 7.5а в непрерывном режиме из даташита, если только не сделать "язык" теплоотвод к нему как в сноске 1а в даташите, хотя у транзистора на брюхе пластик.... вообще, не совсем понимаю всю информацию из даташита, особенно касающуюся температуры и тепла. В даташите написано 2Вт, неужели, сделав такой "язык" в 16.13мм2 под ним он реально будет выделять 2вт при токе 7.5а (пуская даже 5а)? Или же надо в другом корпусе транзистор смотреть то-252а (типа IRLR/U2905 42а 55в 110Вт), чтоб наверняка? Кстати, попытался сразу измерить напряжение между затвором и истоком - осциллограф показывал шим.
  10. Ладно, спасибо всем, извините что не по госту.... совсем не учел того, чтобы вопрос в разделе чайников задать, надо учебник по радиоэлектроннике и схемотехнике прочитать, а так же курсы соответствующие пройти.... но тогда и надобности в этом форуме и его разделе пропадут.... спасибо, кэп!)
  11. Я читал инфу про управление нагрузкой чз н-канал. мосфеты, про шим и нихром соотв.... так что вопрос задан ПОСЛЕ предварительного исследования. Даже ссылки на даташиты сразу вставляю, чтоб удобно было....
  12. Ребят, вы странные снобы.... описание раздела наверху почитайте - " Песочница (Q&A) Вопрос-Ответ. Для тех, кто совсем ничего не понимает в электронике" !!! Нарисовал в пэинте на скорую руку, скажите спасибо, что не карандашем, а линией чертил, иначе бызигзаги лицезрели, камрады..... прежде, чем отчитывать кого-либо раздел проверьте. Хорошо представляю, подключал нихром напрямую к аккумулятору... нихром грелся, ток бежал Если понять не можете где были измерения на схеме, ребенка своего спросите) Коммент по землю - ед. полезный набор букв, за что спасибо, особенно @Ремировичу, который без лишнего сарказма потратил свое время, чтобы доходчиво объяснить суть проблемы человеку далекому от электронники, за что ему спасибо! Проверю с землей, отпишусь. Не могу, т.к. грелку делаю.....
  13. Т.е. надо минус дс-дс с землей контроллера связать (не страшно, что у того 5в от пк, а у дс-дс 12в), без этого ток не побежит полноценно? Только я не совсем понимаю почему? Контроллером является ардуино и запитан от пк.... Кстати, нмосфет грелся до 45-49гр.цел. при выкл затворе, что тоже непонятно А ао3400 и вовсе сгорел, хотя по даташиту 5.8а выдерживать должен при макс 30в
  14. Всем привет! Не могу понять, что не так...."подключил" нихромовую нитку и dc-dc к Н-канальный мосфету, в качестве управляющего ШИМ сигнала - ардуиновский пин, который генерирует ШИМ. С ШИМом все ок....осциллографом проверил. При выключенном ШИМе (0), амперметр выдает ток не нулевой, если подсоединить его к плюсу dc-dc....либо вовсе к выходу мосфета (там другой ток выдает) и напряжение между концами нахромовой нити стабильно держится 5.хх в при закрытом гейте. А при открытом гейте на 4.95в, выдает напряжение на нихроме всего 7.хх вместо 12в..... По даташиту порог срабатывания гейта 0.6-1.5в, а у меня 0в.... почему: а) амперметр показывает ток в разных местах и почему он разный б) почему есть напряжение на концах нихромовой нитки в) почему при открытом гейте (4.95в) выдается около 7в (по даташиту не врубаюсь куда смотреть, чтобы понять какое напряжение на выходе будет при заданом на гейте) ? почему все 12в не получаются? Заранее спасибо за ответы!)
  15. Всем привет! Нужны коннекторы на 5а, 8а и 10а на плату на подобие kf2510/ph2.0/xh2.54 (такие в пределах 2-3а только по даташитам)! Есть такие? И вообще, насколько критично пускать перечисленные токи по kf2510/ph2.0/xh2.54 (пластик поплавится или в принципе тонкие)? И какой ток выдерживают обычные пины, которые к модулю крепятся? P.s. кроме терминалов (не особо нравится способ завинчивать провод болтиком, на дс-дс xl4015 постоянно один провод наровил отойти от такого коннектора) Спасибо!
  16. Кстати, против короткого замыкания, получается, ss14 не спас (на схеме выше видно его расположение) ? Нужен дополнительный шунтирующий на выходе диод на землю? или это в принципе не поможет с учетом того, что ams1117 перегревается жутко и выходит из строя?
  17. Нашел проблему!!!! дело вовсе не в амс1117.... а в кривом китайском модуле драйвера а4988, у которого вход ms2 закорочен с землей..... отсюда и амс1117 горел из-за кз, когда я с 0 на 5в пины переставлял........ нда....китайцы
  18. Спасибо большое, будем знать!)
  19. Спасибо, не знал. А если радиатор нацепить на пластик..поможет? И какой минимальный размер фольги припаять, чтоб он чувствовал себя в норме от ардуины и а4988? )) Есть пирометр в наличии....вроде измерял пластик, когда баловался....28гр показывал..... И вообще...как все это увязать с инфой из даташита амс1117, что "Output Current of 1A", если он даже 300мА не тянет ??? Инфа больше относится к 1.8 и тп ?
  20. A4988 logic input current (Vin(1)=Vdd*0.7=4.95*0.7=3.47v -- тут превысил подав все 5в) = максимум 20мА имеем 5 логических входов = 100мА Ардуино - atmega382p: absolute maximum Vcc & gnd pins = 200mA, IO pins = 40mA Итого ардуино максимум 200mA, A4988 = 100mA, P=UI=4.95v*0.3A=1.485W Из даташита monolitic AMS1117 мелкими буквами где-то в сноске "maximum power dissipation of 1.2 W for SOT-223".... Есть превышение, если я расчет верный сделал..... НО.... это максимумы...а в реальности (не замерял) потребление скорее всего ниже. Хотите сказать по мощности рассеивания не проходит? Он работал от силы меньше 30сек.... т.е. за это время успел перегреться что ли? P.S. Мне амс1117 нужен тут что бы проверить как будут работать smaj12ca-xe... не более того.... моторы в итоге будут питаться только от dc-dc 12v 5a, а все остальное от другого dc-dc на 5v 3a.... и работать от блока на 12в 10а
  21. А разве одного амс1117 обслужить ардуино (макс 100мА, но на деле все ~40мА) + логику а4988 (макс тоже до 40) мало? амс1117 до 800мА должен тянуть....а моторы...моторы отдель запитаны от dc-dc xl4015
  22. Ну, а в чем моя ошибка? Объясните, если знаете. Я за помощью сюда и обратился, чтобы помогли разобраться что не так? Не напрямую мс1-3 цеплять надо, а чз 10к?
  23. Забыл нарисовать!!! Земля конечно же была! Означает ли это, что амс1117 - г...?
  24. Повторил подвиг.....при этом добавил керамический конденсатор 100нФ на вход стаба и диод ss14 для защиты от реверсного напряжения (когда на выходе больше, чем на входе) Алгоритм действий: 1) сначала подсоединил все ms1-3 к земле......на этот раз без пк.....ардуино питалось тоже от 5в стаба..... раза 3-4 вкл/выкл питание.... все работает....мотор при включении питания начинает крутиться... оборот полный (все мс1-3 = 0).... отключаю мотор во время работы включаю..и так несколько раз все работает... заметил: при включении питания после его выключения во время работы мотор сначала медленно крутится 1-2сек, потом начинает на полную...... 2) выключил все.... подождал немного....у блока есть конденсатор внутри, который долго держит заряд... переподсоединил ms1-3 к 5в (выход стаба) - собственно перерисовал схему до полной..... включаю и....облако дыма от стаба (конкретно вздулось место между входом и выходом)....... ЧТО НЕ ТАК???? неужели ms1-3 подключать к выходу стаба нельзя???? )) ЧТО НЕ ТАК???? не могу понять...... стоит мс1-3 на 5в повесить как стаб горит..... я так понял даже защитный диод ss14 не помогает, если допустить реверс напряжения? И еще вопрос: Земля у a4988 общая (для 12в и для логики 5в), прозванивается...... так и должно быть или брак?
×
×
  • Создать...