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

dsl2640free

Участник
  • Постов

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

  • Посещение

Весь контент dsl2640free


  1. Можно использовать данную функцию для записи во flash с помощью HAL библиотеки: void Write_Flash(uint8_t data) { HAL_FLASH_Unlock(); __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP | FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | FLASH_FLAG_PGSERR ); FLASH_Erase_Sector(FLASH_SECTOR_6, VOLTAGE_RANGE_3); HAL_FLASH_Program(TYPEPROGRAM_WORD, FlashAddress, data); HAL_FLASH_Lock(); }
  2. управление потребляемой мощностью в сложных устройствах.
  3. Похожая система реализована в iPhone. Обмен между приложением и кабелем, а через него и телефоном, зашифрован. В кабеле есть микросхема с ключами. Apple запрещает кабели с левыми фишками.
  4. Ниже приведен пример более сложной процедуры, которая использует DSP особенности dsPIC33E.
  5. кусок кода, детектирующий гармоники в составе сигнала
  6. Я программирую в Energia IDE для начинающих в самый раз: https://energia.nu/
  7. Надо замкнуть оба "automatic ISP jumpers" p31 и p36
  8. можно вот так инициализировать
  9. https://ru.aliexpress.com/item/32878229493.html?spm=a2g0v.search0104.3.8.c0ba72684kcTf4&ws_ab_test=searchweb0_0%2Csearchweb201602_8_10065_10068_319_317_10696_453_10084_454_10083_10618_10307_10301_537_536_10059_10884_10889_10887_321_322_10915_10103_10914_10911_10910%2Csearchweb201603_52%2CppcSwitch_0&algo_expid=a06b6722-8749-4334-a40e-5fde190d4ea8-4&algo_pvid=a06b6722-8749-4334-a40e-5fde190d4ea8&transAbTest=ae803_4 po 200 руб.
  10. специально взял попробовал - авторазмещение работает. просто исправил файл pcb.ini - указад путь к спекктре и к файлам accel2sp и sp2accel (причем Спекктра довольно старая 9.02, да и конвертеры тоже не новые - проверенные временем) - и, как говорится,- вуаля! - все работает и результат возвращается обратно в PCAD. Другой вопрос, что в Спекктре авторазмещение, в отличие от автотрассировщика, используется мало в силу неудовлетворительных результатов. Вручную оказывается практически всегда лучше, да и операция не такая трудоемкая
  11. У меня так тоже было. помогла специальная инициализация: GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART4, ENABLE); //UART4_TX PC.10 PC.11 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 | GPIO_Pin_11; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; GPIO_Init(GPIOC, &GPIO_InitStructure); GPIO_PinAFConfig(GPIOC, GPIO_PinSource10, GPIO_AF_UART4); GPIO_PinAFConfig(GPIOC, GPIO_PinSource11, GPIO_AF_UART4); //Usart1 NVIC NVIC_InitStructure.NVIC_IRQChannel = UART4_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); USART_InitStructure.USART_BaudRate = Baud; USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_Parity = USART_Parity_No; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_Init(UART4, &USART_InitStructure); USART_ITConfig(UART4, USART_IT_RXNE, ENABLE); USART_Cmd(UART4, ENABLE);
  12. А вы возьмите реальные камни и проверьте эту "инсайдерскую" информацию
  13. в ST для хранения калибровочных данных используются разные адреса в зависимости от чипа Chip CAL1 CAL2 L15+[CRUV]C 0x1FF800FA 0x1FF800FE L162[RV]C 0x1FF800FA 0x1FF800FE L15[12]+[68B] 0x1FF8007A 0x1FF8007E
  14. я часто бываю рассеянным А ваше замечание учту.
  15. есть пример по PDM в верилог `timescale 1ns / 1ps module Mic_Demo( output anout, output ampSD, output sclk, output ncs, input sdata, input clk ); reg [4:0]clk_cntr_reg; reg pwm_val_reg; always @(posedge clk) begin clk_cntr_reg <= clk_cntr_reg + 1; end always @(posedge clk) begin if(clk_cntr_reg == 5'b01111) begin pwm_val_reg <= sdata; end end //sclk = 100MHz / 32 = 3.125 MHz assign sclk = clk_cntr_reg[4]; assign anout = pwm_val_reg; assign ncs = 1'b0; //mic LRSel assign ampSD = 1'b1; endmodule
  16. Матлаб не поддерживает целочисленные матрицы при произведении Попробуй так: multiplied = double(singleMat) * double(singleMatT); или multiplied = single(singleMat) * single(singleMatT);
  17. // чтение из регистра W5300 uint16_t ReadReg (uint16_t Addr) { uint16_t data; GPIOD->MODER = 0x00000000; // порт для данных сделать входом GPIOE->ODR = Addr; GPIOB->ODR = 0x00009800; // WRC data = GPIOD->IDR; GPIOB->ODR = 0x0000F800; // WRC GPIOE->ODR = Addr; GPIOD->MODER = 0x55555555; // порт D сделать выходом return (data); } // запись в регистр W5300 void WriteReg (uint16_t Addr, uint16_t Data) { GPIOE->ODR = Addr; GPIOD->ODR = Data; GPIOB->ODR = 0x00005800; // WRC __NOP(); GPIOB->ODR = 0x0000F800; // WRC GPIOE->ODR = 0x0000; GPIOD->ODR = 0x0000; } Тут я думаю, ничего сложного.
×
×
  • Создать...