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

Сергей Борщ

Модератор
  • Постов

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

  • Посещение

  • Победитель дней

    31

Сообщения, опубликованные Сергей Борщ


  1. 11 часов назад, _pv сказал:

    причём даже без отдельных чипселектов, в daisy chain

    Но какой-то сигнал для синхронизации все же нужен. Или физический, или программный по паузам между передачами. Иначе любая иголка в тактовом сигнале и обмен порушится навсегда.

  2. 12 часов назад, Spider сказал:

    Была мыcль, что с этим как-то связан Tamper1 AF1, но он выключен, нога проинициализирована в GPIO_Output.

    RTC имеет приоритет над режимом порта.

    12 часов назад, Spider сказал:

    Что ещё можно глянуть?

    Документацию :biggrin:

    image.thumb.png.2d9c16a76bce282820e9ccc40e39f075.png

    image.png

  3. 2 часа назад, adnega сказал:

    Нужно проверить совместимость.

    Таймеров существенно меньше, модуль тактирования отличается. Зато есть недокументированный USB, который китайцы успешно в своих клонах st-link использовали. Вроде как это F103 с сокращенным тестированием.

  4. 11 часов назад, firew0rker сказал:

    По питанию 2 ионистора

    Смею предположить, что там есть еще и импульсные преобразователи входного напряжения питания в напряжение 5, 3.3, 2.5 или сколько там нужно этому процессору. С большой долей вероятности высохли выходные электролиты этих преобразователей и на питании процессора сейчас большие пульсации, которые и сводят его с ума.

  5. 6 часов назад, Eddy_Em сказал:

    И dmesg подтверждает, что ничего не появилось, кроме какого-то CDC, который вообще к делу отношения не имеет.

    Вот dmesg моего устройства:

    [516667.339860] usb 1-1.2: new full-speed USB device number 27 using ehci-pci
    [516667.450691] usb 1-1.2: New USB device found, idVendor=16c0, idProduct=05e1, bcdDevice= 1.00
    [516667.450700] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [516667.450702] usb 1-1.2: Product: [затерто]
    [516667.450704] usb 1-1.2: Manufacturer:  здесь затерто]. (www.[тоже затерто].com)
    [516667.450706] usb 1-1.2: SerialNumber: 1
    [516667.451366] cdc_acm 1-1.2:1.0: ttyACM0: USB ACM device
    [516667.451707] cdc_acm 1-1.2:1.2: ttyACM1: USB ACM device

    Тем не менее это устройство умеет DFU вот прямо так, без джамперов и перетыканий. С линуксовой dfu-util "из коробки", с виндовой после небольшой пляски с zadig. И все строго в соотвествии с "Universal Serial Bus Device Class Specification for Device Firmware Upgrade Version 1.1 Aug 5, 2004".

    А вот его lsusb -d 16c0:05e1 -vv:

    Скрытый текст
    
    Bus 001 Device 031: ID 16c0:05e1 Van Ooijen Technische Informatica Free shared USB VID/PID pair for CDC devices
    Device Descriptor:
      bLength                18
      bDescriptorType         1
      bcdUSB               2.00
      bDeviceClass          239 Miscellaneous Device
      bDeviceSubClass         2 
      bDeviceProtocol         1 Interface Association
      bMaxPacketSize0        64
      idVendor           0x16c0 Van Ooijen Technische Informatica
      idProduct          0x05e1 Free shared USB VID/PID pair for CDC devices
      bcdDevice            1.00
      iManufacturer           1 [затерто]. (www.[тоже затерто].com)
      iProduct                2  здесь затерто]
      iSerial                 3 1
      bNumConfigurations      1
      Configuration Descriptor:
        bLength                 9
        bDescriptorType         2
        wTotalLength       0x009f
        bNumInterfaces          5
        bConfigurationValue     1
        iConfiguration          0 
        bmAttributes         0xc0
          Self Powered
        MaxPower              500mA
        Interface Association:
          bLength                 8
          bDescriptorType        11
          bFirstInterface         0
          bInterfaceCount         2
          bFunctionClass          2 Communications
          bFunctionSubClass       2 Abstract (modem)
          bFunctionProtocol       0 
          iFunction               0 
        Interface Descriptor:
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        0
          bAlternateSetting       0
          bNumEndpoints           1
          bInterfaceClass         2 Communications
          bInterfaceSubClass      2 Abstract (modem)
          bInterfaceProtocol      0 
          iInterface              0 
          CDC Header:
            bcdCDC               1.10
          CDC Call Management:
            bmCapabilities       0x00
            bDataInterface          1
          CDC ACM:
            bmCapabilities       0x02
              line coding and serial state
          CDC Union:
            bMasterInterface        0
            bSlaveInterface         1 
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x82  EP 2 IN
            bmAttributes            3
              Transfer Type            Interrupt
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0008  1x 8 bytes
            bInterval             128
        Interface Descriptor:
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        1
          bAlternateSetting       0
          bNumEndpoints           2
          bInterfaceClass        10 CDC Data
          bInterfaceSubClass      0 
          bInterfaceProtocol      0 
          iInterface              0 
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x01  EP 1 OUT
            bmAttributes            2
              Transfer Type            Bulk
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0040  1x 64 bytes
            bInterval               0
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x81  EP 1 IN
            bmAttributes            2
              Transfer Type            Bulk
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0040  1x 64 bytes
            bInterval               0
        Interface Association:
          bLength                 8
          bDescriptorType        11
          bFirstInterface         2
          bInterfaceCount         2
          bFunctionClass          2 Communications
          bFunctionSubClass       2 Abstract (modem)
          bFunctionProtocol       0 
          iFunction               0 
        Interface Descriptor:
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        2
          bAlternateSetting       0
          bNumEndpoints           1
          bInterfaceClass         2 Communications
          bInterfaceSubClass      2 Abstract (modem)
          bInterfaceProtocol      0 
          iInterface              0 
          CDC Header:
            bcdCDC               1.10
          CDC Call Management:
            bmCapabilities       0x00
            bDataInterface          3
          CDC ACM:
            bmCapabilities       0x02
              line coding and serial state
          CDC Union:
            bMasterInterface        2
            bSlaveInterface         3 
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x84  EP 4 IN
            bmAttributes            3
              Transfer Type            Interrupt
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0008  1x 8 bytes
            bInterval             128
        Interface Descriptor:
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        3
          bAlternateSetting       0
          bNumEndpoints           2
          bInterfaceClass        10 CDC Data
          bInterfaceSubClass      0 
          bInterfaceProtocol      0 
          iInterface              0 
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x03  EP 3 OUT
            bmAttributes            2
              Transfer Type            Bulk
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0040  1x 64 bytes
            bInterval               0
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x83  EP 3 IN
            bmAttributes            2
              Transfer Type            Bulk
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0040  1x 64 bytes
            bInterval               0
        Interface Descriptor:
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        4
          bAlternateSetting       0
          bNumEndpoints           0
          bInterfaceClass       254 Application Specific Interface
          bInterfaceSubClass      1 Device Firmware Update
          bInterfaceProtocol      1 
          iInterface              4 DFU interface
          Device Firmware Upgrade Interface Descriptor:
            bLength                             9
            bDescriptorType                    33
            bmAttributes                        9
              Will Detach
              Manifestation Intolerant
              Upload Unsupported
              Download Supported
            wDetachTimeout                      0 milliseconds
            wTransferSize                      53 bytes
            bcdDFUVersion                   1.01
    can't get device qualifier: Resource temporarily unavailable
    can't get debug descriptor: Resource temporarily unavailable
    Device Status:     0x0000
      (Bus Powered)

     

    Да, там не F103, а L083, F072, F042, F107, F407, но в первых трех USB такой же, как у F103 не считая встроенной подтяжки.

    DFU в Run-time mode не показывается в линухе. И в винде не должно (согласно спецификации DFU), но у винды свое представление о прекрасном.

    Вы который раз уже "машете шашкой" в темах, в которых, мягко говоря, плаваете. Постарайтесь сдерживать себя.

  6. 1 час назад, std сказал:

    для того чтобы получать строго определенное колчество импульсов STEP ШД и приводить вывод в известное состояние.

    Ну "приводить вывод в известное состояние" довольно просто - надо использовать режим ШИМ(PWM). В конце периода он в строго определенном состоянии. Строго определенное количество импульсов - подсчетом в прерывании. Я не знаю что у вас за задача, когда я писал контроллер шагового двигателя, у меня в любой момент могла прилететь команда на разгон/торможение и ждать "строго определенного количества импульсов" было просто нельзя. Поэтому я считал импульсы в прерывании сответствующего канала таймера. 

    P.S. для реализации (почти) линейного разгона/торможения шагового двигателя вам может быть полезна эта статья: Generate stepper-motor speed profiles in real time.

  7. 7 минут назад, jcxz сказал:

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

    Я только мысль подал - что есть уже готовые флаги и не нужно ничего мудрить с NOINIT. Там есть и другие флаги. Сам я делаю if(!(RCC->CSR & RCC_CSR_SFTRSTF)) {запускаем приложение;} {иначе запускаем загрузчик;}

    Но изначально речь шла о заглушке вместо загрузчика.

  8. Почему же? Возврата из этой функции нет, значит компилятор вправе выкинуть весь ненужный код (восстановление стека, возврат из функции) после нее. Смысла в naked тоже не вижу - пусть компилятор делает все то, что считает нужным.

  9. Да, примерно так. Только лучше это оформить ассемблерной вставкой, чтобы компилятор не напихал туда лишних команд работы со стеком. Я делаю так:

    __attribute__((noreturn))
    inline void start_application(uintptr_t msp_init, void (*pc)())
    {
        // start application, need asm inline to avoid stack corruption between MSR and BLX
        asm volatile (
            "msr\tmsp, %[MSP]\n"
            "\tblx\t%[PC]\n"
            :
            : [MSP] "r"  (msp_init)
            , [PC] "r"  (pc)
            :
            );
        __builtin_unreachable();
    }

     

  10. 3 часа назад, inventor сказал:

    и ставлю   SCB->VTOR =  0x8000000 + 0x4000; /* Vector Table Relocation in Internal FLASH */

    Это должен делать ваш загрузчик, вместо которого у вас пустое место.

    Напишите простейшую заглушку, которая будет писать VTOR, заполнять указатель стека содержимым ячейки 0x8004000 и передавать управление по адресу, указанному в ячейке 0x8004004.

    Да, можно VTOR прописывать и в самой программе, но как-то это кривововато выглядит.

    Ваша студия перед запуском загружает в PC адрес, указанный директивой ENTRY() скрипта компоновщика - поэтому при запуске из студии все работает. Правда непонятно, что при запуске из студии заносится в указатель стека.

    1 час назад, jcxz сказал:

    В командном файле компоновщика не поместили таблицу векторов прерываний в нужное место

    Это необязательно - в таблице хранятся абсолютные адреса, от перемещения они не изменятся.

  11. 25 минут назад, Александр В. сказал:

    При замыкании VT3 на 5ой ноге DD3 увеличивается частота мигание, так же при замкнутом VT3 на 6ой ноге DD2 светодиод тухнет

    Непорядок. VT3 никак не должен влиять на эти мигания. А замерьте напряжение питания (скажем, между 7 и 14 ногами DD1) - не просаживается ли оно при замыкании VT3?

  12. 7 часов назад, biborl сказал:

    Была

    Ну вот белый провод на правильно собранной схеме соединял бы 9 и 5 ноги. Если они больше никуда не подключены - их можно для надежности посадить на землю (соединить с 8 ногой). 4 нога должна быть соединена только с 7 и больше ни с чем (может уходить еще куда-то в схему, если там нужны импульсы). На 12 ногу обычно вешается часовой кварц (но в вашей схеме его нет, значит откуда-то приходят импульсы входной частоты, может быть получаемые из сети импульсы 50 Гц ). Других перемычек между ногами этой микросхемы быть не может - все остальные ноги являются выходами и замыкать их между собой или, тем более, на питание нет никакого смысла.

  13. 2 часа назад, Propretor! сказал:

    А как логические анализаторы могут помешать работе программаторов с их ничтожным влиянием?

    Ну, например, клон Saleale имеет по входам подтяжку к питанию + 3.3 В порядка 10 кОм. Вполне возможно, что эта подтяжка мешает программатору. Про второй анализатор ничего не скажу, не щупал. 

  14. 15 минут назад, byRAM сказал:

    считаю, что переход программистов МК с ассемблера и Си на чистый C++ на нашем предприятии

    "На кону мочало, начинай сначала". Если программист умеет - выходной код будет не хуже, а исходник компактнее, понятнее и написан быстрее.

  15. 31 минуту назад, mantech сказал:

    откусите ножки от корпуса

    "Не только лишь все" бокорезы способны сделать это аккуратно. Я бы даже сказал - мало какие бокорезы для этого подходят. И вероятность, что подходящие бокорезы будут у человека без осциллографа - ничтожно мала. Поэтому я и посоветовал строительный нож, его хоть добыть можно в любом ларьке.

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