Jump to content

    

RadiatoR

Свой
  • Content Count

    366
  • Joined

  • Last visited

Community Reputation

0 Обычный

About RadiatoR

  • Rank
    Местный
  • Birthday 05/17/1991

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Recent Profile Visitors

2342 profile views
  1. Всех приветствую. В чипе есть 1 hard SPI. Он находится внизу чипа слева или справа. Как определить? Или где найти? В мануале не нашел, точнее там есть пример для чипа с двумя SPI и их расположением, а с одним нету. Я отладил железяку на icebreaker плате. Там стоит чип с двумя SPI и проблем не возникло. Сейчас делаю плату с ICE5LP1K-SG48I, в нем 1 SPI и не ясно где находится. Самого чипа на руках нет, эмпирически проверить не могу. Самое смешное, что если сгенерить проект в iceCube и в залезть в генератор SPI, то он может сгенерировать код для обоих SPI =(, не выдав предупреждений и ошибок, хотя чип в проекте указан. При этом если посмотреть на chip planner, то в нем по прежнему есть оба SPI и I2C, хотя I2C тоже всего 1. Такое ощущение, что в planner'е просто шаблонная форма. Верхние кружки - это I2C, нижние SPI. Но должно быть только 1/1. Может использовал кто? Заранее благодарю.
  2. В моем случае до замены VTOR проводится обновления FLASH и расчет CRC. Только после совпадения происходит переход.
  3. в бутлоадере? Даже если и так, то он предусмотрит это. По крайней мере должен понимать как работать со своей средой...
  4. Вот мой переход. #define INTERNAL_FLASH_SECTOR_0 FLASH_BASE #define INTERNAL_FLASH_SECTOR_1 (INTERNAL_FLASH_SECTOR_0 + 16_kb) #define INT_FLASH_SIZE (INTERNAL_FLASH_SECTOR_1 + INT_FLASH_OFFSET_SIZE) #define INT_FLASH_CRC (INTERNAL_FLASH_SECTOR_1 + INT_FLASH_OFFSET_CRC32) #define INT_FLASH_START (INTERNAL_FLASH_SECTOR_1 + 4) ... __set_MSP(*(uint *)(INTERNAL_FLASH_SECTOR_1)); SCB->VTOR = INTERNAL_FLASH_SECTOR_1; ((void(*)())(*((uint *)INT_FLASH_START)))(); // Offset 4: firmware length, firmware crc, reset handler Работает отлично Вы не перекидываете вектора прерываний VTOR. Вполне возможно при следующем прерывании вызывается обработчик, которого нет.
  5. Это так. Собственно а зачем стартовать с оффсета?
  6. Достаточно ли здесь будет выбрать конденсатор с минимальным импедансом на несущей частоте? А, ну так достаточно выбрать кондер с большой емкостью. В принципе этого должно быть достаточно, правильно? А не, все же импеданс =)
  7. Прочитал AN5165. Вычитал следующее: To obtain the best RF performance, a matching network is required between the RF1 output pin and the RF low-pass filter. This network is composed by a discrete LC PI filter followed by an integrated low-pass filter. C3 and L1 have the role of adapting the RF pin impedance of the STM32WB to 50 Ω, the impedance that must be seen by the SMA. C4 and the integrated low-pass filter FLT1 are used to reject the harmonic frequencies. It is also recommended to place the matching network as near as possible to the RF output and to avoid long track between each component of this matching network. The track between the output of the low-pass filter FLT1 and the SMA connector can have a variable length, depending upon the application, provided that its impedance is always 50 Ω. Схема из апноута: То есть левый согласователь (в 1 сообщении) нужен чтобы согласовать выходной импеданс усилителя. Для своих решений ST предлагает в качестве согласователя и LPF использовать интегрированный согласователь с фильтром https://www.st.com/en/emi-filtering-and-signal-conditioning/mlpf-wb55-01e3.html. Сам же FLT1 нужен чтобы отфильтровать сигнал от гармоник. Правый согласователь нужен чтобы согласовать импеданс с антенной. Я правильно понял? И еще вопрос: после первого согласователя ожидается, что линия до антенны будет иметь импеданс 50 Ом. Саму линию (ширина дорожки) мы рассчитываем исходя из этого. Но она может быть не точна в расчете и в изготовлении и импеданс не будет равным 50 Ом. Это можно проверить только эмпирически и исправить только шириной дорожки, так? Это такой девайс? Как мне с его помощью протестировать импеданс линии? С антенной ясно (вроде бы) - подключил, включил измерение, он вывел результат. А как быть с линией до антенны? Спасибо.
  8. Вы уверены? В первом же ДШ увидел схему включения симм. - асим. Это никак не согласование. Или я чего-то не знаю? А как по итогу изготовления платы подобрать номиналы чтобы правильно согласовать? Я знаю только общий расчет импеданса линии исходя из ее типа stripline или microstrip. И исходя из него могу посчитать согласователь. Есть более точные варианты или этот вполне подойдет? И есть ли доступные методы проверки качества согласования без редкого оборудования? У меня есть осцилл (Полоса пропускания - 20-МГц; Частота дискретизации - 100-МГц;). Им полагаю особо не измеришь? Спасибо.
  9. А разве балун не для согласования симметричного / асимметричного сигнала? Здесь сразу асимметричный идет. Спасибо! Я что-то и забыл про апноуты =)
  10. Всем доброго дня/вечера. Была куплена вышеуказанная плата для отладки, тестирования с целью разработать свою плату с BLE. Со схемотехникой и трассировкой ВЧ электроники ранее не сталкивался (если подходить к этому обдуманно). Прочитал статьи по теории ВЧ отсюда allaboutcircuits.com. Там описано достаточно хорошо и в упрощенном виде, что мне и нужно. В этих материалах я нашел, что если проводник между выходным усилителем (в моем случае это сам проц stm32) и нагрузкой (антенна) меньше 1/4 * длина волны, то его не нужно согласовывать. Для BLE (2,4ГГц) L = 299792458 / 2.4G = ~124мм. 1/4L = 31мм. Привожу схему платы из ДШ: Если смотреть на плату, то дорожки, которые идут к антенне, либо к SMA разъему меньше 31мм, около 12-16мм на глаз. Подскажите ответы на несколько вопросов: Зачем на схеме установлен входящий согласователь (слева), при отсутствии необходимости согласовывать линию? Что делает фильтр FLT1? Что делает сам компонент понятно, а зачем он нужен в этой схеме? Как посчитать номинал C35 и С38 для развилки сигнала? Зачем нужен согласователь для PCB антенны? Она же имеет известный импеданс, близкий к 50 Ом. Спасибо за помощь. PS. Импеданс дорожки не зависит от длины, а зависит от ее ширины и расположения среди других полигонов / цепей. Стало понятно зачем нужен, например, согласователь слева. Остальные моменты пока не прояснил. Кстати еще момент - в комментарии под левым согласователем подписано, что номиналы будут выбраны after evaluation. Имеется ввиду после разработки топологии стал известен импеданс линии и можно просчитать номиналы?
  11. Точно. Конкатенация, забыл, новичок =). А на SV что-то не хочется пока переходить. Пока опыта мало буду работать с .v
  12. Если бы были структуры и {} вместо begin/end было бы просто восхитительно! А так почти..
  13. Так и есть (будет). Но сейчас только проектируется. И чтобы не тыкать каждый раз ресет после переконфигурации я решил сделать такой подход. Кстати, в логах я нашел следующее: @W: FX1039 :"d:\dropbox\sources\codes\libraries\verilog\startup.v":8:1:8:6|User-specified initial value defined for instance startup.delay[4:0] is being ignored. тем не менее ресет работает.