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

Flexz

Свой
  • Постов

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

  • Посещение

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


  1. Если прескейлер на APB равен единице (т.е. APB рабоатет на частоте AHB), то таймеры работают на частоте шины. Если же прескейлер на APB больше единицы, то таймеры работают на удвоенной частоте шины.

    PS см раздел RCC, Clock tree.

  2. STM32F2xx/F4xx, LPC18xx. По два порта USB Host/Device, параллельная шина сейчас везде есть. Три порта USB это уже другая весовая категория (слоны типа i.MX53, например), но теоретически можно и на легкие контроллеры м/с хаба поставить и сделать портов столько сколько нужно.

    Параллельную шину для слива данных в ПЛИС совсем не обязательно 2МБит легко уйдут по UART или SPI, да и 40МБит тоже можно через SPI прогнать.

    Пятый пункт не понял.

    -60 - сомнительно, ну т.е. работать то они может и будут, но как долго? И будет ли работать следующая партия? Лучше обогрев сделать.

  3. Так у меня обычная USB-Flash, только во втором тесте подрубал СД-шку через ридер.

    Частота полная - 168МГц, физика - USB3300.

     

    У меня есть подозрения, что где-то в HS-библиотеке бага-таки есть, т.к. еще когда я гонял эмулятор ком-порта - передача рандомно висла. Так же прога, но в FS режиме работала нормально часами. Надо копаться в этом деле с отладчиком, а времени нету пока.

  4. Ну USBH_USR_MSC_Application, вероятно, по их задумке должен реализовывать автомат управления. А USBH_Process, в свою очередь долден вызываться из своего таска ОС. Но это все теория, пока не пробовал, т.к. сам только с неделю хост ковыряю.

    Кстати, для подключения к дискавери юзал вот такой переходник, удобная штука.

  5. Вообще я с HS работаю сейчас. Но тот пример собран именно под FS, специально проверил перед тем как залить.

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

    PS спрашивайте, конечно, мне оно тоже интересно - отвечая на казалось бы простые вопросы нередко сам много нового узнаешь :)

  6. Добрался наконец-то до хоста. F4 с флешкой, судя по первым экспериментам скорость упирается в производительность флешки. Пробовал три штуки:

    1. Довольно тормозная флешка Emtec. Комп ее пишет на скорости где-то 2.7-2.9МБ/с, процессор - 2.5

    2. СДшка через ридер, компе 8МБ/с, проц - 7.5

    3. Большая и шустрая флешка 32гига, на компе пишется со скоростью 20-22МБ/с в HS режиме почему-то не пошла. Проц ее видит, можно посмотреть каталоги, но при попытке создать файл - он создается, но в него ничего не пишется, функция записи тупо повисает. Где именно пока не разбирался.

     

    В FS режиме все три показывают скорость в районе 0.7-0.9 МБ/с.

  7. Зачем open-drain для uart?

    GPIOD->AFR[1] |= (1<<1); - это что? точно не то, что в комменте написано. UART1-3 это AF7, и включать его надо на оба пина.

    Остальное не проверял, только что в глаза бросилось. Уж лучше STшную либу использовать, при все ее корявости, чем голые цифры в регистры писать.

  8. Перепишите на обычные (regular) каналы, injected не могут работать в непрерывном режиме сами по себе.

    Note: Injected channels cannot be converted continuously. The only exception is when an injected

    channel is configured to be converted automatically after regular channels in continuous

    mode (using JAUTO bit), refer to Auto-injection section).

  9. Если нужна надежность, то о USB лучше сразу забыть. Только настоящий COM - порт на материнке или мультипортовке ...

    Ну не так уж категорично, лучше сказать "если нужна надежность то о USB-CDC лучше сразу забыть" :)

    В свое время хватило косяков с ним связанных, начиная от "отваливания" порта и кончая бсодами. Лучше сразу взять libusb - потратить немного времени на изучение, и забыть CDC как страшный сон. С libusb потеря/восстановление связи отрабатываются без проблем (получили таймаут или ошибку - закрываем порт, ждем когда наш девайс пройдет энумерацию, подключаемся снова).

  10. Додумывать - какой же там внутри алгоритм, есть дело неблагодарное. Два варианта - таки дизассемблировать, либо построить аппроксимацию.

    Для аппроксимации стоит построить несколько графиков - число шагов от диапазона, число шагов от первого-последнего аргумента (если с последним аргументом более-менее ясно - это конец диапазона, то с первым непонятно - он не является началом диапазона), ну и собсетвнно графики значений.

     

    PS и это не Брезенхем, во-первых рост нелинейный, во-вторых последняя дельта выбивается из ряда, Брезенхем такого себе не позволяет.

  11. В Cortex-M3 Technical Reference Manual

    Еще учитывайте, что выборка инструкций из флеша происходин не за один цикл, для 72МГц в STM32F103 добавляется два цикла ожидания на каждое обращение к флешу, об этом - в даташине на проц.

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