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

tonyk_av

Участник
  • Постов

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

  • Посещение

  • Победитель дней

    4

Весь контент tonyk_av


  1. Так он ничего не измеряет и не регулирует, потому и стОит копейки. У димера тупо нет ни "мозгов", ни связных интерфейсов. Кроме того, выход его из строя не создаст ничего опасного, поэтому там нет (почти) защит. Уже три человека, имевших опыт разработки подобных устройств говорят, что вы не адекватно оцениваете стоимость конечного девайса. Убеждать vvzvlad в обратном и спорить я не буду. Вы спросили- вам вежливо ответили и поделились опытом, который состоит в примерной оценки стоимости конечного устройства. Я ведь не просто так сказал, что можно сделать вашу хотелку за 3к. Каюсь, не добавил, что производство нужно будет перенести в Китай и иметь тиражность хотя бы от 10к девайсов в год, плюс иметь техподдержку, умеющую забалтывать клиентов, и юристов, которые будут отгребать от ваше GOPы последствия работы ваших девайсов, и да, года через 2-3 вам нужно будет провести перерегистрацию конторы, потому что девайсы за 3к под вашей маркой перестанут покупать.
  2. С чего бы это? Хост начинает раз в 1мс опрашивает узел после последнего ответа, что нет данных. Пока узел отвечает данными, пауз на опросе не будет. Никакого жёсткого тайминга не требуется, пакеты принимаются целиком задачей с обычным приоритетом.
  3. STM32CubeIDE

    Очень просто. Дело в том, что у линковщика тоже есть переменные, которые он на этапе связывания может передать в программу пользователя. Оставил только то, что относится к сути вопроса. Скрипт линкёра, в котором создаётся переменная _estack. /** ****************************************************************************** * @file LinkerScript.ld .... /* Highest address of the user mode stack */ _estack = ORIGIN(RAM) + LENGTH(RAM); /* end of "RAM" Ram type memory */ Далее в стартап-файле (у меня он свой) описываем эту переменную: //////////////////////////////////////////////////////////////////////////////// // // startup_stm32f446xx.cpp // //////////////////////////////////////////////////////////////////////////////// // GCC ARM compatible .... extern void *_sidata, *_sdata, *_edata; extern void *_sbss, *_ebss; extern void *_estack; // вот описание этой переменная из линковщика .... const intfunc __vector_table[] __attribute__ ( ( section (".isr_vector_FLASH" ), used ) ) = { (intfunc)&_estack , // значение этой переменной вычислит и подставит линковщик &Reset_Handler, &NMI_Handler, &HardFault_Handler, &MemManage_Handler, &BusFault_Handler, ... Значения переменных _Min_Heap_Size = 0x800; /* required amount of heap */ _Min_Stack_Size = 2K; /* required amount of stack */ используются точно также. Мне в стартапе они не нужны, поэтому прмер привёл для _estack.
  4. Если есть управление силовыми ключами, тиристорами или IGBT, то 20-30к выглядят вполне адекватно. Сейчас многие при оценке стоимости конечного изделия ориентируются на поделки из сарая дядюшки Ляо, поэтому искренне не понимают, что и сколько должно стоить. Вам тут про 20-30к пишут люди, делающие оборудование, которое ни кого не убило и не способно это сделать, и которое будет долго и безотказно работать. Впрочем, есть шанс найти афериста, который сделает вам "железку" и за 5к, я даже знаю как такую сделать и за 3к, но не буду, потому что не хочу брать на себя кровь невинных пользователей.
  5. Китайцы стали палить Н7? Да ну. В "Элитане" появилось много F4 по привычным ценам, возможно, Н7 подошли. Они как раз стояли в приоритете у СТМ на восстановление производства.
  6. Тут нужно брать интерфейс и протокол, подходящий под вашу задачу, а не пытаться натягивать сову на глобус. Да, можно, пытаться разбирать принятые данные на предмет их похожести на посылку. Делал такое, но не от хорошей жизни. Выше дали дельный совет про накопление данных с метками времени. Это общий подход. В моё случае можно было обойтись без меток времени, что упростило обработку. В любом случае, с UART и под Выньдой ни о какой минимизации времени реакции при обмене по UART речи не идёт. Очень часто встречаю ситуации, когда разработчик пытается уложиться в какие-то миллисекунды, а при более вдумчивом рассуждении оказывается, что эти миллисекунды никому нафиг не нужны и вполне всех устраивают даже секунды. Подумайте, действительно для вас критичны эти миллисекунды.
  7. Ага, помеха спомеховала и один из байтов в посылке потерялся. Поэтому никуда вы от таймаутов не уйдёте, потому что никогда не знаете, сколько отправилось байт в линию, и сколько дошло до вашего приёмника..
  8. Да. Так ведь я сам рисую нужную мне панель. А уж перегнать dxf в cdr, соблюдая их требования по обозначению вида мехобработки, не сложно, особенно в сравнении с разработкой внешнего вида самой панели.
  9. У специализированных контор с ценами на доработку или изготовление как раз всё понятно, в отличии от вас. Они берут за суммарную длину линии реза.
  10. Прикольно. То есть покупателю предлагается самому сверлить-пилить? Мне как-то привычней нарисовать панель и отдать её в специализированную фирму, где на 2Д-фрезере вырежут её и тампонной печатью напишут-нарисуют всё, что мной задумано, а мне останется только установить изготовленные панели в предназначенные для них места. Смысл работы с вашими корпусами вижу только из-за того, что Но тогда нужно понимать цены на корпусы и стоимость доработки.
  11. Интересно, как их использовали такие? Вот доработанный стандартный корпус. Тут пластик и металло-пластиковая панель. Такое много кто сделает. Как дорабатывать корпус из листового металла- не представляю. Производители берутся за такое только для партий. Видимо, ваше предложение для тех, кто делает более-менее крупные серии.
  12. Может, вместо части глухих стенок делать большие прямоугольные вырезы, чтобы можно было заказать панели из пластика или дюраля? Ессно, потребуются несколько отверстий по периметру. По-моему, тогда ваша задумка про универсальные корпуса обретёт смысл. А что можете предложить на DIN-рейку?
  13. Оно потому и разумное, что выбирается из соображений каких-либо физических ограничений, когда иное не прописано в ТЗ.
  14. Почему? Число ведь берётся не от балды, а их опыта применения подобных вещей. Даже если перестанет хватать, поставлю МК с бОльшим объёмом ОЗУ.
  15. Вот именно. Когда оборудование стОит 1000000 рублей, то пофиг, сколько стоит контроллер, им управляющий, 10000 или 50000. Главное, что он есть, готовый, проверенный, всем знакомый. Зарплаты людей, применяющих этот контроллер, многократно больше разницы в стоимости, поэтому важней становится время на получение работающего результата.
  16. Да. Так делают, например, топовые гиганты типа интел/амд/нвидиа. Тут разные ситуации. Я не буду высчитывать байты, а посмотрю на подобные решения. Не зря ведь у многих производителей есть линейки МК, различающиеся, например, объёмом ОЗУ. Например, я вижу, что решения, подобные моему, строятся на МК с ОЗУ от 80 до 96К ОЗУ. Взял со 128К. Не хватит- возьму со 192К или даже 256К. Учитывая, что в общей себестоимости девайса стоимость МК составляет менее 10%, то, скорей всего, оставлю всё как есть. У меня не миллионные серии, поэтому 200 рублей погоды не делают. Подход крупняков прост: они закладывают топовое "железо", потому что их затраты на всё остальное многократно превышают его стоимость. Мощное "железо" гораздо проще приспособить к малоресурсной задаче, чем втиснуть что-то большое в бюджетное "железо". Полностью согласен.
  17. Прикольно. Сначала сделали "железо", а потом стали пытаться приспособить его к задаче. Сами выделяйте, вам же надо, а не мне. Конечно, я так не умею. Зато я умею сначала посчитать необходимую память, а уже потом подбирать решение по "железу". Обычно так лучше получается. Кстати, в проекте ПЛК почти так и делаю, переопределив new-delete для работы с выделенным для этого буфером. Априори не известно, сколько программист создаст запросов по Modbus и I2C. Задался разумным числом и выбрал МК с подходящим объёмом ОЗУ.
  18. Во-первых, глубина архива должна быть прописана в ТЗ, поэтому необходимый объём памяти определяется на этапе выбора технического решения и элементной базы. Во-вторых, можно ведь и внешнее ОЗУ на SPI поставить.
  19. Прикольно. Это вы о профессоре Кнутте, создавшего TeX и Metafont? Ну-ну. Наверно, не в ту строчку глянули. а с какой цифры начинается много? лично для меня и 128 бит много. Нужно массив в 10 байт - выделяем 128. 👍 А потом почему-то памяти для какого нибудь регистратора не хватает или канал передачи в 1 Gb не прокачивает.
  20. Или мир сошёл с ума, или кто-то чего-то недопонимает, потому что
  21. Не хотел, чтобы из-за меня срач начался. Вроде, почти процитировал известное изречение уважаемого человека.
  22. Смотрите процент, которые составляют эти 128 байт от всего ОЗУ. Конечно, можно с самого начала убиваться за каждый бит-байт. Вот когда не будет хватать памяти, тогда и будете думать, что делать: взять кристалл с бОльшим ОЗУ или заняться оптимизацией.
  23. Можно и так. Выделяете место под пакет максимальной длины. 128 байт- это не много. Приняли пакет- получили одно прерывание по RTO или IDLE. Дпльше уже разбираетесь с тем, что получили. u8 data[ 128 ];
  24. А как идёт приём пакета, неужели побайтно, с прерыванием по приходу очередного байта? Если всё-таки с использованием DMA, то вопрос не понятен, потому что как не крути, но нужно знать максимальный размер пакета, и тогда вопрос с гибким массивом в конце отпадает сам собой.
  25. Ищите производителей. Ведь делают же платы же платы ширина/зазор в 75мкм.
×
×
  • Создать...