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

Reystlin

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

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

  • Посещение

Сообщения, опубликованные Reystlin


  1. Добрый день ув. форумчане

    возник вопрос, где можно заказывать вот такие вот панели

    https://pp.vk.me/c636330/v636330914/39f92/5m4dqeOPEOM.jpg

    https://pp.vk.me/c636330/v636330914/39f9a/Q_JeY1HkhII.jpg

    http://ros-ctm.ru/imgs/50605-svarochnyy-in...ubag-in-200.jpg

    как называется такая технология?

    как я понял, там гибкая плата, на которую припаяны светодиоды и кнопки и потом сверху чем-то типа пленки закрыто

     

  2. Доброго времени суток ув. форумчане

    перелопатил кучу мануалов по настройке эклипса под линукс для полноценной работы с stm32 через st-link с отладкой, никак не могу настроить эту чудо-связку, посоветуйте пожалуйста проверенный рабочий мануал по настройке, или может кто поможет с настройкой?

    у меня стоит Eclispe Luna 4.4.2

    тулчейны установлены, из консоли видятся. ARM Eclipse Plugin тоже установлен. но при создании проекта нет вкладки ARM Crooss Target Application

    Заранее благодарю

  3. я ищу что-нибудь близкое к резисторам Alpha R16 с возможностью установить на корпус и не длинным валом с зубчиками для кнуба, все что мне попадалось либо без резьбы, либо резьба металлическая, либо с длинным валом или вал гладкий под отвертку.... да и то достать их толком негде

  4. Доброго времени суток ув. форумчане

    конструирую силовой преобразователь и у меня в нем имеется переменный резистор в первичной цепи, посему нужен изолированный резистор сопротивлением около 5 килоом

    подскажите где такой можно достать? сколько не искал на сайтах магазинов и на алиэкспресе, несмог найти подходящие...

    заранее благодарю

  5. Доброго времени суток ув. форумчане

    перестал у меня IAR видеть мой ST-Link в составе Discovery

    непойму куда копать

    ошибку вот такую выдает при попытке прошить что-нибудь

    Mon Aug 15, 2016 21:35:29: Fatal error: Failed to search for probes, ensure that the USB drivers are installled. Session aborted!

     

    скачал ST_Link Utility, пишет : No ST-LINK detected

    в списке устройств тоже не виден.... , питание на МК программатора приходит, на кварце генерация есть, светодиод COM моргает с периодичностью в 1 сек...

  6. чудеса с PLL продолжаются

    кварц 8мгц, выбираю в Экселевском файле источник HSE, ставлю частоту 160мгц, он мне высчитывает PLL_M=8 PLL_N=320 PLL_P=2 PCLK1=40 PCLK2=80, генерирурю файл, в коде заполняю структуру

    int main()
    {
     SystemCoreClockUpdate();
    
     RCC_ClocksTypeDef Clocks;
     RCC_GetClocksFreq(&Clocks);
    ....
    }
    

    и в дебаге вижу содержимое структуры

    SYSCLK=500000000

    HCLK=500000000

    PCLK1=125000000

    PCLK2=250000000

     

    причем от HSI работает как задумано

    осцил на ногах кварца показывает частоту 8мгц

     

    to Genadi Zawidowsk... перед отправкой на производство плат все эти моменты были устранены

  7. на данный момент к разъемам подключен только ST_LINK находящийся в плате Discovery, остальные разъемы пустые

     

    нашел косяк, присмотрелся к резистору идущему на Vdda, а он там 10ком стоит, по ошибке не туда впаял%) теперь запустилось все, спасибо большое

  8. https://www.dropbox.com/s/2dae76s0grdfdpm/D...d_MAG.lay6?dl=0 - вот файл разводки, кондеры по питанию и VCAPы стоят по 3х1мкф, схемы не имею, всегда сразу плату рисую. ещё навесом после стабилизатора 3.3 вольтового висит электролит 47мкф.

    код выглядит так, при пошаговом выполнении прога падает именнно на той строке, которую я кинул, до цикла не доходит выполнение

    Кубом сейчас попробую

  9. Добрый день ув. форумчане

    генерирурю файл syste_stm32f4xx.c с помощью утилиты Экселевской от разработчника

    при запуске приложения виснет на строке

    /* Enable the main PLL */

    RCC->CR |= RCC_CR_PLLON;

    пробовал от разных источников тактировать, когда тактирую напрямую от кварца или от внутреннего источника, то запускается без проблем, как только выбираю PLL с кварцем или внутренним источником, так отказывается работать...

    причем на другой похожей плате запускается, разводка питания одинаковая у плат, правда вторая плата без внешнего кварца

    частоту пытаюсь настроить 160мгц, но и другие частоты тоже не работают

    не пойму в какую сторону копать

  10. Добрый день ув. форумчане

    столкнулся с такой проблемкой, есть STm32F405 у которой аппаратный SPI подключен к пяти 74hc595 включенным последовательно

    передаю 0xFF во все микрухи и во всех, кроме первой(той, к которой сам мк подключен) на выходе получаю 1, а на ней 0, не пойму почему...

    куда копать? микруха запаяна хорошо, соплей нет

     

    uint8_t DispBuff[]={0xFF,0xFF,0xFF,0xFF,0xFF};
    void Init_SPI2()
    {
     GPIO_InitTypeDef GPIO_InitStructure;
    
     GPIO_StructInit(&GPIO_InitStructure);
    
     RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);
    
     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
     GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
     GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
    
     GPIO_Init(GPIOB, &GPIO_InitStructure);
    
     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_15;
     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
     GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
     GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
    
     GPIO_PinAFConfig(GPIOB, GPIO_PinSource13, GPIO_AF_SPI2);
     GPIO_PinAFConfig(GPIOB, GPIO_PinSource15, GPIO_AF_SPI2);
    
     GPIO_Init(GPIOB, &GPIO_InitStructure);
    
     GPIO_SetBits(GPIOB,GPIO_Pin_12);
    
      RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2, ENABLE);
    
     SPI_InitTypeDef SPI_InitTypeDefStruct;
    
     SPI_InitTypeDefStruct.SPI_Direction = SPI_Direction_1Line_Tx;
     SPI_InitTypeDefStruct.SPI_Mode = SPI_Mode_Master;
     SPI_InitTypeDefStruct.SPI_DataSize = SPI_DataSize_8b;
     SPI_InitTypeDefStruct.SPI_CPOL = SPI_CPOL_High;
     SPI_InitTypeDefStruct.SPI_CPHA = SPI_CPHA_1Edge;
     SPI_InitTypeDefStruct.SPI_NSS = SPI_NSS_Soft;
     SPI_InitTypeDefStruct.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_256;
     SPI_InitTypeDefStruct.SPI_FirstBit = SPI_FirstBit_MSB;
     SPI_InitTypeDefStruct.SPI_CRCPolynomial = 0;
    
     SPI_Init(SPI2, &SPI_InitTypeDefStruct);
    
     SPI_Cmd(SPI2, ENABLE);
    
     SPI_NSSInternalSoftwareConfig(SPI1, SPI_NSSInternalSoft_Set);
    
    DMA_InitTypeDef DMA_ini;
    
    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA1, ENABLE);
    
    DMA_ini.DMA_Channel = DMA_Channel_0;
    DMA_ini.DMA_PeripheralBaseAddr = (uint32_t)&(SPI2->DR);
    DMA_ini.DMA_Memory0BaseAddr = (uint32_t)DispBuff;
    DMA_ini.DMA_DIR = DMA_DIR_MemoryToPeripheral;
    DMA_ini.DMA_BufferSize = sizeof(DispBuff);
    DMA_ini.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
    DMA_ini.DMA_MemoryInc = DMA_MemoryInc_Enable;
    DMA_ini.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte;
    DMA_ini.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;
    DMA_ini.DMA_Mode = DMA_Mode_Normal;
    DMA_ini.DMA_Priority = DMA_Priority_Medium;
    DMA_ini.DMA_FIFOMode = DMA_FIFOMode_Disable;
    DMA_ini.DMA_FIFOThreshold = DMA_FIFOThreshold_1QuarterFull;
    DMA_ini.DMA_MemoryBurst = DMA_MemoryBurst_Single;
    DMA_ini.DMA_PeripheralBurst = DMA_PeripheralBurst_Single;
    
    DMA_Init(DMA1_Stream4, &DMA_ini);
    
    SPI_I2S_DMACmd(SPI2,SPI_I2S_DMAReq_Tx, ENABLE);   
    
    }
    
    int main()
    {
     Init_SPI2();
    
     while(1)
     {
    
    GPIO_ResetBits(GPIOB, GPIO_Pin_12);
    DMA_Cmd(DMA1_Stream4, ENABLE);
    GPIO_SetBits(GPIOB, GPIO_Pin_12);
    int i=0;
    while(i<100)
      i++;
    }
    }
    

  11. Доброго времени суток ув. форумчане

    кто как обрабатывает данные снятые с таймера, который включен в режиме обработки энкодера?

    у меня затык с тем, как определить направление вращения, что-бы прибавлять/вычитать значение к переменной

    таймер инициализирую вот так:

    	 //Encoder TIM3 Init
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
    
    TIM_Time_user.TIM_Prescaler = 0;
    TIM_Time_user.TIM_CounterMode = TIM_CounterMode_Up;
    TIM_Time_user.TIM_Period = 256;
    TIM_Time_user.TIM_ClockDivision = TIM_CKD_DIV1;
    
    TIM_TimeBaseInit(TIM3, &TIM_Time_user);
    TIM_EncoderInterfaceConfig(TIM3, TIM_EncoderMode_TI1, TIM_ICPolarity_Rising, TIM_ICPolarity_Rising);
    TIM_Cmd(TIM3, ENABLE);
    TIM3->CNT=0;
     //Encoder TIM2 Init
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
    
    TIM_Time_user.TIM_Prescaler = 0;
    TIM_Time_user.TIM_CounterMode = TIM_CounterMode_Up;
    TIM_Time_user.TIM_Period = 256;
    TIM_Time_user.TIM_ClockDivision = TIM_CKD_DIV1;
    
    TIM_TimeBaseInit(TIM2, &TIM_Time_user);
    TIM_EncoderInterfaceConfig(TIM2, TIM_EncoderMode_TI2, TIM_ICPolarity_Rising, TIM_ICPolarity_Rising);
    TIM_Cmd(TIM2, ENABLE);
    //TIM2->CCMR1 = TIM_CCMR1_CC2S_0 | TIM_CCMR1_CC1S_0;
    TIM2->CCER  |= TIM_CCER_CC1P;
    TIM3->CCER  |= TIM_CCER_CC1P;
    TIM2->CNT=0;

  12. to Огурцов, схема проста, нога PH0 от неё дорожка идет к кнопке, другим концом кнопка сидит на земле

    to ViKo, нога настроена на подтягивающий резистор к плюсу, попробую ещё внешний повесить

    to hd44780 внешнего кварца нет, этим битом я как-раз таки выключил внешний кварц. Удобно было развести кнопку на эту ногу, поэтому туда и повесил.

     

  13. слышал, но это не он.

    проблема пр контроллер считает кнопку нажатой даже когда она не является нажатой ни кратковременно ни как-либо по другому

    просто запускаю код на исполнение, кнопку не трогаю а условие срабатывает

  14. Доброго времени суток, ув. форумчане

    Повесил я кнопку на PH0

    настроил вот таким образом:

    GPIO_InitTypeDef dwnBtn;
       RCC->CR &= ~(1<<16);//HSEON
       GPIO_StructInit(&dwnBtn);
       RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOH, ENABLE);
       dwnBtn.GPIO_Pin = GPIO_Pin_0;
       dwnBtn.GPIO_Mode = GPIO_Mode_IN;
       dwnBtn.GPIO_Speed = GPIO_Speed_50MHz;
       dwnBtn.GPIO_OType = GPIO_OType_PP;
       dwnBtn.GPIO_PuPd = GPIO_PuPd_UP;
       GPIO_Init(GPIOH, &dwnBtn);
    

     

    проверяю вот так:

    if(GPIO_ReadInputDataBit(GPIOH, GPIO_Pin_0) == 0)

     

    иногда контроллер начинает считать, что кнопка нажата, хотя она таковой не является, а бывает что работает как задумано, кнопка подключена к земле одним концом

    в какую сторону копать?

×
×
  • Создать...