Jump to content

    

Bpovov

Участник
  • Content Count

    24
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Bpovov

  • Rank
    Участник

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Добрый день! Пока у меня нет опыта работы на Zynq Ultrascale+, но ближайшее время мне нужно будет начать с ним ковыряться, вопрос простой, но я нигде не нашел на него ответа, может кто-нибудь подскажет. В нем есть 2 CAN контроллера, написано, что они соответствуют стандартам CAN 2.0B и т.д., но я нигде не нашел непосредственные значения скорости работы которые поддерживают эти контроллеры. Например я хочу подцепить к ним микрушку физ. уровня со скоростью 2-5Mbit (естественно с уменьшением длины линии передачи), смогу ли я на такой скорости работать с Zynq ом, ведь по стандартам CAN это не более 1Mbit (хотя огромное число микрух CANа физ. уровня. до 10Mbit). Подскажите пожалуйста, если у кого информация по данному вопросу. П.С. сам проверить это не могу, т.к. пока ко мне еще не пришел Zynq, а железо уже нужно делать, по этому хочу определиться с интерфейсами. Тем более что даже если заработает у меня, будет ли это штатный для него режим со всеми вытекающими температурными вещами и повторяемостью на изделиях. Спасибо, заранее!
  2. Все верно, но long по длине также больше int, как и в AVR. Дело не в переносимости, она в моем случае не нужна. Я смотрел ассемблер этих выражений, там все четко.
  3. Вот такая штука к примеру, в кейле даже на кортекс М работает верно, без залезания в асм int A, B; long C; А = B*C; при условии что результат и значения операндов не вылезают за int
  4. Короче что бы я не делал компилятор ни явно ни неявно не захотел адекватно приводить int к long и наоборот, т.е. пришлось где то все на long делать - потерял быстродействие, а где то на асме вручную прописывать байтовые действия с постоянным держанием в нулях старших байтов и контроль знака для int... Просто уже отвык от такого)) во всяких современных кортексах А-шках, с этим проблем нет)))
  5. Добрый всем день! Есть небольшой вопрос. На одной ПП есть схема в десятком абсолютно одинаковых прецизионных ЦАПов и одним процом управления, рисунок на ПП для каждого ЦАПа должен быть абсолютно одинаковым, только линии интерфейса к процу отличаются соответственно. Отсюда вопрос такой: сделал схему для одного ЦАПа, развел ее на ПП, как дальше ее максимально эффективно десять раз дублировать (т.е. и на схеме и на плате)? Что бы не перерисовывать по 10 раз всё! Заранее спасибо, друзья!
  6. Вот собственно весь кусок кода что наассемблир комплилятор, как мне кажется тут косяк уже даже в самом выражении (напомню промежуточные значения ну то есть (Current_Position_uV - Mas_position[9])*100)) могут быть больше signed int. #define TIME_DELAY_MEAS 416 signed long Current_Speed_actuator_Buf; signed int Current_Speed_actuator, Current_Position_uV, Mas_position[10]; ////////////////Current_Speed_actuator_Buf = (((Current_Position_uV - Mas_position[9])*100) / TIME_DELAY_MEAS); __GETW1MN _Mas_position,18 LDS R26,_Current_Position_uV LDS R27,_Current_Position_uV+1 SUB R26,R30 SBC R27,R31 LDI R30,LOW(100) LDI R31,HIGH(100) CALL __MULW12 MOVW R26,R30 LDI R30,LOW(416) LDI R31,HIGH(416) CALL __DIVW21 CALL __CWD1 STS _Current_Speed_actuator_Buf,R30 STS _Current_Speed_actuator_Buf+1,R31 STS _Current_Speed_actuator_Buf+2,R22 STS _Current_Speed_actuator_Buf+3,R23 /////////////////////////Current_Speed_actuator = (signed int)Current_Speed_actuator_Buf; LDS R30,_Current_Speed_actuator_Buf LDS R31,_Current_Speed_actuator_Buf+1 STS _Current_Speed_actuator,R30 STS _Current_Speed_actuator+1,R31 .MACRO __GETW1MN LDS R30,@0+(@1) LDS R31,@0+(@1)+1 .ENDM __ANEGW1: NEG R31 NEG R30 SBCI R31,0 RET __LSLW2: LSL R30 ROL R31 LSL R30 ROL R31 RET __CWD1: MOV R22,R31 ADD R22,R22 SBC R22,R22 MOV R23,R22 RET __MULW12U: MUL R31,R26 MOV R31,R0 MUL R30,R27 ADD R31,R0 MUL R30,R26 MOV R30,R0 ADD R31,R1 RET __MULW12: RCALL __CHKSIGNW RCALL __MULW12U BRTC __MULW121 RCALL __ANEGW1 __MULW121: RET __DIVW21U: CLR R0 CLR R1 LDI R25,16 __DIVW21U1: LSL R26 ROL R27 ROL R0 ROL R1 SUB R0,R30 SBC R1,R31 BRCC __DIVW21U2 ADD R0,R30 ADC R1,R31 RJMP __DIVW21U3 __DIVW21U2: SBR R26,1 __DIVW21U3: DEC R25 BRNE __DIVW21U1 MOVW R30,R26 MOVW R26,R0 RET __DIVW21: RCALL __CHKSIGNW RCALL __DIVW21U BRTC __DIVW211 RCALL __ANEGW1 __DIVW211: RET __CHKSIGNW: CLT SBRS R31,7 RJMP __CHKSW1 RCALL __ANEGW1 SET __CHKSW1: SBRS R27,7 RJMP __CHKSW2 COM R26 COM R27 ADIW R26,1 BLD R0,0 INC R0 BST R0,0 __CHKSW2: RET
  7. 16 , 15 числовых 1 знаковый ну кстати и логично что ничего не меняет скомпилированный кусок асма одиноков и для final = (signed int)a; и для final = a; .......... LDS R30,_a LDS R31,_a+1 STS _final ,R30 STS _final ,R31 .......... т.е. ничего не поменялось и насколько я понимаю, как раз копируются просто два младших байта, а информация о знаке которая храниться в 4 байте long'а (переменной "a") теряется.... вроде верно мыслю?
  8. Спасибо! Это первое что в голову пришло - попробовал, но тоже самое никакого эффекта на железе
  9. Добрый день друзья! Уже лет 15 не писал для AVR-ных камней, но тут потребовалось вспоминать атмежку8)) ностальгия блин) но возникла проблема.... есть выражение signed long a; signed int b, c, final; unsigned char d; a= ((b-c)*100)/d; final = a; Внутри выражения(a=....) промежуточные значения могут быть на бОльшую часть диапазона signed long, но гарантированно без переполнения. Конечное же значение записываемое в a, гарантированно без переполнения попадает в диапазон signed int. Поэтому чтобы дальше работать с более короткой переменной, я решил переписать результат в final, который signed int. При проверки на железе в final по факту ахинея, а в "а" все верно. Т.е. косяк в преобразовании типов. В unsigned там все просто преобразовывается. А с signed что то не придумать. Подскажите пожалуйста, заранее спасибо!
  10. На данный момент он не известен, тем более в данном диапазоне частот. Известно только что на определенных частотах начинается активное поглощение примесными центрами. А вот насколько активное, это в том числе одна из задач исследования.
  11. У нас чисто импульсный режим. С, я думаю, не более чем 1мс(может и меньше, может десятками микросекунд ограничимся) временем накачки, с частотой несколько герц. Так что с нагревом проблем не будет. Вентиль просто поглощает отраженных волну, тут другая опера... насколько мне кажется игра на критических частотах. Ну так можность и будет поглощаться образцом во втором резонаторе.
  12. Добрый всем день! Мне тут один знакомый рассказал. Что ещё в далёких годах, задачи подобные моей решали просто - ставили магнетрон который качал резонатор, при помощи которого он ещё и стабилизировался по частоте, от этого резонатора при помощи излучающей щели мощность передавались на другой резонатор внутри которого и был объект изменяющимися параметрами(кстати в этой ветке уже предлагали такой вариант). Таким образом развязывали рассогласование генератора и нагрузки. К сожалению мой знакомый не свчист и не знает подробностей((( если мне удасться подобрать магнетроны на нужные частоты, то по конструкции выходит совсем просто... тогда мне и не нужен никакой внешний генератор. но сколько я не пытался найти литературу или статьи где бы хоть как то освещался подобная система - ничего не нашел... для меня больших вопросов сейчас два! номер раз - как собственно правильно нагрузить магнетрон на резонатор, тут ведь получается что внешний резонатор становиться частью колебательной системы магнетрона. Как это сделать что бы магнетрон не повредить с снять с него всю мощность. номер два - как относительно первого внешнего резонатора, рассчитать второй, что бы между ними связь была по сути однонаправленная. если подскажите что почитать или ещё советы, буду безмерно благодарен!!
  13. Добрый день всем! В моей проблеме добавилось одно серьезное упрощение. Для уверенной регистрации необходимых люминесцентных эффектов решили выбрать только три четко фиксированных частоты(полоса не более 1-2%). Отсюда появилась мысль сделать три резонаторной установки для каждой конкретной частоты. Все остальные условия те же. Может ли это серьезно упростить конструкцию? Есть ли какие-нибудь варианты/методы?
  14. Еще вопрос к форумчанам, вот к примеру видео... Нарисовал волновод в HFworks... короткозамкнутый с обоих сторон воздушный волновод, слева в конце волновода штырь возбудитель, по центру два согласующих четвертьволновых штырька, поигрался подобрал режим справа теперь СВ т.е. резонатор, слева СВ практически нет(точнее немного еще есть, но можно их идеально вывести, оставил немного для наглядности). вопрос теперь в чем, я никак не могу добиться что бы от генератора были БВ до согласующих штырьков... в симуляторах это вообще реально? будет такая система работать в железе именно так как симится? это просто пример, тренируюся симить... что бы потом нормально полностью просимить свою систему. Опыта у меня не много без хорошего просима не решусь собирать железо. 12.mp4
  15. Я думаю вы абсолютно правы, по поводу необходимости двух режимов! Можете если не сложно привести какие-нибудь примеры/ссылки на тему переключающегося согласователя? Вот про возбуждение резонатора через резонатор краем уха тоже как то слышал, но разве изменение нагрузки во втором резонаторе не скажется на первый(в который источник накачивает)? Т.е. получается если резонатор не согласован мощность от источника проходя через него попадает в нагрузку... а если согласован то остается в резонаторе... изящно! спасибо за идею! нужно попробовать посчитать что получиться. А какая в этом проблема? думаете трудно будет подобрать/посчитать? Можно измерить материал, но во первых материал не один, во вторых в зависимости от состава/легирования проницаемость будет сильно варьироваться, в третьих размеры образцов будут разные... не хочется сделать установку которая будет валидна в ограниченных случаях. Такая частотная полоса нужна не для согласования - просто определенные уровни молекул, возбуждаются точными частотами в этом диапазоне, да диапазон возбуждения конкретно уровня узок но нужно к примеру резонанс как на 3,67ГГц, так и на 2,32ГГц.... не очень понял, ваш комментарий по поводу анализатора цепей... можете пожалуйста по подробнее...