Русские Блоги
1, нужно использовать микросигнал:
Автор изменит его до 10k, что удобно использовать, как для того, как распределить кучу в определенной среде, пожалуйста, рассмотрите читатель
Примечание. Файл запуска — это файл запуска, соответствующий микроконтроллеру. Один из них поставляется с KEIL, или на соответствующем официальном загрузке веб-сайта, файл запуска автора
malloc behaviour on an embedded system
I’m currently working on an embedded project (STM32F103RB, CooCox CoIDE v.1.7.6 with arm-none-eabi-gcc 4.8 2013q4) and I’m trying to understand how malloc() behaves on plain C when the RAM is full.
My STM32 has 20kB = 0x5000Bytes of RAM, 0x200 are used for the stack.
I would expect malloc() to return NULL as soon as the heap is too small for allocating:
0x5000 (RAM) — 0x83C (bss) — 0x200 (stack) = 0x45C4 (heap)
So when executing the malloc() for the 18th time. One item is 1024= 0x400 Bytes large.
But instead the uC calls the HardFault_Handler(void) after the 18th time (not even the MemManager_Handler(void) )
Does anybody have an advice how to forecast a malloc() failure — since waiting for a NULL return doesn’t seem to work.
![]()
5 Answers 5
It does not look like malloc is doing any checks at all. The fault that you get comes from hardware detecting a write to an invalid address, which is probably coming from malloc itself.
When malloc allocates memory, it takes a chunk from its internal pool, and returns it to you. However, it needs to store some information for the free function to be able to complete deallocation. Usually, that’s the actual length of the chunk. In order to save that information, malloc takes a few bytes from the beginning of the chunk itself, writes the info there, and returns you the address past the spot where it has written its own information.
For example, let’s say you asked for a 10-byte chunk. malloc would grab an available 16-byte chunk, say, at addresses 0x3200..0x320F , write the length (i.e. 16) into bytes 1 and 2, and return 0x3202 back to you. Now your program can use ten bytes from 0x3202 to 0x320B . The other four bytes are available, too — if you call realloc and ask for 14 bytes, there would be no reallocation.
The crucial point comes when malloc writes the length into the chunk of memory that it is about to return to you: the address to which it writes needs to be valid. It appears that after the 18-th iteration the address of the next chunk is negative (which translates to a very large positive) so CPU traps the write, and triggers the hard fault.
In situations when the heap and the stack grow toward each other there is no reliable way to detect an out of memory while letting you use every last byte of memory, which is often a very desirable thing. malloc cannot predict how much stack you are going to use after the allocation, so it does not even try. That is why the byte counting in most cases is on you.
In general, on embedded hardware when the space is limited to a few dozen kilobytes, you avoid malloc calls in «arbitrary» places. Instead, you pre-allocate all your memory upfront using some pre-calculated limits, and parcel it out to structures that need it, and never call malloc again.
Your program most likely crashes because of an illegal memory access, which is almost always an indirect (subsequent) result of a legal memory access, but one that you did not intend to perform.
For example (which is also my guess as to what’s happening on your system):
Your heap most likely begins right after the stack. Now, suppose you have a stack-overflow in main . Then one of the operations that you perform in main , which is naturally a legal operation as far as you’re concerned, overrides the beginning of the heap with some «junk» data.
As a subsequent result, the next time that you attempt to allocate memory from the heap, the pointer to the next available chunk of memory is no longer valid, eventually leading to a memory access violation.
So to begin with, I strongly recommend that you increase the stack size from 0x200 bytes to 0x400 bytes. This is typically defined within the linker-command file, or through the IDE, in the project’s linker settings.
If your project is on IAR, then you can change it in the icf file:
Other than that, I suggest that you add code in your HardFault_Handler , in order to reconstruct the call-stack and register values prior to the crash. This might allow you to trace the runtime error and find out exactly where it happened.
In file ‘startup_stm32f03xx.s’, make sure that you have the following piece of code:
Then, in the same file, add the following interrupt handler (where all other handlers are located):
Then, in file ‘stm32f03xx.c’, add the following ISR:
If you can’t use printf at the point in the execution when this specific Hard-Fault interrupt occurs, then save all the above data in a global buffer instead, so you can view it after reaching the while (1) .
Then, refer to the ‘Cortex-M Fault Exceptions and Registers’ section at http://www.keil.com/appnotes/files/apnt209.pdf in order to understand the problem, or publish the output here if you want further assistance.
UPDATE:
In addition to all of the above, make sure that the base address of the heap is defined correctly. It is possibly hard-coded within the project settings (typically right after the data-section and the stack). But it can also be determined during runtime, at the initialization phase of your program. In general, you need to check the base addresses of the data-section and the stack of your program (in the map file created after building the project), and make sure that the heap does not overlap either one of them.
I once had a case where the base address of the heap was set to a constant address, which was fine to begin with. But then I gradually increased the size of the data-section, by adding global variables to the program. The stack was located right after the data-section, and it «moved forward» as the data-section grew larger, so there were no problems with either one of them. But eventually, the heap was allocated «on top of» part of the stack. So at some point, heap-operations began to override variables on the stack, and stack-operations began to override the contents of the heap.
Простейшее профилирование памяти на STM32 и других микроконтроллерах
Как ни странно, но в абсолютном большинстве виденных мной «учебников для начинающих» по STM32 в частности и микроконтроллерам вообще нет, как правило, вообще ничего про такую вещь, как распределение памяти, размещение стека и, главное, недопущение переполнения памяти — в результате которого одна область перетирает другую и всё рушится, обычно с феерическими эффектами.
Отчасти это объясняется простотой учебных проектов, выполняемых при этом на отладочных платах с относительно жирными микроконтроллерами, на которых влететь в нехватку памяти, мигая светодиодом, довольно сложно — однако в последнее время даже у начинающих любителей мне всё чаще встречаются упоминания, например, контроллеров типа STM32F030F4P6, простых в монтаже, стоящих копейки, но и памяти имеющих единицы килобайт.
Такие контроллеры позволяют делать вполне себе серьёзные штуки (ну вот у нас, например, такая вполне себе годная измериловка сделана на STM32F042K6T6 с 6 КБ ОЗУ, от которых свободными остаются чуть больше 100 байт), но при обращении с памятью при работе с ними нужна определённая аккуратность.
Об этой аккуратности и хочу поговорить. Статья будет короткая, профессионалы ничего нового не узнают — но начинающим эти знания очень рекомендуется иметь.
В типовом проекте на микроконтроллере на ядре Cortex-M оперативная память имеет условное разделение на четыре секции:
- data — данные, инициализируемые конкретным значением
- bss — данные, инициализируемые нулём
- heap — куча (динамическая область, из которой память выделяется явным образом с помощью malloc)
- stack — стек (динамическая область, из которой память выделяется компилятором неявным образом)
Расположены они в физической памяти довольно специфическим образом — дело в том, что стек в микроконтроллерах на ядрах ARM растёт сверху вниз. Поэтому он располагается отдельно от остальных блоков памяти, в конце ОЗУ:

По умолчанию его адрес обычно равен самому последнему адресу ОЗУ, и оттуда он по мере роста опускается вниз — и из этого растёт одна крайне неприятная особенность стека: он может дотянуться до bss и перезаписать его верхушку, причём никаким явным образом вы про это не узнаете.
Статические и динамические области памяти
Вся память делится на две категории — статически выделяемая, т.е. память, общий объём который очевиден из текста программы и не зависит от порядка её выполнения, и динамически выделяемая, потребный объём которой зависит от хода выполнения программы.
К последней относятся куча (из которой мы берём куски с помощью malloc и возвращаем с помощью free) и стек, который растёт и уменьшается «сам по себе».
Вообще говоря, использовать malloc на микроконтроллерах настоятельно не рекомендуется, если вы не знаете абсолютно точно, что вы делаете. Основной привносимой им проблемой является фрагментация памяти — если вы выделите 10 кусочков по 10 байт, а потом освободите каждый второй, то вы не получите свободных 50 байт. Вы получите 5 свободных кусков по 10 байт.
Кроме того, на этапе компиляции программы компилятор не сможет автоматически определить, сколько памяти потребует ваш malloc (тем более — с учётом фрагментации, которая зависит не просто от размера запрошенных кусков, а от последовательности их выделения и освобождения), и потому не сможет вас предупредить, если памяти в итоге не хватит.
Методы обхода этой проблемы есть — специальные реализации malloc, которые работают в рамках статически выделенной области, а не всего ОЗУ, аккуратное употребление malloc с учётом возможной фрагментации на уровне логики программы и т.п. — но в общем и целом malloc лучше не трогать.
Все области памяти с границами и адресами прописаны в файле с расширением LD, на который ориентируется линковщик при сборке проекта.
Статически выделяемая память
Итак, из статически выделяемой памяти у нас есть две области — bss и data, отличающиеся только формально. При инициализации системы блок data копируется из флэша, где для него сохранены нужные значения инициализации, блок bss просто заполняется нулями (по крайней мере, заполнить его нулями считается хорошим тоном).
Обе вещи — копирование из флэша и заполнение нулями — делаются в коде программы в явном виде, но не в вашем main(), а в отдельном файле, который выполняется первым, пишется один раз и просто таскается из проекта в проект.
Впрочем, интересует нас сейчас не это — а то, как мы поймём, влезают ли вообще наши данные в ОЗУ нашего контроллера.
Это узнаётся очень просто — утилитой arm-none-eabi-size с единственным параметром — скомпилированным ELF-файлом нашей программы (часто её вызов вставляют в конец Makefile, потому что удобно):

Здесь text — это объём данных программы, лежащих во флэше, а bss и data — наши статически выделенные области в ОЗУ. Последние две колонки нас не волнуют — это сумма первых трёх, она не имеет практического смысла.
Итого, статически в ОЗУ нам нужны bss + data байт, в данном случае — 5324 байта. У контроллера есть 6144 байта ОЗУ, malloc мы не используем, остаётся 820 байт.
Которых нам должно хватить на стек.
Но хватит ли? Потому что если нет — наш стек дорастёт до наших же данных, и далее сначала он затрёт данные, потом данные затрут его, а потом всё рухнет. Причём между первым и вторым пунктами программа может продолжать работать, не осознавая, что в обрабатываемых ей данных — мусор. В худшем случае это будут данные, которые вы записали, когда со стеком было всё в порядке, а теперь только читаете — например, калибровочные параметры какого-нибудь датчика — и тогда у вас вообще нет очевидного способа понять, что с ними всё плохо, при этом программа продолжит выполняться, как ни в чём не бывало, выдавая вам на выходе мусор.
Динамически выделяемая память
И вот тут начинается самое интересное — если сократить сказку до одной фразы, то заранее определить размер стека практически невозможно.
Чисто теоретически, вы можете попросить компилятор выдать вам размер стека, используемый каждой отдельной функцией, потом попросить его же выдать дерево выполнения вашей программы, и для каждой ветви в нём просчитать сумму стеков всех присутствующих в этом дереве функций. Одно это для любой более-менее сложной программы займёт у вас крайне немалое время.
Потом вы вспомните, что в любой момент может случиться прерывание, обработчику которого тоже нужна память.
Потом — что могут случиться два или три вложенных прерывания, обработчикам которых…
В общем, вы поняли. Попробовать посчитать стек для конкретной программы — занятие увлекательное и в целом полезное, но часто вы это делать не будете.
Поэтому на практике используется один приём, позволяющий хоть как-то понять, всё ли у нас в жизни складывается хорошо — так называемая «окраска памяти» (memory painting).
Что удобно в этом методе — так это то, что он никак не зависит от используемых вами средств отладки, и при наличии у системы хоть каких-то средств вывода информации позволяет обойтись без средств отладки вообще.
Суть его в том, что мы заливаем весь массив от конца bss до начала стека где-то на самой ранней стадии выполнения программы, когда стек ещё точно маленький, одним и тем же значением.
Далее, проверяя, на каком адресе это значение уже пропало, мы понимаем, куда опускался стек. Так как однажды стёртая окраска сама не восстановится, то проверку можно делать эпизодически — она покажет максимальный достигавшийся размер стека.
Определим цвет краски — конкретное значение неважно, ниже я просто настучал двумя пальцами левой руки. Главное — не выбирать 0 и FF:
В самом-самом начале программы, вот прямо в стартап-файле, зальём всю свободную память этой краской:
Что мы тут сделали? Ассемблерная вставка присвоила переменной top значение, равное текущему адресу стека — чтобы его случайно не затереть; в переменной start — адрес конца блока bss (переменную, в которой он хранится, я подсмотрел в скрипте линковщика *.ld — в данном случае он от библиотеки libopencm3). Далее мы просто заливаем всё от конца bss до начала стека одним и тем же значением.
После этого мы в любой момент можем сделать так:
Здесь переменная _ebss нам уже знакома, а переменная _stack — из того же скрипта линковщика, в нём она означает верхний адрес стека, то есть, в данном случае, просто конец ОЗУ.
Вернёт эта функция максимальный зафиксированный размера стека в байтах.
Дальнейшая логика достаточно проста — где-нибудь в теле программы периодически вызываем check_stack_size() и выводим его выхлоп в консоль, на экран или куда нам удобно его вывести, и запускаем устройство в боевую эксплуатацию на период, который считаем достаточно продолжительным.
Периодически смотрим на размер стека.
В данном случае различными хаотическими действиями с устройством его удаётся довести до 712 байт — то есть из имевшихся изначально 6 Кбайт ОЗУ у нас остаётся запас ещё в целых 108 байт.
Word of caution
Экспериментальный метод определения размера стека — простой, эффективный, но не 100-% надёжный. Всегда может сложиться ситуация, когда очень редкое стечение обстоятельств, наблюдаемое, например, раз в год, приведёт к незапланированному повышению этого размера. Впрочем, в общем случае и при грамотно написанной прошивке можно считать, что вряд ли у вас случится что-то, перехлёстывающие зафиксированный размер более чем на 10-20 %, так что мы с нашими 108 байтами запаса с высокой степенью уверенности находимся в безопасности.
В большинстве же случаев такое квазипрофилирование, легко и просто выполняемое практически на любой системе и независимо от используемых средств разработки, позволяет с высокой достоверностью определить эффективность использования памяти и поймать проблему со стеком на ранних стадиях, особенно при работе на младших контроллерах с ОЗУ размером в единицы килобайт.
Keil malloc stm32 как увеличить
- />1 марта
- Тема:Работа сайта и сервера
- От:makc
- />1 марта
- Тема:Работа сайта и сервера
- От:makc
—>
Другие известные форумы и сайты по электронике
все что посвящено электронике и общению специалистов. реклама других ресурсов.
- Магазины
- Форумы и конференции
- Производители
- Информационные ресурсы
- Поисковики
- FTP-серверы
- />8 февраля
- Тема:Куда пропал доступ к www.ti.com
- От:jcxz
- />8 февраля
- Тема:Куда пропал доступ к www.ti.com
- От:jcxz
—>
В помощь начинающему
вопросы начального уровня
Модераторы раздела VAI
aosp
SergM
fill
vetal
KRS
Alexandr
des00
Uladzimir
Rst7
iosifk
ViKo
Herz
l1l1l1
Tanya
Сергей Борщ
Omen_13
Vasily_
Егоров
Walrus 
- ARM, 32bit
- MCS51, AVR, PIC, STM8, 8bit
- Программирование
- Схемотехника
- Интерфейсы
- />4 часа назад
- Тема:Калибровка датчика тока на эффекте Холла
- От:Vasil_Riabko
- />4 часа назад
- Тема:Калибровка датчика тока на эффекте Холла
- От:Vasil_Riabko
—>
International Forum
This is a special forum for English spoken people, read it first.
- />25 февраля
- От:HardEgor
- />25 февраля
- От:HardEgor
—>
Образование в области электроники
все что касается образования, процесса обучения, студентам, преподавателям.
Модераторы раздела des00 
- />9 часов назад
- Тема:Курсы на тему СВЧ-электроники
- От:Vasil_Riabko
- />9 часов назад
- Тема:Курсы на тему СВЧ-электроники
- От:Vasil_Riabko
—>
Обучающие видео-материалы и обмен опытом
Обсуждение вопросов создания видео-материалов
Модераторы раздела iosifk 
- />17 февраля
- Тема:Dilduino
- От:k155la3
- />17 февраля
- Тема:Dilduino
- От:k155la3
Cистемный уровень проектирования
-
Последнее сообщение
—>
Вопросы системного уровня проектирования
Применение MATLAB, Simulink, CoCentric, SPW, SystemC ESL, SoC
Модераторы раздела Rst7 
- />Четверг в 10:11
- Тема:Снова о z-преобразовании
- От:_sda
- />Четверг в 10:11
- Тема:Снова о z-преобразовании
- От:_sda
—>
Математика и Физика
Модераторы раздела Rst7 
- />Вторник в 00:35
- Тема:Предикат или квантор?
- От:ch_19
- />Вторник в 00:35
- Тема:Предикат или квантор?
- От:ch_19
—>
Операционные системы
Linux, Win, DOS, QNX, uCOS, eCOS, RTEMS и другие
Модераторы раздела Rst7 
- Программирование
- Linux
- uC/OS-II
- scmRTOS
- FreeRTOS
- Android
- />Вторник в 20:21
- Тема:Установка Windows XP на современный ПК 2020 года
- От:Zoltrix
- />Вторник в 20:21
- Тема:Установка Windows XP на современный ПК 2020 года
- От:Zoltrix
—>
Документация
оформление документации и все что с ней связано
Модераторы раздела Rst7 
- />17 часов назад
- Тема:Как делают документацию для микроконтроллеров их…
- От:Yra
- />17 часов назад
- Тема:Как делают документацию для микроконтроллеров их…
- От:Yra
—>
Системы CAD/CAM/CAE/PLM
обсуждение САПР AutoCAD, Компас, SolidWorks и др.
- />5 февраля
- Тема:Ошибка установки Solidworks
- От:baumanets
- />5 февраля
- Тема:Ошибка установки Solidworks
- От:baumanets
—>
Разработка цифровых, аналоговых, аналого-цифровых ИС
Модераторы раздела Rst7 
- />Вчера в 17:12
- Тема:Reference designs
- От:nikitaborodenkov
- />Вчера в 17:12
- Тема:Reference designs
- От:nikitaborodenkov
—>
Электробезопасность и ЭМС
Обсуждение вопросов электробезопасности и целостности сигналов
Модераторы раздела Rst7 
- ЭМС
- Электробезопасность
- />3 марта
- Тема:Типовые схемы защиты от микросекундных помех
- От:HardEgor
- />3 марта
- Тема:Типовые схемы защиты от микросекундных помех
- От:HardEgor
—>
Управление проектами
Управление жизненным циклом проектов, системы контроля версий и т.п.
Модераторы раздела Rst7 
- />30 октября, 2022
- Тема:Как тестировать разработанную электронику и встр…
- От:KBH
- />30 октября, 2022
- Тема:Как тестировать разработанную электронику и встр…
- От:KBH
—>
Нейронные сети и машинное обучение (NN/ML)
Форум для обсуждения вопросов машинного обучения и нейронных сетей
Модераторы раздела Rst7 
- />4 марта
- Тема:Модуль на VHDL кусочно-линейной (семь участков) …
- От:Мур
- />4 марта
- Тема:Модуль на VHDL кусочно-линейной (семь участков) …
- От:Мур
Программируемая логика ПЛИС (FPGA,CPLD, PLD)
-
Последнее сообщение
—>
Среды разработки — обсуждаем САПРы
Quartus, MAX, Foundation, ISE, DXP, ActiveHDL и прочие.
возможности, удобства.
Модераторы раздела vetal />des00 />
- />17 часов назад
- Тема:Gowin EDA — релизы и общие вопросы
- От:Zversky
- />17 часов назад
- Тема:Gowin EDA — релизы и общие вопросы
- От:Zversky
—>
Работаем с ПЛИС, области применения, выбор
на чем сделать? почему не работает? кто подскажет?
Модераторы раздела vetal />des00 />
- />Вчера в 21:45
- Тема:PLD Altera EPMxxxx+генератор 100МГц: как организ…
- От:tegumay
- />Вчера в 21:45
- Тема:PLD Altera EPMxxxx+генератор 100МГц: как организ…
- От:tegumay
—>
Языки проектирования на ПЛИС (FPGA)
Verilog, VHDL, AHDL, SystemC, SystemVerilog и др.
Модераторы раздела aosp
vetal
des00 
- />41 минута назад
- Тема:Verilog, переменные в индексах массивов
- От:Jackov
- />41 минута назад
- Тема:Verilog, переменные в индексах массивов
- От:Jackov
—>
Системы на ПЛИС — System on a Programmable Chip (SoPC)
разработка встраиваемых процессоров и периферии для ПЛИС
Модераторы раздела vetal
des00
Omen_13 
- />9 часов назад
- Тема:Плата zcu102. Проблема "pcie link is down"
- От:Lom
- />9 часов назад
- Тема:Плата zcu102. Проблема "pcie link is down"
- От:Lom
Цифровая обработка сигналов — ЦОС (DSP)
-
Последнее сообщение
—>
Сигнальные процессоры и их программирование — DSP
Обсуждение различных сигнальных (DSP) процессоров, возможностей, совместимости и связанных с этим тем.
Модераторы раздела des00 
- />Четверг в 17:09
- Тема:SAU510USB Iso-Plus
- От:Alex11
- />Четверг в 17:09
- Тема:SAU510USB Iso-Plus
- От:Alex11
—>
Алгоритмы ЦОС (DSP)
Обсуждение вопросов разработки и применения (программирования) алгоритмов цифровой обработки сигналов.
Модераторы раздела des00 
- />Вчера в 18:47
- Тема:организация семплирования
- От:thermit
- />Вчера в 18:47
- Тема:организация семплирования
- От:thermit
Микроконтроллеры (MCU)
-
Последнее сообщение
—>
Cредства разработки для МК
FAQ, How-to, тонкости работы со средствами разработки
Модераторы раздела haker_fox 
- IAR
- Keil
- GNU/OpenSource средства разработки
- />16 часов назад
- Тема:Not a genuine ST Device! Abort connection
- От:zheka
- />16 часов назад
- Тема:Not a genuine ST Device! Abort connection
- От:zheka
—>
Модераторы раздела haker_fox 
- STM
- NXP
- Microchip (Atmel)
- TI, Allwinner, GigaDevice, Nordic, Espressif и другие
- />43 минуты назад
- Тема:Allwinner V3s BareMetal -попытки
- От:AntonGaribov
- />43 минуты назад
- Тема:Allwinner V3s BareMetal -попытки
- От:AntonGaribov
—>
RISC-V
Микроконтроллеры на базе ядер RISC-V, RISC-X
Модераторы раздела haker_fox 
- />2 марта
- Тема:Тайминги интерфейсов CH569/CH565
- От:makc
- />2 марта
- Тема:Тайминги интерфейсов CH569/CH565
- От:makc
—>
Модераторы раздела haker_fox 
- />28 февраля
- Тема:DS1302 не тикает
- От:borodach
- />28 февраля
- Тема:DS1302 не тикает
- От:borodach
—>
MSP430
Модераторы раздела VAI />haker_fox />
- />3 часа назад
- Тема:Реверс прошивки MSP430F67791A
- От:Aries
- />3 часа назад
- Тема:Реверс прошивки MSP430F67791A
- От:Aries
—>
Все остальные микроконтроллеры
и все что с ними связано
Модераторы раздела haker_fox 
- PIC
- MCS51
- PowerQUICC
- HC(S)08
- AVR32
- STM8
- MIPS
- />8 часов назад
- Тема:Чем считать прошивку upsd3212cv-24u6 от ST?
- От:tiretrak
- />8 часов назад
- Тема:Чем считать прошивку upsd3212cv-24u6 от ST?
- От:tiretrak
—>
Отладочные платы
Вопросы, связанные с отладочными платами на базе МК: заказ, сборка, запуск
Модераторы раздела haker_fox 
- Arduino
- Raspberry Pi
- Rainbow
- Siberia
- EVMxxxx
- />9 часов назад
- Тема:China-Link, Вариант отладчика из Китая
- От:Akakiy
- />9 часов назад
- Тема:China-Link, Вариант отладчика из Китая
- От:Akakiy
Печатные платы (PCB)
-
Последнее сообщение
—>
Разрабатываем ПП в САПР — PCB development
FAQ, вопросы проектирования в ORCAD, PCAD, Protel, Allegro, Spectra, DXP, SDD, WG и др.
Модераторы раздела SergM />fill />
- Библиотеки компонентов
- Altium Designer, DXP, Protel
- P-CAD 200x howto
- Эремекс, Delta Design
- Cadence
- Примеры
- Zuken CADSTAR
- Siemens EDA — Xpedition, PADS (ex. Mentor)
- Бесплатные САПР: KiCAD, EasyEDA, EAGLE и др.
- />9 часов назад
- Тема:Автоматизация действий в Xpedition/PADS и редакт…
- От:uzzzer
- />9 часов назад
- Тема:Автоматизация действий в Xpedition/PADS и редакт…
- От:uzzzer
—>
Работаем с трассировкой
тонкости PCB дизайна, от Spectra и далее.
Модераторы раздела fill 
- />17 февраля
- Тема:Как правильно перевести скоростную дифф. пару с …
- От:DSIoffe
- />17 февраля
- Тема:Как правильно перевести скоростную дифф. пару с …
- От:DSIoffe
—>
Изготовление ПП — PCB manufacturing
Фирмы, занимающиеся изготовлением, качество, цены, сроки
Модераторы раздела fill 
- ПСБ Технолоджи
- ТеПро
- PS-Electro
- Резонит
- PCB Professional
- Абрис
- ОАО "НИЦЭВТ"
- ООО "М-Плата"
- в домашних условиях
- />Пятница в 07:43
- Тема:Новости Резонита
- От:anton.pushkov
- />Пятница в 07:43
- Тема:Новости Резонита
- От:anton.pushkov
Сборка РЭУ
-
Последнее сообщение
—>
Пайка и монтаж
вопросы сборки ПП, готовых изделий, а также устранения производственных дефектов
- />11 часов назад
- Тема:Sn64 Ag1 Bi35 как RoHS нормально паяет?
- От:iiv
- />11 часов назад
- Тема:Sn64 Ag1 Bi35 как RoHS нормально паяет?
- От:iiv
—>
Корпуса
обсуждаем какие есть копруса, где делать и прочее
- />28 февраля
- Тема:Моделирование силы продавливания платы
- От:destroit
- />28 февраля
- Тема:Моделирование силы продавливания платы
- От:destroit
—>
Вопросы надежности и испытаний
расчеты, методики, подбор компонентов
- />Пятница в 09:15
- Тема:Поверка контрольно-измерительного оборудования
- От:borodach
- />Пятница в 09:15
- Тема:Поверка контрольно-измерительного оборудования
- От:borodach
Аналоговая и цифровая техника, прикладная электроника
-
Последнее сообщение
—>
Вопросы аналоговой техники
разработка аналоговых схем, моделирование схем в SPICE, расчёты и анализ, выбор элементной базы
Модераторы раздела Alexandr
ViKo
Tanya
Егоров 
- />7 часов назад
- Тема:Измерительный 16-24 разрядный АЦП российского пр…
- От:nbn
- />7 часов назад
- Тема:Измерительный 16-24 разрядный АЦП российского пр…
- От:nbn
—>
Цифровые схемы, высокоскоростные ЦС
High Speed Digital Design
- />21 февраля
- Тема:Влияние положительных и отрицательных выбросов (…
- От:Plain
- />21 февраля
- Тема:Влияние положительных и отрицательных выбросов (…
- От:Plain
—>
RF & Microwave Design
wireless технологии и не только
Модераторы раздела l1l1l1 
- />Вчера в 21:36
- Тема:Вопросы по HFSS
- От:nicaraguanec
- />Вчера в 21:36
- Тема:Вопросы по HFSS
- От:nicaraguanec
—>
Метрология, датчики, измерительная техника
Все что связано с измерениями: измерительные приборы (осциллографы, анализаторы спектра и пр.), датчики, обработка результатов измерений, калибровка, технологии измерений и др.
Модераторы раздела ViKo />Tanya />
- />Вторник в 10:19
- Тема:Неблокирующее чтение из R&S ZNB? Кто-нибудь знае…
- От:khach
- />Вторник в 10:19
- Тема:Неблокирующее чтение из R&S ZNB? Кто-нибудь знае…
- От:khach
—>
АВТО электроника
особенности электроники любых транспортных средств: автомашин и мотоциклов, поездов, судов и самолетов, космических кораблей и летающих тарелок.
Модераторы раздела Vasily_ 
- />4 марта
- Тема:Провод для автомобильного компрессора
- От:byRAM
- />4 марта
- Тема:Провод для автомобильного компрессора
- От:byRAM
—>
Умный дом
- />26 февраля
- Тема:Как контролировать большое количество реле с пом…
- От:mitya1698
- />26 февраля
- Тема:Как контролировать большое количество реле с пом…
- От:mitya1698
—>
3D печать
3D принтеры, наборы, аксессуары, ПО
- />21 декабря, 2022
- Тема:slicer для 3d принтера
- От:Variant99
- />21 декабря, 2022
- Тема:slicer для 3d принтера
- От:Variant99
—>
Робототехника
Модели, классификация, решения, научные исследования, варианты применения
- />31 марта, 2022
- Тема:Подключение дисплея 3.2inch 320×240 Touch LCD (А…
- От:Aaronli
- />31 марта, 2022
- Тема:Подключение дисплея 3.2inch 320×240 Touch LCD (А…
- От:Aaronli
—>
Ремонт и отладка
обсуждение вопросов ремонта и отладки различных устройств и готовых изделий
Модераторы раздела Herz 
- />5 марта
- Тема:Ремонт оссцилографа Hantek dso5102p — проблема с…
- От:Zversky
- />5 марта
- Тема:Ремонт оссцилографа Hantek dso5102p — проблема с…
- От:Zversky
Силовая электроника — Power Electronics
-
Последнее сообщение
—>
Силовая Преобразовательная Техника
Источники питания электронной аппаратуры, импульсные и линейные регуляторы. Топологии AC-DC, DC-DC преобразователей (Forward, Flyback, Buck, Boost, Push-Pull, SEPIC, Cuk, Full-Bridge, Half-Bridge). Драйвера ключевых элементов, динамика, алгоритмы управления, защита. Синхронное выпрямление, коррекция коэффициента мощности (PFC)
Модераторы раздела Herz />Егоров />
- />Четверг в 23:24
- Тема:Помогите рассчитать тор
- От:Yuri7751
- />Четверг в 23:24
- Тема:Помогите рассчитать тор
- От:Yuri7751
—>
Обратная Связь, Стабилизация, Регулирование, Компенсация
Организация обратных связей в цепях регулирования, выбор топологии, обеспечение стабильности, схемотехника, расчёт
Модераторы раздела Herz />Егоров />
- />17 сентября, 2022
- Тема:Ограничение скорости нарастания сигнала ШИМ на д…
- От:Alex-lab
- />17 сентября, 2022
- Тема:Ограничение скорости нарастания сигнала ШИМ на д…
- От:Alex-lab
—>
Первичные и Вторичные Химические Источники Питания
Li-ion, Li-pol, литиевые, Ni-MH, Ni-Cd, свинцово-кислотные аккумуляторы. Солевые, щелочные (алкалиновые), литиевые первичные элементы. Применение, зарядные устройства, методы и алгоритмы заряда, условия эксплуатации. Системы бесперебойного и резервного питания
Модераторы раздела Herz />Егоров />
- />18 января
- Тема:Температура Li-ion аккумуляторов
- От:maksimdag0
- />18 января
- Тема:Температура Li-ion аккумуляторов
- От:maksimdag0
—>
Высоковольтные Устройства — High-Voltage
Высоковольтные выпрямители, умножители напряжения, делители напряжения, высоковольтная развязка, изоляция, электрическая прочность. Высоковольтная наносекундная импульсная техника
Модераторы раздела Herz 
- />7 февраля
- Тема:Маломощный трансформатор 220В -> 6000
- От:sanya221
- />7 февраля
- Тема:Маломощный трансформатор 220В -> 6000
- От:sanya221
—>
Электрические машины, Электропривод и Управление
Электропривод постоянного тока, асинхронный электропривод, шаговый электропривод, сервопривод. Синхронные, асинхронные, вентильные электродвигатели, генераторы
Модераторы раздела Herz 
- />17 февраля
- Тема:ABB DCS550-S02-0680-05 F508
- От:Oleg_Gordzei
- />17 февраля
- Тема:ABB DCS550-S02-0680-05 F508
- От:Oleg_Gordzei
—>
Индукционный Нагрев — Induction Heating
Технологии, теория и практика индукционного нагрева
Модераторы раздела Herz 
- />10 января
- Тема:Тиристорный инвертор
- От:Слесарь
- />10 января
- Тема:Тиристорный инвертор
- От:Слесарь
—>
Системы Охлаждения, Тепловой Расчет – Cooling Systems
Охлаждение компонентов, систем, корпусов, расчёт параметров охладителей
Модераторы раздела Herz 
- />23 февраля
- Тема:Тепловой расчет для КТ827А
- От:Valery-m
- />23 февраля
- Тема:Тепловой расчет для КТ827А
- От:Valery-m
—>
Моделирование и Анализ Силовых Устройств – Power Supply Simulation
Моделирование силовых устройств в популярных САПР, самостоятельных симуляторах и специализированных программах. Анализ устойчивости источников питания, непрерывные модели устройств, модели компонентов
Модераторы раздела Herz />Егоров />
- />8 февраля
- Тема:Micro-Cap
- От:Lnd
- />8 февраля
- Тема:Micro-Cap
- От:Lnd
—>
Компоненты Силовой Электроники — Parts for Power Supply Design
Силовые полупроводниковые приборы (MOSFET, BJT, IGBT, SCR, GTO, диоды). Силовые трансформаторы, дроссели, фильтры (проектирование, экранирование, изготовление), конденсаторы, разъемы, электромеханические изделия, датчики, микросхемы для ИП. Электротехнические и изоляционные материалы.
Модераторы раздела Herz />Егоров />
- />2 марта
- Тема:Замена Infineon
- От:Baza
- />2 марта
- Тема:Замена Infineon
- От:Baza
Интерфейсы
-
Последнее сообщение
—>
Форумы по интерфейсам
все интерфейсы здесь
- ISDN/G.703/E1
- ISA/PCI/PCI-X/PCI Express
- Wireless/Optic
- RS232/LPT/USB/PCMCIA/FireWire
- Fast Ethernet/Gigabit Ethernet/FibreChannel
- Интерфейсы для "интеллектуального дома"
- от ТТЛ до LVDS здесь
- IDE/ATA/SATA/SAS/SCSI/CF
- Аудио/Видео интерфейсы
- Сотовая связь и ее приложения
- FAQ по XPort/WiPort
- Controller Area Network (CAN)
- />Среда в 10:15
- Тема:SIM800 RTC установить и узнать время
- От:jcxz
- />Среда в 10:15
- Тема:SIM800 RTC установить и узнать время
- От:jcxz
Поставщики компонентов для электроники
-
Последнее сообщение
—>
Поставщики всего остального
от транзисторов до проводов
- />27 февраля
- Тема:Shenzhen BLS electronics
- От:Миша Чжу
- />27 февраля
- Тема:Shenzhen BLS electronics
- От:Миша Чжу
—>
Компоненты
Закачка тех. документации, обмен опытом, прочие вопросы.
- Тех. документация
- Микросхемы
- Транзисторы
- Диоды
- Резисторы
- Средства индикации
- />Вторник в 17:50
- Тема:Документация Hi3516EV300
- От:MaxBMSTU
- />Вторник в 17:50
- Тема:Документация Hi3516EV300
- От:MaxBMSTU
Майнеры криптовалют и их разработка, BitCoin, LightCoin, Dash, Zcash, Эфир
-
Последнее сообщение
—>
Обсуждение Майнеров, их поставки и производства
наблюдается очень большой спрос на данные устройства.
- />16 июля, 2021
- Тема:Материнские платы для майнинга
- От:Doka
- />16 июля, 2021
- Тема:Материнские платы для майнинга
- От:Doka
Дополнительные разделы — Additional sections
-
Последнее сообщение
—>
Встречи и поздравления
Предложения встретиться, поздравления участников форума и обсуждение мест и поводов для встреч.
Модераторы раздела VAI
aosp
SergM
vetal
KRS
Alexandr
des00
Uladzimir
Rst7
iosifk
ViKo
Herz
l1l1l1
Tanya
Сергей Борщ
Omen_13
Vasily_
Егоров
Walrus 
- />5 марта
- Тема:TIMTOS 2023: кто-то собирается?
- От:Ruslan1
- />5 марта
- Тема:TIMTOS 2023: кто-то собирается?
- От:Ruslan1
—>
Ищу работу
ищу работу, выполню заказ, нужны клиенты — все это сюда
Модераторы раздела VAI
aosp
SergM
vetal
KRS
Alexandr
des00
Uladzimir
Rst7
iosifk
ViKo
Herz
l1l1l1
Tanya
Сергей Борщ
Omen_13
Vasily_
Егоров
Walrus 
- />Четверг в 08:43
- Тема:Группа инженеров разработает почти любую электро…
- От:iBredihin
- />Четверг в 08:43
- Тема:Группа инженеров разработает почти любую электро…
- От:iBredihin
—>
Предлагаю работу
нужен постоянный работник, разовое предложение, совместные проекты, кто возьмется за работу, нужно сделать.
Модераторы раздела VAI
aosp
SergM
vetal
KRS
Alexandr
des00
Uladzimir
Rst7
iosifk
ViKo
Herz
l1l1l1
Tanya
Сергей Борщ
Omen_13
Vasily_
Егоров
Walrus 
- />6 часов назад
- Тема:Ищу программиста STM32, CH32V307 на удаленную ра…
- От:x893
- />6 часов назад
- Тема:Ищу программиста STM32, CH32V307 на удаленную ра…
- От:x893
—>
Куплю
микросхему; устройство; то, что предложишь ты 🙂
Модераторы раздела VAI
aosp
SergM
vetal
KRS
Alexandr
des00
Uladzimir
Rst7
iosifk
ViKo
Herz
l1l1l1
Tanya
Сергей Борщ
Omen_13
Vasily_
Егоров
Walrus 
- />Пятница в 21:05
- Тема:Куплю ЖКИ от Tektronix TDS 2022 KCS057QV1AJ-G39
- От:Zversky
- />Пятница в 21:05
- Тема:Куплю ЖКИ от Tektronix TDS 2022 KCS057QV1AJ-G39
- От:Zversky
—>
Продам
есть что продать за деньги, пиво, даром ?
Реклама товаров и сайтов также здесь.
Модераторы раздела VAI
aosp
SergM
vetal
KRS
Alexandr
des00
Uladzimir
Rst7
iosifk
ViKo
Herz
l1l1l1
Tanya
Сергей Борщ
Omen_13
Vasily_
Егоров
Walrus 
- />7 часов назад
- Тема:Продам MOSFETs STB43N65M5 1000 шт.
- От:TAutomatic
- />7 часов назад
- Тема:Продам MOSFETs STB43N65M5 1000 шт.
- От:TAutomatic
—>
Объявления пользователей
Тренинги, семинары, анонсы и прочие события
Модераторы раздела VAI
aosp
SergM
vetal
KRS
Alexandr
des00
Uladzimir
Rst7
iosifk
ViKo
Herz
l1l1l1
Tanya
Сергей Борщ
Omen_13
Vasily_
Егоров
Walrus 
- />Четверг в 11:38
- Тема:Макро Групп – поставщик твердотельных СВЧ-усилит…
- От:МакроГрупп
- />Четверг в 11:38
- Тема:Макро Групп – поставщик твердотельных СВЧ-усилит…
- От:МакроГрупп
—>
Общение заказчиков и потребителей электронных разработок
Обсуждение проектов, исполнителей и конкурсов
Модераторы раздела VAI
aosp
SergM
vetal
KRS
Alexandr
des00
Uladzimir
Rst7
haker_fox
iosifk
ViKo
Herz
l1l1l1
Tanya
Сергей Борщ
Omen_13
Vasily_
Егоров
Walrus 
- />18 декабря, 2022
- Тема:Как купить если ты не юрлицо?
- От:Dejmos
- />18 декабря, 2022
- Тема:Как купить если ты не юрлицо?
- От:Dejmos