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

digital

Свой
  • Постов

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

  • Посещение

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


  1. Здравствуйте, подскажите пожалуйста, модуль DCMI при работе через DMА, подразумевает какую либо синхронизацию запуска DMA с кадровой синхронизацией? Судя по всему нет, то как понять где начало кадра в потоке данных?
  2. Любопытно, у меня карточка 2гига, объем 1976565760 байт или 1885 МБайт при этом /sys/block/mmcblk0/device/preferred_erase_size равен 4194304 байт или 4Мбайта, предпологаю что AU равен это размеру и это получаеться НЕ кратно размеру карты ибо 1885 не делиться на 4 также есть спецификация на карту самсунг, там AU_SIZE 4MB при этом ERASE_SIZE 16AU Вероятно блок стирания не равен AU, и он существенно больше , тогда для нормальной работы , требуются лишние блоки которые не входят в список доступных.
  3. Торможения не должно быть при последовательной записи, так же не должно быть разница при случаной записи секторов, а вот если оперировать записью в 2-3 и тд. блоков, то как раз будет заметная разница О точно, теперь я допер что за параметр --open-au-nr
  4. сотня блоков по 4Мбайта это почти полгига оперативки Хорошая утилита, только не очень понятно что она показывает, если при записи сектора, он фактически записывается сначала в ram, а только потом переноситься в nand. Кстати, как при ее помощи монжо узнать количество одновременных открытых AU ?
  5. Спасибо, но вопрос больше про объем стирание, а не про запись я правильно понимаю что если я стираю-записываю ОДИН сектор 512 байт, то контроллер sdcard все равно стирает весь блок 4мбайта и заново его записывает?
  6. спасибо Если контроллер оперирует блоками по 4Мбайта, то если произвольно стирать писать сектора по 512 байт, то блок получаеться будет переписан аж 8192 раза (ну если все случаный записи попадут в блок)? Блок наверное перемещаеться не всегда, а когда превысит некоторое количество раз использований. Я правильное понимаю что при кольцевой записи, лучше не использовать файловых систем, писать по кругу и предварительно стирать большими блоками по 4мбайт, естественно выровненных по 4мбайта? тогда будет минимальный износ? а если стирать по одному сектору (512), то будет максимальный износ? (точнее в 8192 раза больше? )
  7. Зачем записывать сетрые блоки, ведь достаточно просто стереть? При wear leveling вообще не понятно что происходит при стирание 4мбайт? что конкретно стирается , если все блоки уже переназначены? Карта при выранвивание износа какими размерами блоков оперирует? 512байт, 4Мбайт или?
  8. и Подниму старую тему А как же параметр SD card preferred_erase_size у SDHC он равен аж 4 МB Предполагаю что контроллер карты всегда СТИРАЕТ по 4 MB , а стирание по одному сектору эмулирует виртуально, за счет перемещения блоков а как на саммо деле? Если записывается непрерывно лог по кругу (без всякой файловой системы), то какое количество секторов нужно стирать, и что будет если стирать по одному сектору ?
  9. хорошая книжка для начала, Проектирование роботов и робототехнических систем в Dyn-Soft RobSim 5, часть 2
  10. это с самого начала было понятно, я пытался найти точки соприкосновения, но увы постоянная времени пельтье около пары секунд, а если еще теплоизолировать то и того меньше
  11. лучше спорить по сути, а не по форме , правильнее было привести в чем именно они не правы, тем более по вашему они не правы быть и не могут, ибо они и ваш вариант приводят, только они объясняют почему и откуда
  12. зачем же И компоненту выключать? Таня, зря вы по ссылкам не читаете , , эти так вами называемые теоретики, написали причину, и несколько методов решения, где кстати ваш один из вариантов
  13. Возможно вы имели в виду интегральное насыщение http://www.bookasutp.ru/Chapter5_4.aspx#IntegralSaturation
  14. При проведении активного эксперимента возникает задача выбора формы тестового воздействия. Используют сигналы в форме ступеньки (скачка), в форме прямоугольного импульса, линейно нарастающего сигнала, треугольного импульса, псевдослучайного двоичного сигнала (ПСДС) [Гроп], шума, отрезка синусоиды (частотный метод). Наиболее часто для настройки ПИД-регуляторов используют скачок (рис. 5.12-а), двойной прямоугольный импульс (рис. 5.12-в) и синусоидальный сигнал (рис. 5.12-г). http://www.bookasutp.ru/Chapter5_1_2.aspx с вас ожидаю какие любо материалы в кторых написано о каких либо оганичениях входного сигнала, спасибо
  15. вы меня троллите ? :rolleyes: вы писали что нельзя резко изменять входной сигнал, на что я указал что типичный тест ПИД регулятора это единичный скачок, который являеться крайним вариантом резкого изменения, что вы имели в виде под словами, что нельзя резко менять входной сигнал? почему?
  16. так вы это утверждали, я поэтому и спросил, что может чего то не знаю
  17. на чистом си, то что вы описали то программы и выполняют вот выговорите что нельзя задатчик произвольно менять, а вообще то тест ПИД регулятора выполняется единичным скачком, тот самый который от минуса до макс
  18. хм, я получается воюю с ветреными мельницами т.е. примерно так? 1. способ error=TempNeed-TempCur; // где TempNeed задатчик TemCur текущая if((error<-5.0)||(error>-5.0)) Output=1.0; // else Output=PID(error); 2. способ Temp+=(TempNeed-Temp)/64; error=Temp-TempCur; Output=PID(error); // где TempNeed задатчик // TemCur текущая температура (измеренная) и можно еще вопрос в случае нагревателя, выход ПИД это амплитуда подаваемая на нагреватель или приращение амплитуды ? т.е. Output=PID(error); или Output+=PID(error);
  19. не понимаю, к примеру если ПИД управляет температурой котла, мы разве не можем поменять температуру с 50 до 80 ? какие последствие при этом будут? и кто тогда должен плавно менять? другой контур ПИД? или еще что то? какие критерий допустимости изменения входа?
  20. разве ПИД не обязан адекватно реагировать при любом изменение задатчика?
  21. вроде нашел, вся проблема в описание Дескриптор репорта, и linux при этом инициализирует и и можно посмотреть какие ошибки, а windows молча слетает инициализация (и то через раз) проблема в в описание Дескриптор репорта в том что он слишком длинный 84 байта нормально, а 103 и больше уже не работает. чтобы разобраться мне очень помогла статья http://habrahabr.ru/post/254251/
  22. своя плата, демок на stm32l052 с подключенным USB вроде нет питание от USB через LDO 3.3В, VDD_USB подключено к 3.3В линии D+ D- подключены через защиту TPD2S017, также были R и С которые убрал не очень понимаю как это поможет мне, у меня питание от USB и при отключение снимается питание и соответствие pullup, который подключается потом при инициализации у вас наверное питание не от usb было оказалось на шине USB последовательно были резисторы аж 51 Ом, убрал их, стало существенно лучше, теперь всех компах на linux работает безупречно , но некоторых компьютерах с win также через пень
  23. USB HID стек это HAL библиотека от Cube По какой то причине USB HID в STM32L052 работает мягко говоря ненадежно, на одних машине работает безупречно, на других либо через раз, либо вообще не работает, не работает это не проходи инициализация и устройство не определяется в ОС, в стеке не вызывается callback функция CUSTOM_HID_Init_FS, а аппаратно USB выдает прерывания об ошибки (и не только их) от ОС (ubuntu win7 win XP не зависит), есть где безупречно работает и на linux и на win, есть где глючит и на linux и на win это совсем негодный стек или что ? лог RESET ESOF ESOF SUSP ESOF WKUP RESET CTR SOF DIR ERR CTR DIR ERR ERR CTR DIR RESET CTR SOF DIR ERR SOF ERR ERR CTR DIR CTR DIR RESET SOF ESOF RESET CTR SOF DIR CTR DIR CTR DIR ERR RESET CTR SOF DIR CTR DIR ERR CTR DIR RESET SOF ESOF RESET CTR SOF DIR ERR SOF ERR CTR SOF DIR CTR DIR SOF ESOF RESET CTR SOF DIR CTR SOF DIR ERR CTR SOF DIR CTR DIR ERR ERR SOF ESOF ESOF SUSP ESOF описание тегов temp=hpcd->Instance->ISTR; if (temp&USB_ISTR_CTR )printf("CTR\n"); //Correct TRansfer if (temp&USB_ISTR_PMAOVR )printf("PMAOVR\n");// DMA OVeRunderrun if (temp&USB_ISTR_ERR )printf("ERR\n"); // ERRor if (temp&USB_ISTR_WKUP )printf("WKUP\n"); // WaKe UP if (temp&USB_ISTR_SUSP )printf("SUSP\n"); // SUSPend if (temp&USB_ISTR_RESET )printf("RESET\n"); // RESET if (temp&USB_ISTR_SOF )printf("SOF\n"); // Start Of Frame if (temp&USB_ISTR_ESOF )printf("ESOF\n"); // Expected Start Of Frame if (temp&USB_ISTR_L1REQ )printf("L1REQ\n"); // LPM L1 state request if (temp&USB_ISTR_DIR )printf("DIR\n"); // DIRection of transaction if (temp&USB_ISTR_EP_ID )printf("EP_ID\n"); // EndPoint IDentifier
×
×
  • Создать...