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

777777

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

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

  • Посещение

Репутация

0 Обычный

Информация о 777777

  • Звание
    Профессионал
    Профессионал

Контакты

  • ICQ
    Array

Информация

  • Город
    Array

Посетители профиля

3 883 просмотра профиля
  1. Auto. Думаешь от этого что-то зависит? P.S. Да, если поставить Hardware, то всё работает. Правда, больше 6 он не ставит.
  2. В какой-то момент, вероятно когда объём кода превысил некоторый порог, стала стираться флэш программ при выполнении отладки. Результатом стирания является переход на NMI. Стирается блоками по 1 килобайту, если выполнять какую-то отладку - остановиться на точке останова, пошагать и т.д. Иногда обнаруживаются несколько стёртых блоков. Происходит это совершенно стабильно по одному адресу. Если прошить отдельным загрузчиком (например JFlash) или сразу после загрузки выйти из отладчика, то программа запускается и работает. Если код изменить, например добавить что-то, то стираться будет по другому адресу, но столь же стабильно. Пробовал исключить стираемый участок, выделив для программы разделы, в которые не входит стираемый участок. Тогда линкер не размещает там код, но стираться начинают другие участки. Оказалось, что если заменить программатор JetLink на ST-Link, то проблема исчезает. Но он работает только с Cortex, а у нас есть проекты на других процессорах, не хотелось бы плодить программаторы. Встречался ли кто-нибудь с таким явлением и как с ним бороться?
  3. У меня в 8.42 не работает отладчик JetLink. При запуске появляется окно "Starting developer session: Loading debug file". Никто не встречался с такой проблемой?
  4. Сначала фреза опускается в центр слота, затем перемещается к одному краю, затем обратно, к другому. Это какие-то хитрые технологические требования или "так получилось"? Можно ведь опустить ее на одном краю и переместить к другому. А как генерируют файлы фрезеровки другие CAD-ы?
  5. Можно ли в гербере для шелкографии использовать команды создания регионов G36/G37? А также "вырезание" в них других регионов путем смены полярности командами %LPD*% и %LPC*%. Или она наносится, грубо говоря, движущимся пером и поэтому допустимы лишь команды G01-D01/D02? Интересуют возможности разных изготовителей.
  6. А хорошо ли это - пользоваться встроенным RC-генератором для тактирования UART-а?
  7. Предполагается, что при включении мастер будет запрашивать по очереди все устройства для получения из заводских номеров и еще кое-какой информации. Когда произойдет обращение к устройствам с одним идентификаторам, они начнут передачу одновременно, коллизия произойдет при передаче данных. Вопрос в том, может ли контроллер одного из них узнать об этом? Ведь арбитраж происходит только по ИД? Если бы устройство могло узнать об ошибке, оно бы инкрементировало "суб-идентификатор" (например два младших бита идентификатора). После окончания ответа первого устройства оно выдает свой ответ, но уже со своим идентификатором и мастер узнает о наличии двух устройств. Таким образом, вопрос лишь в том, может ли устройство узнать о том, что при передаче произошла коллизия в поле данных? До сих пор с CAN-ом иметь дела не приходилось, не знаю его тонкостей. Почему у обоих? Я полагаю ошибка будет у того, кто первым передал рецессивный бит, а тот, кто передавал доминантный этого не заметит. Или при ошибке передача не остановится и если дальше доминантный бит окажется у другого, то данные перемешаются? Да, примерно так и хотим сделать: 9 старших бит раздать датчикам по их назначению, а 2 младших использовать для отличия датчиков одного назначения.
  8. Проектируется система по сбору информации с группы датчиков. Проблема в том, что имеется несколько одинаковых датчиков (датчики оборотов), но их назначение разное (меряют обороты разных устройств). Но поскольку датчики одинаковые, то и идентификаторы у них будут одинаковые. Может ли CAN разрулить эту ситуацию? Не хотелось бы на датчики ставить какие- то переключатели для задания "подидентификаторов".
  9. И прерывания разрешаются? Но у меня в файле startup_stm32f10x_hd.s написано только: Reset_Handler PROC EXPORT Reset_Handler [WEAK] IMPORT __main ; IMPORT SystemInit ; LDR R0, =SystemInit ; BLX R0 LDR R0, =__main BX R0 ENDP Действительно, а мне почему-то казалось, что я попадал в мой main прямо из стартапа.
  10. Нужно ли после инициализации как-то разрешать прерывания? Другие контроллеры при сбросе запрещают прерывания и после инициализации преиферии его нужно разрешать, а как в АРМ? Вообще-то сейчас в программе все прерывания работают, может они разрешаются в стартапе? Но там вроде ничего нет, просто переход на main. Но тогда кто ему устанавливает указатель стека, вызывает конструкторы классов, инициализирует статические переменные?
  11. Чтобы менять значение с частотой 2 МГц, нужен SPI с частотой мин. 2*16 МГц. Кроме того, нужно как-то подавать сигнал синхронизации (LDAC), а AD-шным ЦАПам (по крайней мере некоторым) требуется, чтобы SPI сопросожданся меняющимся сигналом CS, т.е. его нельзя все время держать в нуле. А с помощью DMA его не сформируешь. Разве что таймеры ухитриться запрограммировать так чтобы он выдавал ШИМ нужной формы, а этим таймером запускать DMA SPI Параллельный - это наверное выход, правда на демонстрации показан 12-разрядный ЦАП, а у 5556 время установления 0.5 мкс
  12. Нужен ARM с хорошим ЦАП-ом

    Внешний не катит, так как нужно менять его значение быстрее чем через 500 нс
  13. Во-первых, регулируемая пауза здесь будет только при одном переходе, при втором (сбросе счетчика по достижении ICR1) оба выхода поменяют свое состояние одновременно. Во-вторых, все 16-битные счетчики имеют "16-битное" имя и вместо того, чтобы писать: ICR1H=0x00; ICR1L=233; достаточо написать ICR1=233;
×
×
  • Создать...