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

    

777777

Участник
  • Публикаций

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

  • Посещение

Репутация

0 Обычный

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

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

Контакты

  • Сайт
    http://atorix.com/
  • ICQ
    0

Информация

  • Город
    Саратов
  1. Сначала фреза опускается в центр слота, затем перемещается к одному краю, затем обратно, к другому. Это какие-то хитрые технологические требования или "так получилось"? Можно ведь опустить ее на одном краю и переместить к другому. А как генерируют файлы фрезеровки другие CAD-ы?
  2. Цитата(Tchernov Arseny @ Oct 6 2013, 17:57) Добрый вечер. При выполнении конструкторской документации необходимо посчитать площадь металлизации слоев платы. Подскажите, как это делается в Altium Designer 13? А зачем это нужно, если не секрет?
  3. Можно ли в гербере для шелкографии использовать команды создания регионов G36/G37? А также "вырезание" в них других регионов путем смены полярности командами %LPD*% и %LPC*%. Или она наносится, грубо говоря, движущимся пером и поэтому допустимы лишь команды G01-D01/D02? Интересуют возможности разных изготовителей.
  4. atmega168 uart и прерывания

    А хорошо ли это - пользоваться встроенным RC-генератором для тактирования UART-а?
  5. Цитата(vptr @ Mar 22 2013, 13:51) Легче всего, если внутри пакета будет уникальный признак датчика, а если этого нет то опять же можно попробовать по времени вылавливать пакеты от датчиков относительно какой-то временной точки отсчета, которую вам надо организовать. Предполагается, что при включении мастер будет запрашивать по очереди все устройства для получения из заводских номеров и еще кое-какой информации. Когда произойдет обращение к устройствам с одним идентификаторам, они начнут передачу одновременно, коллизия произойдет при передаче данных. Вопрос в том, может ли контроллер одного из них узнать об этом? Ведь арбитраж происходит только по ИД? Если бы устройство могло узнать об ошибке, оно бы инкрементировало "суб-идентификатор" (например два младших бита идентификатора). После окончания ответа первого устройства оно выдает свой ответ, но уже со своим идентификатором и мастер узнает о наличии двух устройств. Таким образом, вопрос лишь в том, может ли устройство узнать о том, что при передаче произошла коллизия в поле данных? До сих пор с CAN-ом иметь дела не приходилось, не знаю его тонкостей. Цитата(KRS @ Mar 22 2013, 23:15) А вот если с одинаковым ID но разными данными - будет выставлена ошибка! Увеличатся счетчики ошибок у обоих устройств и они могут быстро попасть в bus off. Почему у обоих? Я полагаю ошибка будет у того, кто первым передал рецессивный бит, а тот, кто передавал доминантный этого не заметит. Или при ошибке передача не остановится и если дальше доминантный бит окажется у другого, то данные перемешаются? Цитата(KRS @ Mar 22 2013, 23:15) Но это все хорошо на этапе идентификации устройств и назначении им идентификаторов (как DHCP) Да, примерно так и хотим сделать: 9 старших бит раздать датчикам по их назначению, а 2 младших использовать для отличия датчиков одного назначения.
  6. Проектируется система по сбору информации с группы датчиков. Проблема в том, что имеется несколько одинаковых датчиков (датчики оборотов), но их назначение разное (меряют обороты разных устройств). Но поскольку датчики одинаковые, то и идентификаторы у них будут одинаковые. Может ли CAN разрулить эту ситуацию? Не хотелось бы на датчики ставить какие- то переключатели для задания "подидентификаторов".
  7. нужно ли разрешать прерывания?

    Цитата(Lotor @ Dec 21 2011, 09:20) В стартапе это и делается. И прерывания разрешаются? Но у меня в файле 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 Цитата(scifi @ Dec 21 2011, 09:29) Это не тот main. Там переход на код инициализации, а уже из этого кода - на main. Пошагали бы отладчиком вместо того, чтобы по каждому пустяку в форуме отмечаться. Действительно, а мне почему-то казалось, что я попадал в мой main прямо из стартапа.
  8. нужно ли разрешать прерывания?

    Нужно ли после инициализации как-то разрешать прерывания? Другие контроллеры при сбросе запрещают прерывания и после инициализации преиферии его нужно разрешать, а как в АРМ? Вообще-то сейчас в программе все прерывания работают, может они разрешаются в стартапе? Но там вроде ничего нет, просто переход на main. Но тогда кто ему устанавливает указатель стека, вызывает конструкторы классов, инициализирует статические переменные?
  9. Нужен ARM с хорошим ЦАП-ом

    Цитата(DmitryM @ Dec 15 2011, 21:06) А чем?? DMA+SPI на 2МГц Чтобы менять значение с частотой 2 МГц, нужен SPI с частотой мин. 2*16 МГц. Кроме того, нужно как-то подавать сигнал синхронизации (LDAC), а AD-шным ЦАПам (по крайней мере некоторым) требуется, чтобы SPI сопросожданся меняющимся сигналом CS, т.е. его нельзя все время держать в нуле. А с помощью DMA его не сформируешь. Разве что таймеры ухитриться запрограммировать так чтобы он выдавал ШИМ нужной формы, а этим таймером запускать DMA SPI Цитата(scifi @ Dec 15 2011, 22:15) Как раз внешний и катит. Вот этот, например: AD5556. Вот демонстрация того, как это может работать: тыц. Параллельный - это наверное выход, правда на демонстрации показан 12-разрядный ЦАП, а у 5556 время установления 0.5 мкс
  10. Нужен ARM с хорошим ЦАП-ом

    Внешний не катит, так как нужно менять его значение быстрее чем через 500 нс
  11. Цитата(smk @ Dec 14 2011, 00:06) Кодvoid TIMER1_INIT(void) { TCCR1B=(1<<WGM13)|(1<<CS10); TCCR1A=(1<<COM1B0)|(1<<COM1B1)|(1<<COM1A1)|(1<<WGM11); OCR1BH=0x00; OCR1BL=118;//65 OCR1AH=0x00; OCR1AL=115;//98 ICR1H=0x00; ICR1L=233; TCNT1H=0; TCNT1L=0; } Во-первых, регулируемая пауза здесь будет только при одном переходе, при втором (сбросе счетчика по достижении ICR1) оба выхода поменяют свое состояние одновременно. Во-вторых, все 16-битные счетчики имеют "16-битное" имя и вместо того, чтобы писать: ICR1H=0x00; ICR1L=233; достаточо написать ICR1=233;
  12. Цитата(iiv @ Dec 13 2011, 18:10) хочется иметь на двух ножках Atmega328p сигналы для управления полным мостом Для этого надо воспользоваться микросхемой ATmega32/64M1
  13. Цитата(Димыч @ Dec 13 2011, 13:49) Судя по геометрии вашего рисунка, различные входы-выходы будут находиться на противоположных сторонах платы. Очень хорошо проанализируйте - будут ли течь токи по полигону "земли", если "да" - то определите источники и потребителей. Сопротивление "земли", даже в виде полигона, тоже конечно. И нельзя допустить протекания возвратных токов цифровой части схемы под аналоговыми узлами. Возможно, Вам нужно присмотреться к схеме заземления "звездой". Можно, например, подвести питание и землю посередине между АЦП и ПЛИС.
  14. Вообще-то гораздо важнее сделать сплошной слой земли, и это должен быть не полигон, а именно отдельный слой, не занятый никакими другими цепями. А как подводить питание уже не так важно. Ну и конечно не забыть про конденсаторы по питанию около микросхем.
  15. ЦАП AD5415

    Цитата(Iptash @ Dec 12 2011, 18:49) Я не работал, а сигнал SYNC? SYNC опускается на время работы SPI, после передачи поднимается. LDAC все это врмя в единице, однако по окончании передачи значение напряжения на выхлоде ЦАПа меняется.