Jump to content

    

Search the Community

Showing results for tags 'stm32f'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Сайт и форум
    • Новости и обсуждения сайта и форума
    • Другие известные форумы и сайты по электронике
    • В помощь начинающему
    • International Forum
    • Образование в области электроники
    • Обучающие видео-материалы и обмен опытом
  • Cистемный уровень проектирования
    • Вопросы системного уровня проектирования
    • Математика и Физика
    • Операционные системы
    • Документация
    • Системы CAD/CAM/CAE/PLM
    • Разработка цифровых, аналоговых, аналого-цифровых ИС
    • Электробезопасность и ЭМС
    • Управление проектами
    • Neural networks and machine learning (NN/ML)
  • Программируемая логика ПЛИС (FPGA,CPLD, PLD)
    • Среды разработки - обсуждаем САПРы
    • Работаем с ПЛИС, области применения, выбор
    • Языки проектирования на ПЛИС (FPGA)
    • Системы на ПЛИС - System on a Programmable Chip (SoPC)
  • Цифровая обработка сигналов - ЦОС (DSP)
    • Сигнальные процессоры и их программирование - DSP
    • Алгоритмы ЦОС (DSP)
  • Микроконтроллеры (MCs)
    • Cредства разработки для МК
    • ARM
    • AVR
    • MSP430
    • Все остальные микроконтроллеры
    • Отладочные платы
  • Печатные платы (PCB)
    • Разрабатываем ПП в САПР - PCB development
    • Работаем с трассировкой
    • Изготовление ПП - PCB manufacturing
  • Сборка РЭУ
  • Аналоговая и цифровая техника, прикладная электроника
  • Силовая Электроника - Power Electronics
  • Интерфейсы
  • Поставщики компонентов для электроники
  • Майнеры криптовалют и их разработка, BitCoin, LightCoin, Dash, Zcash, Эфир
  • Дополнительные разделы - Additional sections

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Сайт


ICQ


Yahoo


Jabber


Skype


Город


Код проверки


skype


Facebook


Vkontakte


LinkedIn


Twitter


G+


Одноклассники

Found 1 result

  1. Баг ли stm32

    Добрый день. Попал недавно в ситуацию аналогичную той, которая случилась когда я работал давным-давно автослесарем, ремонтируя крайслеры. Приехал клиент на Чероки, старом еще, похожим на кирпичь. Я спросил, что у него болит и был оочень удивлён его абсолютно нестандартным ответом. Мужик достал лист А4 весь исписанный убористым почерком и начал "констатировать симптомы". "При повороте налево при скорости от 10 до 20 км/ч дребезг в районе раздатки, при торможении на скорости 40-60 км/ч постукивание заднего моста, на неровной дороге громыхание по всему кузову и т.д. и т.п........". Через минуту, когда моё удивление прошло, и мужик уже добрался до второй трети своих недугов, я его решительно остановил, забрался под машину даже не утруждаясь поднять её на подъёмнике и двумя пластиковыми хомутами закрепил троссики стояночного тормоза. Не обращая внимание на возражения владельца машины что "Он ещё не все неисправности мне описал", отправил его на обкатку. Через пять минут вернулся клиент, ещё более удивлённый, чем до этого был я. Конечно его первый вопрос "А что было то???". А быто просто то, что пластиковые клипсы крепления двух троссов стояночного тормоза к балкам кузова развалились и троссы стучали по кузову, по рычагам. Что касается настоящего времени. Делаю я контактную сварку с управлением по току с помощью n-го кол-ва симисторов, коммутирующих первичку транса. Выбрал для этого китайскую платку с stm32f030f4 rev.A. Ног всего 20, катастрофически нехватает, но 2 я оставил для USART - в дальнейшем хочу прикрутить к сварке еще другие узлы. Программа заливается по stlink через плату stm32vldiscovery. На ней кроме stlink есть stm32f100RB rev.Z. На плате кнопка есть, светодиодиков два, и решил я с неё по USART управлять stm32f030f4 для включения транса просто отправляя байтик. Приборов особых нет, что бы визуализировать передачу на ногу TX USART1 stm32f100RB повесил светодиод, в baud rate register забил 0xFFFF, тактирование APB2 уменьшил на 8 (USART1 сидит на APB2, всё тактируется от HSI 8MHz) и ...... ничего не получил. Даже idle line. Светодиод не засветился. Налетел я на первый косяк с выбором baud rate. Дело в том, что в RM0360 про stm32f030f4, в параграфе про auto baud rate указано минимальное значение для скорости передачи - fCK/65535. Вот я и забил 0xFFFF. После недели плясок с бубном нашёл предельное значение - 0xFFF7. Оно оказалось одинаково для всех чипов которые у меня есть - stm030, stm051, stm100, stm303, stm334. Правда в отличии от stm100 у всех остальных idle line активировалось, но передачи при 0xFFFF не было. Решив этот косяк я напоролся вооще на непонятное мне поведение stm32f100RB в данном коде: movs r10,#0 movs r11,#1 ;Handler mode EXTI0_IRQ_ PROC cpsid i ldr r0,=USART1_DR movs r1,#2_11010111 strh r1,[r0] ldr r0,=GPIOC_BSRR movw r1,#0x200 str r1,[r0] mov32 r2,#0x7A1200 LEDloop subs r2,#1 BNE LEDloop lsl r1,#16 str r1,[r0] ldr r0,=a_EXTI_PR0 str r11,[r0] ;clear interrupt flag in EXTI_PR0 cpsie i BX LR ALIGN ENDP - кнопка на ноге A0 и запускает обработчик внешнего прерывания EXTI0. В нем загорается светодиод, USART1 выталкивает байт, потом цикл считает до 8000000, делая задержку в 3 сек, гаснет светодиод и наконец снимается флаг отложенного прерывания в модуле внешних прерываний и выход из EXTI0. Всё вроде просто, но ! Байт выталкивался дважды! и задержка была 6 сек. Очередные пляски с бубном и, оказывается, что это происходит, когда делитель APB2 больше чем 4. В остальных случаях всё нормально. Тут я встал на путь владелца Черокки, испытал это на разных контроллерах, с прерываниями от разных источников, с разными baud rate, на разных шинах, получил совершенно непохожие результаты и запутался окончательно. Решение было как с пластиковыми хомутами. Подказали мне его на stm community forum, но в какой странной форме "Всем хорошо известно, что необходимо сразу же после входа в обработчик прерывания, стнят флаг этого прерывания в модуле, который его вызвал". Это где же "хорошо известно"??? Я весь референс мануал прчитал и не нашёл "хорошо известных" рекрмендаций!! Ну и напоследок нашёл еще одну ж..у с внешним прерыванием. Необходимо при входе в обработчик не только сразу же снять флаг, но и маскировать это прерывание, иначе, если нет приборной компенсации дребезга контактов, произойдет ложный вызов обработчика, и включить его перед выходом. Вот так: movs r10,#0 movs r11,#1 ;Handler mode EXTI0_IRQ_ PROC cpsid i movs r10,#0 movs r11,#1 ldr r3,=a_EXTI_IMR0 str r10,[r3] ldr r0,=a_EXTI_PR0 str r11,[r0] ;clear interrupt flag in EXTI_PR0 ldr r0,=USART3_DR movs r1,#2_11010111 strh r1,[r0] ldr r0,=GPIOC_BSRR movw r1,#0x200 str r1,[r0] mov32 r2,#0x7A1200 LEDloop subs r2,#1 BNE LEDloop lsl r1,#16 str r1,[r0] str r11,[r3] cpsie i BX LR ALIGN ENDP