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

bark

Свой
  • Постов

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

  • Посещение

Репутация

0 Обычный

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

  • Звание
    Частый гость
    Частый гость
  • День рождения 01.01.1983

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array
  1. Проблема решилась обновлением стека Bluenrg-MS.
  2. STM32L05x

    Доброго времени суток. Пытаюсь решить задачу с динамическим изменением частоты тактирования от внутреннего источника MSI. Необходимо переключаться между двумя частотами 1.048Мгц и 65,535кГц. Контролер STM32L051K8U6. void SystemClock_Config(uint32_t RCC_MSIRANGE_VALUE) { //RCC_MSIRANGE_VALUE= RCC_MSIRANGE_4 RCC_ClkInitTypeDef RCC_ClkInitStruct; RCC_OscInitTypeDef RCC_OscInitStruct; /* Enable Power Control clock */ __PWR_CLK_ENABLE(); /* The voltage scaling allows optimizing the power consumption when the device is clocked below the maximum system frequency, to update the voltage scaling value regarding system frequency refer to product datasheet. */ __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); /* Enable MSI Oscillator */ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_MSI; RCC_OscInitStruct.MSIState = RCC_MSI_ON; RCC_OscInitStruct.MSIClockRange = RCC_MSIRANGE_VALUE; RCC_OscInitStruct.MSICalibrationValue = 0x00; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; if(HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { /* Initialization Error */ Error_Handler(); } /* Select MSI as system clock source and configure the HCLK, PCLK1 and PCLK2 clocks dividers */ RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2); RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_MSI; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV2; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; if(HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK) { /* Initialization Error */ Error_Handler(); } /* Set MSI range to 4 */ __HAL_RCC_MSI_RANGE_CONFIG(RCC_MSIRANGE_4); } В процессе работы пытаюсь перенастроить на частоту RCC_MSIRANGE_0 (65кГц) __HAL_RCC_MSI_RANGE_CONFIG(RCC_MSIRANGE_0); Контроллер при этом зависает. Скажите, возможно ли это впринципе (не перезагружая контроллер к примеру по WDG) и если да - то как это правильно сделать.
  3. STM32L053+Bluenrg.

    Простите, не совсем понял. Вы это имеете ввиду ret = aci_gap_set_discoverable(ADV_IND, 0, 0, PUBLIC_ADDR, NO_WHITE_LIST_USE, 13, local_name, 0, NULL, 0, 0); ? Могу просто не знать.
  4. STM32L053+Bluenrg.

    Прибор подключается в разрыв одной из линий питания, в данном случае "+". До контроллера и модуля.
  5. STM32L053+Bluenrg.

    Данный прибор UT71A вроде позиционируется как True RMS (171A). Вроде отделил питание от Nucleo, взял не от USB а с внешнего источника. Jenya7, подскажите, не задействованные ноги на МК вы к земле через резисторы подключаете?
  6. STM32L053+Bluenrg.

    Привет всем кто читает это. Вопрос касается энергопотребления. STM32L053R8 в связке с bluetooth модулем Bluenrg-MS (4.1). Обе девборды.http://www.st.com/web/catalog/tools/FM116/...LN1847/PF260001 Пытаюсь добиться максимально низкого потребления. Застрял на 3мА. Что есть ОченЬ много. Тактирование STM-ки - от MSI (4.2МГц). Перебирал различные режимы - LowPower Sleep, Stop, LowPower Run - снижение было максимум на пару сотен мкА (100-200мкА). Вопрос 2-й: У кого-то получалось добиться минимальных параметров потребления согласно документации (сотни микроампер) Вопрос 1-й: Рекомендации по снижению энергопотребления - ткните носом, можно с ноги. https://www.dropbox.com/sc/npuldug3nq2inr2/...x_2o-Q2yHYHhy_a Питание контроллера и bluetooth внешнее. https://www.dropbox.com/s/dwcueny9s5levfz/devboard.png?dl=0
  7. вот фото микросхемы Foto приблизьте - должна быть видна надпись
  8. Есть один интересный и не понятный мне момент - если я сделаю активным CS ("0"),и буду его удерживать на интерфейсе SPI - то модуль радиодоступен на время удержания линии CS.
  9. Я правильно понимаю - речь о внешнем LSE 32,768кГц? Как вы думаете, перевод на внутренний генератор должен решить данную проблему?
  10. BlueNRG-MS Init

    Доброго времени суток, форумчане. Имеется проект на BlueNRG-MS. За основу программной настройки и управления взят проект "SampleAppThT". Режим Server. Выполняю настройку следующим образом: main { .... BNRG_SPI_Init(); /* Initialize the BlueNRG HCI */ HCI_Init(); /* Reset BlueNRG hardware */ BlueNRG_RST(); wait_IRQ_SPI_FLAG(); getBlueNRGVersion(&hwVersion,&fwVersion); printk("hwVersion = 0x%X fwVersion = 0x%X Version = %X",hwVersion,fwVersion,Version); /* Reset BlueNRG hardware */ BlueNRG_RST(); wait_IRQ_SPI_FLAG(); Osal_MemCpy(bdaddr, SERVER_BDADDR, sizeof(SERVER_BDADDR)); ret = aci_hal_write_config_data(CONFIG_DATA_PUBADDR_OFFSET,CONFIG_DATA_PUBADDR_LEN,bda ddr); printk_co(GREEN,"aci_hal_write_config_data() ret=0x%X",ret); ret = aci_gatt_init(); printk_co(GREEN,"aci_gatt_init() ret=0x%X",ret); ret = aci_gap_init(GAP_PERIPHERAL_ROLE, 0, 7, &service_handle, &dev_name_char_handle, &appearance_char_handle); //appearance_char_handle - 8; //service_handle - 5; //dev_name_char_handle - 6; printk_co(GREEN,"aci_gap_init() ret=0x%X",ret); printk_co(GREEN,"service_handle = 0x%X dev_name_char_handle = 0x%X appearance_char_handle = 0x%X",service_handle,dev_name_char_handle,appearance_char_handle); aci_gatt_update_char_value(service_handle, dev_name_char_handle, 0,strlen(name), (uint8_t *)name); printk_co(GREEN,"aci_gatt_update_char_value() ret=0x%X",ret); ret = aci_gap_set_auth_requirement(MITM_PROTECTION_REQUIRED,OOB_AUTH_DATA_ABSENT,0, 7,16,USE_FIXED_PIN_FOR_PAIRING,123456,BONDING); printk_co(GREEN,"aci_gap_set_auth_requirement() ret=0x%X",ret);// ret = Add_Acc_Service(); printk_co(GREEN,"Add_Acc_Service() ret=0x%X",ret);//7 ret = Add_Environmental_Sensor_Service(); printk_co(GREEN,"Add_Environmental_Sensor_Service() ret=0x%X",ret); ret = aci_hal_set_tx_power_level(1,4); printk_co(GREEN,"aci_hal_set_tx_power_level() ret=0x%X",ret); .... } void setConnectable(void) { tBleStatus ret; //const char local_name[] = {AD_TYPE_COMPLETE_LOCAL_NAME,'B','l','u','e','N','R','G'}; hci_le_set_scan_resp_data(0,NULL); printk("General Discoverable Mode.\n"); ret = aci_gap_set_discoverable(ADV_IND, 0, 0, PUBLIC_ADDR, NO_WHITE_LIST_USE, sizeof(local_name), local_name, 0, NULL, 0, 0); printk_co(GREEN,"aci_gap_set_discoverable() ret=0x%X",ret); if (ret != BLE_STATUS_SUCCESS) { printk("Error while setting discoverable mode (%d)\n", ret); } } В результате наблюдаю следующую картину видимости моего устройства: RSSI graph Устройство доступно в течении ~3-5 сек с периодом ~30 сек. Тактирование - HSI=16MHz. LSE - ext 32.768kHz Подскажите пожалуйста, в чем может быть проблема? С отладочной платой IDB04A1 все работает - модуль видится постоянно.
  11. Для примера как это реализовалось бы в Verilog: 1. Присваивание. reg [24:0] var ; // 25 битная регистровая переменная варианты присвоения: HEX var <= 25'd23_799_994 ; DEC var <= 25'h16B_28BA ; BIN var <= 25'b1_0110_1011_0010_1000_1011_1010 ; подчеркивание можно использовать как разделитель для удобства. 2. Побитные операции. Это свёртывающая операция между всеми битами выражения. Записывается так: wire var_or = |var ; wire var_and = &var ; wire var_xor = ^var ; в итоге линия var_or будет содержать побитный OR регистра var. аналогично с AND и XOR
  12. Если честно я не помню откуда брал свой фал лицензии. но скорее всего основа его шла с рутреккера.
  13. Нормально там всё работает. ищи ещё таблетки. на рутреккере вроде были вполне вменяемые файлы/генераторы лицензий.
  14. На самом деле не так всё и сложно. всё это понадобилось ради честной гигабитной скорости. на своих тестах видел скорость до 982Мбит/с. ( СиклонIII ) если доработать тесты то можно было ещё ближе к гигабиту скорость увидеть, но было лень уже этим заниматься, то что было достигнуто уже хватало. На проце, на сколько я знаю, с высокими скоростями сложнее.
  15. Ну понятное дело, что если выбрать самый болшой кристалл, то под него дольше будет собираться что угодно.. но 10 минут для пустого проекта это совсем много. у меня сейчас за 7-8 минут собирается проект с локалкой (МАС+аппаратная реализация протоколов до UDP) + логики на 20К и памяти на 3мегабита. Стратикс4ГХ 230. кстати такой же проект только с несколькими инстанциями логики на 32х вообще не компилится т.к. не хватает 1.8Гига которыйе может выделить 32х винда. Q11.0 b207 SP1 64x проц Е8400 @ ~3.8ГГц, 4 гига памяти, вин7 64х
×
×
  • Создать...