

Neo_Matrix
Участник-
Публикаций
42 -
Зарегистрирован
-
Посещение
Тип контента
Профили
Форумы
Calendar
Весь контент Neo_Matrix
-
Eagle экспорт координат компонентов под автоматический монтаж.
Neo_Matrix опубликовал тема в Разрабатываем ПП в САПР - PCB development
Подскажите каким образом можно с Орла экспортировать данные о размещении компонентов? Формат файла должен соответствовать формату EasyEDA. Пример: https://docs.easyeda.com/en/Export/Export-Coordinate/index.html Как слить центры компонентов мне в принципе ясно, но что делать с остальным? При том производитель принимает только такой формат и никак иначе. -
Eagle экспорт координат компонентов под автоматический монтаж.
Neo_Matrix ответил Neo_Matrix в теме Разрабатываем ПП в САПР - PCB development
Как не странно, но приведенный выше скрин из стандартного набора "Птицы" : con-molex компонент SIM-CARD_496191611. -
Eagle экспорт координат компонентов под автоматический монтаж.
Neo_Matrix ответил Neo_Matrix в теме Разрабатываем ПП в САПР - PCB development
Спасибо за подсказку. С экселем все норм. Просто не могу понять отличия полей Mid X Y и Ref X Y. Первое это центр компонента. Второе это референсный центр компонента согласно документации(чего в даташитах я не наблюдал). По идее они ведь должны совпадать? В орле часть компонентов с крестом в левом нижнем углу, а не по центру.Допустим: -
Eagle экспорт координат компонентов под автоматический монтаж.
Neo_Matrix ответил Neo_Matrix в теме Разрабатываем ПП в САПР - PCB development
Спасибо. А как сама UPL называется не подскажите, не могу найти? Кроме того не ясно, как потом эту таблицу зачекать. Может есть софт по типу CAM350, где можно просмотреть расстановку компонентов после скрипта? -
Коммутатор цифровых сигналов с разными амплитудами.
Neo_Matrix опубликовал тема в Цифровые схемы, высокоскоростные ЦС
Возникла необходимость сделать "универсальный порт", который сможет объединить в себе три порта. В микроконтроллере имеется порт UART 3.3V, с него необходимо получить RS232, UART 3.3V, UART 5V, при этом выход идет на 4х контактный(Т.е. VCC, GND, RX, TX) разъем. Есть ли готовые решения под такую задачу? Или в MAX3232 можно отключать бустеры, но что делать с инвертированным сигналом? -
Коммутатор цифровых сигналов с разными амплитудами.
Neo_Matrix ответил Neo_Matrix в теме Цифровые схемы, высокоскоростные ЦС
Согласен, перепутал ее с 74LVC1G17DBV. -
Коммутатор цифровых сигналов с разными амплитудами.
Neo_Matrix ответил Neo_Matrix в теме Цифровые схемы, высокоскоростные ЦС
Опять же вопрос коммутации. Ведь не инверсный rs232 тоже нужен. -
Коммутатор цифровых сигналов с разными амплитудами.
Neo_Matrix ответил Neo_Matrix в теме Цифровые схемы, высокоскоростные ЦС
А что делать с ее инверсией? Логическая единица у rs232 меньше -3V. ПС: Процессор STM32F407 не имеет программной инверсии сигналов. -
Коммутатор цифровых сигналов с разными амплитудами.
Neo_Matrix ответил Neo_Matrix в теме Цифровые схемы, высокоскоростные ЦС
Уже думал над таким вариантом, но он немного удорожит устройство, так как нужен корпус, плата, стоимость монтажа мелких партий. Если все разместить на общей плате, можно попробовать снизить стоимость. Кроме того мы не избавляемся от проблемы многих кабелей, под разные устройства. ПС: Забудьте про стороны :) -
Коммутатор цифровых сигналов с разными амплитудами.
Neo_Matrix ответил Neo_Matrix в теме Цифровые схемы, высокоскоростные ЦС
Устройство должно работать с устройствами третьих лиц. К сожалению, я не виноват, что такие именитые производители, как Филлипс выводят наружу сигнал с логическими уровнями UART 5Вольт, при этом из защит там стоит делитель на резисторах и триггер-шмитта. А некоторые и вовсе пускают 3х вольтовую логику на внешний порт. В данной ситуации моя задача не исправлять косяки других производителей, а сделать устройство максимально гибко работающее со всеми типами интерфейсов. Блок питания разумеется общий для обеих устройств. Длина кабеля не превышает 50см. Как показала 2х годичная практика, не один порт не был сожжен. Но ранее на устройстве стоял разъем microfit на 8 контактов, и переключение интерфейсов решалось правильным обжимом кабеля, естественно это плодит кучу кабелей, документации на них.... но самое важное, на новом устройстве не хватает места под разъем более чем на 4контакта, использовать иные разъемы(не microfit) не хочется, так как они себя хорошо зарекомендовали, а с учетом криворукого обслуживающего персонала - разъемы меньшего калибра повыламывают к чертям. На моем устройстве ранее было сделано так: РС-232 порт подключался прямиком к разъему через резисторы и МАКС2323, порты ЮАРТ были выведены на соседние контакты из защиты стоял резистор за ним сапрессор(такого плана как на ЮСБ) + подтяжка, далее все было подключено к триггеру-шмитта, а после к процу. -
Использование #define значения в ASM KEIL
Neo_Matrix опубликовал тема в Keil
В заголовочном СИ файле определено: #define MAGIC_NUM 0x568978 const magic_number = MAGIC_NUM; Эта переменная используется в Си коде проекта. Но еще эту переменную нужно прикрутить в конец таблицы векторов прерываний. Попробовал сделать так в стартап файле: EXTERN magic_number[DATA] ... ; Здесь находится таблица прерываний. DCD magic_number ; Добавил в конец таблицы. Так вот, после компиляции в конце таблицы прерываний размещается адрес переменной magic_number, а не само значение этой переменной. Можно ли сделать, что бы по этому адресу находилось именно значение, может значение СИшного #define можно использовать? Варинт с : DCD 0x568978 не рассматриваю, так как нужно помнить о замене 2х переменных. Среда KEIL для ARM. -
Использование #define значения в ASM KEIL
Neo_Matrix ответил Neo_Matrix в теме Keil
Не вижу никаких грабель, в логичном желании изменять переменную лишь в одном месте, а не в разбросанных по всему проекту местах. Закончилось - нечем, по прежнему использую конструкцию: const uint32_t magic_num __attribute__((section(".ARM.__at_0x08000188"))) = MAGIC_NUM; 1) Ключ --cpreproc не поддерживается в 6-й версии компилятора. 2) GBLA не подходит, так как создает переменную инициализированную нулем. -
Использование #define значения в ASM KEIL
Neo_Matrix ответил Neo_Matrix в теме Keil
Да, вполне неплохой вариант, затягивать переменную из ASM в С, а не на оборот. Спасибо Про EXTERN писал в первом сообщении, при таком подходе в нужную ячейку кладется не сама переменная, а адрес по которому переменная расположена. EXTERN напрямую на СИшный #define натравить не получается, при компиляции выдает ошибку. -
Использование #define значения в ASM KEIL
Neo_Matrix ответил Neo_Matrix в теме Keil
Собственно вопрос был не по include в необходимые файлы .c .cpp. Суть вопроса в присвоении значения СИшного #define ассемблерной переменной, размещенной в конце таблицы прерываний. И да сейчас сделано так: #define MAGIC_NUM 0x568978 const uint32_t magic_num __attribute__((section(".ARM.__at_0x08000188"))) = MAGIC_NUM; У этого подхода есть большой косяк, в случае смещения прошивки по флешу(допустим версия DEBUG которая стартует с начала адреса флеша и версия PROD, которая стартует со второго сектора флеша) нужно не забывать изменять значение адреса, или писать конструкции типа: #if DEBUG ... #else ... #endif При этом таблица прерываний смещается сама, в зависимости от выбраного СКАТЕР файла, по этому хотелось более изящьного решения. -
Софт и документация для изготовления кабелей
Neo_Matrix опубликовал тема в Пайка, монтаж, отладка, ремонт
Подскажите софт, в котором можно составить документацию для производства партии кабелей. Т.е необходима принципиальная схема кабеля, схема обжима контактов, используемые типы контактов и т.д. Так же интересуют нормативные документы на кабеля\жгуты. Так же, если кто то имел опыт заказа изготовления кабелей, поделится примерами документации. -
Создание файла прошивки в KEIL, кратным 128байтам
Neo_Matrix опубликовал тема в Keil
Необходима прошивка, размер файла которой будет кратен 128байтам, т.е необходимо после сборки проекта в Keil сформировать BIN кратный 128. Сейчас для генерации BIN использую встроенную тулзу fromelf. Попытался добавить параметры в командную строку: --bincombined --bincombined_base=0x8000000 --bincombined_padding=128,0xFF, но походу ее разработчики предусмотрели ограничение на параметр bincombined_padding в размере 4. На данный момент приходится сначала генерить BIN, а после увеличивать его размер в winhex, что со временем уже немного надоедает. Возможно кто то знает нормальное решение, желательно с командной строкой, так, как хочется напрямую в действия КЕЙЛа прописать. -
Создание файла прошивки в KEIL, кратным 128байтам
Neo_Matrix ответил Neo_Matrix в теме Keil
Сработало на 100 %, попробовал на 2х разных файлах. Srecord действительно классная прога, я даже не задумывался о ее потенциале, впервые она мне помогла привести в порядок вывод файлов моторола-срекорд, а здесь оказывается она и такое может. Огромное спасибо, что подсказали! И писать не пришлось :) Все уже придумано до нас. -
Создание файла прошивки в KEIL, кратным 128байтам
Neo_Matrix ответил Neo_Matrix в теме Keil
Не погибнет, он живучий :) у меня SWD есть на такой случай. Спасибо, сейчас попробую -
Создание файла прошивки в KEIL, кратным 128байтам
Neo_Matrix ответил Neo_Matrix в теме Keil
x893 Написать прогу, это будет следующий этап, пока смотрю готовые варианты. scifi Тулзой SRecord я пользуюсь для формирования файлов, для дальнейшей отправки по воздуху, неужто в ней есть функция по добиванию конца прошивки мусором, до значения кратного 128? -
Отладка и выход за пределы массивов
Neo_Matrix опубликовал тема в FreeRTOS
Подскажите, есть ли способ под FreeRTOS понять есть ли выходы за предел массива. Хуки на недостаток хипа и стека работают нормально и очень помогают, когда нужно зажать стек задачи до минимума. Но как отладить выход за пределы массивов? Такая необходимость появилась, так как иногда устройства перезагружаются сами по себе(в обработчиках исключений стоит функция сброса, так как устройства должны максимально быть доступны). Есть подозрение на выход за пределы. Так как проект достаточно крупный около 300кб кода с оптимизацией, пересмотреть, а главное заметить ошибку очень сложно. Кто, что может порекомендовать? -
Отладка и выход за пределы массивов
Neo_Matrix ответил Neo_Matrix в теме FreeRTOS
Использую Keil. В комплекте с FREERTOS есть демка, показывающая, как это делать. Сам не использую. -
Отладка и выход за пределы массивов
Neo_Matrix ответил Neo_Matrix в теме FreeRTOS
Всем спасибо. Ошибка найдена. Функции strncmp при определенных стечениях обстоятельств передавался NULL вместо валидного указателя. -
Отладка и выход за пределы массивов
Neo_Matrix ответил Neo_Matrix в теме FreeRTOS
Спасибо всем за ответы. Их действительно много и они вполне перекрывают вопрос. Думаю лучший способ настроить MPU(cortex m4) + в некоторых местах сделаю массивы на длину +1 элемент и поставлю туда брейкпоинт на запись и чтение. Вариант с перекрытием массивов очень сложен, так как кода много и проблемный массив неизвестен. Аналитически код был просмотрен уже неоднократно, был найден один ляп с приведением типов, но это не изменило ситуацию в корне. Так же интересует, в случае фриртоса и выделения памяти в хипе, если будет затерт конец массива выделенной памяти, будет ли вызван ассерт во время фрии, или в конце нет данных маллока для отслеживания окончания массива(используется heap4.c + его модификация под CCM память)? Вариант с испытательным сроком очень оригинален. Всем спасибо -
Tracealyzer для FreeRTOS
Neo_Matrix ответил Lyrri в теме FreeRTOS
А нет ли подобного решения под 4тую версию? -
STM32, I2C, HAL
Neo_Matrix ответил Метценгерштейн в теме ARM, 32bit
Цитата(Метценгерштейн @ Apr 1 2016, 09:06) Не могу понять- если я в слейве хочу принимать данные на прерываниях, то эта ф-я сама будет вызываться что-ли? Или мне ее крутить самому надо в вечном цикле? Почему тогда она к прерываниям относится? Если это просто опрос ф-ии? Просто логику не понять. Как я понял Вам нужна колбэк функция. Которая вызовется после окончания приема. Если проэкт генерился в КубеМХ. At reception end of transfer, HAL_I2C_SlaveRxCpltCallback() is executed and user can add his own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback() HAL_I2C_Slave_Receive_IT должна вызываться сама, цикл не нужен.