Jump to content

    

Д_М

Участник
  • Content Count

    139
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Д_М

  • Rank
    Частый гость

Контакты

  • ICQ
    Array

Информация

  • Город
    Array

Recent Profile Visitors

2067 profile views
  1. Прошу прощения, но я себя недооценил. Нашёл сам. Это делается в Options >> Output converter. Может быть кому-то ещё это поможет. Программа загрузилась и работает. Лампочка мигает. 4000 рублей уже были потрачены не зря. Раз уж я открыл эту тему, с вашего позволения буду здесь задавать свои дилетантсткие вопросы. Вопрос номер 1. Где взять готовый, отлаженный проект с FreeRTOS для STM32F103 и IAR? Спасибо!
  2. Приветствую! Прошу прощения, но вой вопрос настолько дилетантский, что не нашёл я ответа на этом форуме. Имеется компилятор IAR 7, отладочная плата STM32-P103 (https://www.chipdip.ru/product/stm32-p103), программатор ST-LINK/V2 (mini) (https://www.chipdip.ru/product/st-link-v2-mini?from=visited_product), загрузчик ST visual programmer. Последний признал и программатор и отладочную плату. Память программируемого контроллера считывается. Тем меня и заинтересовала эта отладочная плата, что к ней идёт тестовая программу. Компилятор эту программу признал, откомпилировал. Но самое интересное - а где исполняемый файл, который нужно загружать? Во-первых было создано две папки Flash Debug и RAM Debug. Ни там, ни там нет файлов в hex формата. Создаётся впечатление, что по умолчанию создаётся Debug формат, а не исполняемый. На IAR для AVR это переключается в Linker >> Output. Но здесь такого нет. ST visual programmer не признаёт файлы созданные компилятором. Ему надо только hex формат. Ни разу я не видел, чтобы компиляторы выдавали исполняемые файлы в другом формате. Заранее благодарен за помощь!
  3. AT90CAN128 Watch Dog

    Просто фантастика! Получилось! Кто бы мог подумать, что из-за бессмысленной команды так всё может измениться. А ведь на Меге работало именно так. Спасибо Вам большое!
  4. AT90CAN128 Watch Dog

    Пробовал, успокоения совести ради, включить фуз бит WDTON. Не получается даже залить программу через загрузчик. Когда вернул обратно, загрузка работает, программа работает. WDT завязан на UART. Сброс WDT производится после получение ответа по UART. Пока не подключено устройство по UART, программа работает. После первого ответа UART производится инициализация и сброс WDT. Таймаут 2 секунды для UART более, чем достаточно. Проверено многократно на Меге. Здесь же перегружается без видимой задержки.
  5. AT90CAN128 Watch Dog

    Ошибочно указал 2,5 секунды. WDP0..2 = 1 то есть 2048K. На Меге примерно 2 секунды и получается. На AT90CAN128 сразу же перегружается, без видимой задержки.
  6. AT90CAN128 Watch Dog

    Приветствую! Код, который давно использую на ATmega128 некорректно работает на AT90CAN128. Расчётный таймаут 2,5 сек, фактически многократно меньше. Измерить нет возможности. void WDT_res(void) { GI_disable; WDTCR |= (1<<WDCE) | (1<<WDE); WDTCR = 0x00; WDTCR |= (1<<WDCE) | (1<<WDE); WDTCR |= (1<<WDE) | (1<<WDP0) | (1<<WDP1)| (1<<WDP2); GI_enable; } Как ни вчитывался в мануалы, но не нашёл отличия между микроконтроллерами в механизме WatchDog. Где искать различия? Если вдруг есть отработанный код, заранее благодарен!
  7. Приветствую! Нужна утилита, способная выступать в качестве TCP клиента и сервера. Что-то вроде вот этого https://www.hw-group.com/software/hercules-setup-utility Всем хороша эта утилита, но она не отображает принятые посылки в hex виде, а только в текстовом. А мне нужно протестировать устройство по MODBUS/TCP. А этот протокол двоичный. Вот и получается, что я могу отправлять запросы прибору в hex формате, а то, что прибор присылает, прочесть не могу. Есть кто-то знает программу, способную отображать принятые TCP пакеты в hex формате, подскажите, пожалуйста! Заранее благодарен!
  8. Кто, что думает про вот это? https://www.segger.com/products/rtos/embos/ Это, скорее FreeRTOS, или скорее Linux?
  9. Спасибо за спецификацию! Прямо, как мультфильме "Малыш и Карлсон" - "Она, такая толстая, хочет залезть в такую маленькую коробочку!" Как, столько всего, можно запихнуть в 8 байт посылки CAN? У интерфейса CAN не так много степеней свободы - 29 бит для идентификатора, и ещё биты управления. А в спецификации ни слова не сказано, как CIP увязать с CAN. Для того и придумали CAN, чтобы не обременять людей писаниной. Готовый транспорт для 8-ми байт информации. CIP - универсальный протокол, для которого не имеет значения, какой буде транспорт. Всё сказанное в спецификации CIP хорошо вяжется с Ethernet, но не с CAN.
  10. Самое информативное, что нашёл мне Гугл, вот это http://can.marathon.ru/page/can-protocols/devicenet/spec Там сказано, что спецификацию можно приобрести. Действительно ли за описание протокола надо ещё платить?
  11. Приветствую! Не удалось найти в сети спецификацию этого протокола. Сказано, что DeviceNet базируется на протоколе CIP (common industrial protocol). Его описание я тоже не нашёл. Проще ли в реализации DiveceNet, чем CANopen? Стоит ли связываться с DeviceNet, или лучше браться за CANopen?
  12. Мораль: Надо учить железо и FreeRTOS! Правильно?
  13. Правильно ли я понял мысль, что Embedded Linux настолько же RTOS, насколько и Windows CE?
  14. Спасибо за поддержку! В подавляющем большинстве случаев, контроллер крана работает на 90%, как многоканальный преобразователь протоколов. А это самое слабое место банальных, общепромышленных PLC. PLC - это для элеваторов и котельных. Вычленить из CAN посылки полезные данные, масштабировать их, воткнуть их в MODBUS на Си дело плёвое. Но бывают задачи на кранах, где требуется много математики, в том числе и тригонометрии. Синусы, косинусы, квадратные корни нужно считать в реальном времени. Писать свои собственные шедулеры - дело неблагодарное. Я через это прошёл. Считал его идеальным, пока не столкнулся с проблемами надёжности. Рвал на себе волосы от непонимания, что я ещё недопонимаю. К счастью, мне пришло прозрение и я нашёл один крошечный изъян. А много и не надо, чтобы система была ненадёжной. Без шедулера мои проекты работать не будут - требуется по 20 таймеров. Процессора с таким количеством аппаратных таймеров не бывает. Значит, нужны программные таймеры. Web инструментарии не рассматриваю. Вот и получается, что у меня выбор не велик - либо FreeRTOS, либо Linux. Стоит ли сразу замахиваться на Linux? Или не выпендриваться, а браться за FreeRTOS? Если последний вариант, то какой камень для этого лучше подойдёт - STM, или LPC?
  15. В данный момент я связан с подъёмными кранами. У меня есть аппаратное решение на AVR, которое содержит на борту CAN и много RS485. Работает все хорошо, не тормозит, но дни AVR сочтены. И ещё нужно Ethernet, Wi-Fi, USB. Интересует завершённое, промышленное устройство в корпусе на DIN рейку. Питание 24V DC. Обязательно трёхходовая гальваническая изоляция. То есть всё изолировано от всего - клеммы питания, процессор, интерфейсы. Блок питания процессора должен быть 4-х полюсный. На каждый интерфейс должен быть свой 4-х полюсный DC/DC. CAN желательно два. Но одного хватит. А RS485 надо много, как минимум, 6. Маловероятно, что найдётся такое готовое устройство. Рассматриваю устройство с двумя RS485. Если, вдруг, у кого-то есть устройство, удовлетворяющее таким требования, предлагайте. В разработку деньги вкладывать не буду. Скорее договорюсь с поставщиком вышеупомянутого устройства на AVR, о замене процессора на современный. Не делать буду это только после того, как освою ARM. Потому и спрашиваю мнение о кандидатуре на замену AVR.