Jump to content

    

proga

Участник
  • Content Count

    85
  • Joined

  • Last visited

Everything posted by proga


  1. Здравствуйте. Пытаюсь применить функцию Swap->Functions, но никак не получается это сделать. Я создал в CAPTURE гомогенный символ, состоящий из 8 gate. В каждом вентиле по два контакта. Соответствующим контактам каждого вентиля присвоил одинаковый PinGroup, то есть у меня получились две группы 1 и 2. Однако в PCB Designer при активировании команды Swap->Functions, я выбираю один из swap выводов и получаю сообщение (SPMHA2-23): No functions are swappable with the selected function ... pick again. Когда я пытаюсь произвести замену на уровне отдельных контактов, то есть задействую Swap->Pins, всё работает нормально, при выборе одного из выводов подсвечиваются остальные 7 контактов группы, с которыми я могу произвести замену. Что я делаю не так?
  2. Тоже столкнулся с этой проблемой. Пришлось в схеме переименовывать все контакты, содержащие в имени минус
  3. Ошибка возникает при создании нетлиста, а именно на этапе Updating Allegro PCB Editor Board. Несмотря на то, что путь к созданной мной библиотеке корпусов прописан, программа её не обнаруживает. Собственно, всё написано в первом моём сообщении. В итоге, я перерисовал все корпуса в PCB Editor, так как, к сожалению времени у меня в обрез. Уже с этими корпусами на стадии создания нетлиста абсолютно никаких проблем не возникло. Проблема, возникшая у меня, в высшей степени странная: почему у меня корпуса не воспринимаются программой, а у вас с ними никаких проблем не возникает? Когда будет время, обязательно с этим разберусь. Большое спасибо за то, что пытались мне помочь!!!
  4. к сожалению, применение команды по очищению лишних падов в корпусах не привело к тому, что они стали видимы при создании нетлиста. Причём с корпусами, созданными в PCB Editor, изначально никаких проблем не наблюдается.
  5. Странно у меня тоже ваш dra работает. Padpath я указал. А что значит выкинули лишние педы?
  6. К сожалению процедура Tools - Database check не помогла. Я пока только начинаю использовать PCB Editor в своей работе. Поэтому использовал для создания корпусов Package Designer, не учтя возможные проблемы с лицензией. Похоже это первые грабли, на которые я наступил, причём саданут они меня по лбу довольно сильно, так как корпусов я нарисовал немало. Загружаю один из проблемных DRA. SKE10.rar
  7. Здравствуйте. Возникла следующая проблема. В Package Designer я нарисовал несколько корпусов для компонентов моей схемы. Созданные dra и psm складировал в одну папку, путь к которой прописал в PCB Editor: User Preferences Editor -> Paths -> Library -> psmpath. Однако при попытке создать netlist схемы получаю ошибку. В netrev выводятся ошибки следующего вида: WARNING(SPMHNI-192): Device/Symbol check warning detected. [help] WARNING(SPMHNI-194): Symbol 'SKE10' for device 'SKE10B-05_SKE10_SKE10B-05' not found in PSMPATH or must be "dbdoctor"ed. Когда захожу в PCB Editor при выборе команды Place -> Manually ->Package Symbols я вижу в опциях созданные мной корпуса, однако при попытке выбора одного из них получаю ошибку W- (SPMHA1-230): Database has a non-recoverable corruption. Contact Cadence customer support. E- Cannot load symbol 'AG5100' Не могу понять, что не так. Может быть недостаточно просто указать путь к папке с новыми корпусами и процесс создания библиотеки не так тривиален? Или надо выполнить какие-либо действия по обновлению базы данных?
  8. К сожалению, нет. В итоге, я использовал трансивер физического уровня dp83640 с поддержкой протокола IEE 1588 и на его основе успешно реализовал поддержку протокола PTP в своём проекте. Я задавал вопрос в комьюнити STM по данной проблеме и, судя потому, как они резко прекратили обсуждения, после того, как я послал им проект, в котором можно наблюдать проявление данной проблемы, я сделал вывод, что это аппаратный баг, который делает невозможным реализацию протокола PTP только средствами контроллера STMF417. Хотя возможно я и ошибаюсь.
  9. Спасибо всем за советы. К сожалению они не помогли. Я просмотрел код через дизасемблер. Копилятор отработал нормально. Дело не в том, что некорректна проверка флага, а в том, что флаг изначально не сбрасывается, либо сбрасывается и тут же устанавливается логикой. Как я уже писал, при пошаговом прохождении этой части кода программа исполняется нормально. А вот при выполнении программы налету она застревает в этом цикле. Возникает ощущение, что логика всё же возвращает флаг на место, просто в пошаговом режиме почему-то не может этого сделать. Скорее всего я, что то делаю не так, хоть и ума не приложу в чём я ошибаюсь. Ну что ж, буду думать.
  10. Здравствуйте. Я разрабатываю программу на базе микроконтроллера STM32F417. У меня возникла проблема следующего характера. В одной части своей программы мне необходимо запретить DMA исполнение. Делаю я это стандартным способом DMA_Cmd(DMA1_Stream5, DISABLE); while(DMA1_Stream5->CR & DMA_SxCR_EN); Однако программа в цикле застревает навечно. Если же я в отладчике пошагово исполняю этот кусок кода, то без проблем прохожу цикл. Если же я изменяю уровень оптимизации с O3 на O1, то программа начивает застревать раньше в подобном же блоке DMA_Cmd(DMA2_Stream0, DISABLE); while(DMA2_Stream0->CR & DMA_SxCR_EN); , который раннее при оптимизации O3 программа проходила без проблем. Прошу помощи в разрешении данной проблемы.
  11. Я сейчас разрабатываю программу на базе платы TE-STM32F417MCU. В ней я пытаюсь, в том числе, реализовать поддержку PTP протокола. Однако я столкнулся со следующей проблемой.Системный таймер, ответственный за PTP, генерирует прерывание, если его текущее время превышает значение, записанное в регистрах target time. При этом устанавливается флаг TSTS в регистре ETH_MACSR. Данный флаг очищается как только производится чтение из регистра ETH_MACSR, так гласит Reference manual. Однако в режиме отладки я наблюдал , что после прочтения регистра никакого снятия флага TSTS не происходит и программа застревает в обработчике. Вследствие этого пришлось ввести в обработчик цикл, который снова и снова считывает содержимое регистра ETH_MACSR до тех пор пока флаг TSTS не очищается. Однако этого я смог добиться только в режиме отладки. Когда же я прошиваю контроллер и запуская его на исполнение без программатора, то программа застревает в этом цикле навечно, т.е флаг TSTS так и не сбрасывается. Буду благодарен любым соображениям по этому поводу . Спасибо
  12. B Поставил уровень 2 BOR проблема решилась. Однако образовалась другая, о которой я напишу в следующем топике
  13. Я сейчас разрабатываю программу на базе платы TE-STM32F417MCU. Обнаружилась странная проблема. После прошивки контроллера, программа не стартует сразу после включения питания. Однако, если я принудительно (кнопкой) сбрасываю его, то программа начитает исполняться. Буду благодарен любым соображениям по этому поводу. Я пока грешу на неэффективность системы POR. Спасибо
  14. Flash Timeout

    У меня возникла проблема следующего характера. В последнее время при попытке загрузить программу в контроллер стала появляться ошибка "Flash Timeout. Reset the Target and try it again." В программе не оперирую регистрами управления флешь-памятью. В своей работе я использую ST-LINK. В утилите STM32 ST-LINK Utility я получаю сообщение: "Cannot read memory! Disable Read Out Protection and retry." В окошке "Options Bytes" вижу, что Read out Protection: Level 1. Попытка изменить на Level 0 успехом не увенчалась. Раньше проблема решалась переустановкой Firmware программатора, однако теперь это лекарство уже не действует. Прошу помощи разобраться в причине данной проблемы и найти её решение. Спасибо.
  15. У меня возникла проблема следующего характера. В разрабатывамом мной проекте необходимо осуществлять передачу данных, оцифрованных в ADC, по Ethernet (UDP протокол). АЦП работает в режиме 500 кГц. Собственно код инициализации АЦП: RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA2 | RCC_AHB1Periph_GPIOC, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE); ADC_DeInit(); //CONFIGURE DMA FOR ADC DMA_InitStructure.DMA_Channel = DMA_Channel_0; DMA_InitStructure.DMA_PeripheralBaseAddr = ADC_DR_ADDRESS; DMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t)getbuf_ADC(0); DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralToMemory; DMA_InitStructure.DMA_BufferSize = BUFSIZE_ADC; DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord; DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord; DMA_InitStructure.DMA_Mode = DMA_Mode_Circular; DMA_InitStructure.DMA_Priority = DMA_Priority_VeryHigh; DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Enable; DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_HalfFull; DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single; /* DoubleBufferMode enable*/ DMA_DoubleBufferModeConfig(DMA2_Stream0, (uint32_t)getbuf_ADC(1), (uint32_t)getbuf_ADC(0)); DMA_DoubleBufferModeCmd(DMA2_Stream0, ENABLE); DMA_Init(DMA2_Stream0, &DMA_InitStructure); //enable DMA interrupt DMA_ITConfig(DMA2_Stream0, DMA_IT_TC, ENABLE); NVIC_InitStructure.NVIC_IRQChannel = DMA2_Stream0_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); DMA_Cmd(DMA2_Stream0, ENABLE); //CONFIGURE GPIO FOR ADC; /*ADC Channel 10 -> PC0*/ GPIO_InitSt_C.GPIO_Pin = GPIO_Pin_0; GPIO_InitSt_C.GPIO_Mode = GPIO_Mode_AN; GPIO_InitSt_C.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOC, &GPIO_InitSt_C); /* ADC Common Init */ ADC_struct.ADC_Mode = ADC_Mode_Independent; ADC_struct.ADC_Prescaler = ADC_Prescaler_Div8; //need ADC_Prescaler_Div8 ADC_struct.ADC_DMAAccessMode = ADC_DMAAccessMode_1; ADC_struct.ADC_TwoSamplingDelay = ADC_TwoSamplingDelay_20Cycles; //need ADC_TwoSamplingDelay_5Cycles ADC_CommonInit(&ADC_struct); /* ADC Channels Init */ ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b; ADC_InitStructure.ADC_ScanConvMode = DISABLE; ADC_InitStructure.ADC_ContinuousConvMode = ENABLE; ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None; ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; ADC_InitStructure.ADC_NbrOfConversion = 1; ADC_Init(ADC1, &ADC_InitStructure); ADC_RegularChannelConfig(ADC1, ADC_Channel_10, 1, ADC_SampleTime_3Cycles); ADC_DMARequestAfterLastTransferCmd(ADC1, ENABLE); /* Enable ADC1 DMA */ ADC_DMACmd(ADC1, ENABLE); /* Enable ADC1 */ ADC_Cmd(ADC1, ENABLE); Для управления сетью использую lwip_v1.3.2. Наблюдается следующая ситуация, изначально АЦП работает исправно, однако после того, как контроллер получает ARP пакет, содержащий MAC адрес собеседника, и начинает передавать ему данные, DMA АЦП тут же вылетает с ошибкой FIFO ERROR: FEIF0. Возникает ощущение, что DMA Ethernet отнимает доступ к шине у DMA ADC, в результате чего, тот не успевает вовремя забрать данные с приёмного буфера ADC. С другой стороны, скорость обновления небольшая, и у DMA ADC достаточно времени, чтобы забрать данные. Если, у кого-нибудь есть какие-либо соображения о причине неполадки, или же он уже встречался с такой проблемой, прошу высказаться. Спасибо.
  16. Всё понятно. Спасибо за ответ.
  17. Здравствуйте. При создании компонента я хочу назначить ему определённую высоту. Однако я столкнулся со следующей проблемой. Когда я рисую place_bound_top компонента при помощи "Add Rect", то без проблем определяю параметр Package_Height_Max. Когда же мне необходимо получить place_bound_top не прямоугольной формы, то я создаю данный obstacle при помощи инструмента "Add Line". Однако при этом параметр Package_Height_Max в свойствах данного obstacle отсутствует. Скажите, пожалуйста, это техническое ограничение программы, или всё-таки для создания непрямоугольного obstacle можно применить другой, корректный способ.
  18. У меня есть библиотека фотопринтов в формате LLB (Layout). Скажите, пожалуйста, можно ли её как-нибудь транслировать в фотопринты формата PCB Editor (psm или dra)?
  19. Pcb Editor Спасибо. Я ступил , полез зачем-то в options. Хотя,интересно, на что именно воздействует параметр Line Width.
  20. При редактировании REF DES я хочу изменить ширину линии шрифта. Для этого в options я изменяю параметр ширина линии (Line Width), однако визуально не наблюдаю никаких изменений (утолщение ширины линии в редакторе не происходит). Скажите, пожалуйста, что я неправильно делаю?
  21. В Layot после создания так называемых obstacles (рисунка шелкографии, outline и т.д.) возможно было их редактировать, перемещая отдельные сегменты относительно друг друга (это делалось при нажатой кнопке S). Скажите, пожалуйста, возможно ли и в PCB Design также оперировать отдельными сегментами, а не всем контуром сразу?