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

Nidanilov

Свой
  • Постов

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

  • Посещение

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


  1. Я готов купить вашего китайца, как раз занимаюсь этим вопросом.
  2. Главный цикл состоит только из этого: while(1) { HL1_TOGGLE; if(lcount!=count) { count=lcount; // lcount modified in interrupt _print("pkt_count=",count," entry_num=",icount); } } Вопрос в том как повысить приоритет DMA и почему по дефолту он такой низкий? C помощью регистров связанных с ЕМАС DMA это сделать невозможно. Изменить приоритет ядра также нет возможности. Но между МАС модулем и ядром имеется System Crossbar который обеспечивает "Programmable bus arbitration model for bandwidth and latency management". Тут в наличии всего два регистра SCB_ARBRn и SCB_ARBWn, что с ними делать и что туда записывать разобраться я так и не смог.
  3. Всем привет, срочно нужна помощь. Проблема такая.. в процессе приема пакетов в далеко не перегруженной сети постоянно переполняется внутреннее FIFO (128 байт) в модуле EMAC, с последующим выпадением бита OVF в REG_EMACx_DMA_STAT. Сначала были подозрения что происходит пропуск прерывания(-ий) по статусу, но этот вариант отпал т.к. поллинг бита готовности данных в главном цикле (REG_EMAC0_DMA_STAT) дает такой же результат. Перепробовал все возможные настройки регистров - результат 0. Флаг переполнения появляется довольно хаотично, но в среднем на каждом 4 пакете. DMA исправно заполняет цепочку буферов из 10 дескрипторов, переходит на первый и т.д. пока не возникает переполнение и следующий пакет оказывается нулевой длины. В самом проекте других прерываний кроме статуса EMAC нет, проект полностью во внутренней памяти, оси нет, загрузка другими задачами отсутствует,принятые принятые данные просто отбрасываются. Настройки обычные: проект в Core 0 (Core 1 не запущен), RMII, Chain на 10 дескрипторов, 100Мбит, full duplex. Мозги кипят уже 3-ю неделю, может это болезнь нового процессора или может есть у кого пример работающего драйвера? В самом CCES имеется код драйвера gemac, в нем подключен cdefbf609.h проект компилируется, но не работает так как адреса в структуре ADI_EMAC_REGISTERS не подходят для BF-60x. Другой пример lwip полностью запрятан в dlb библиотеки и что там происходит внутри неизвестно... :(
  4. Сайт неправильно считает коэффициенты и зависает часто, проверено электроникой :) . С матлабом лучше не сравнивать.
  5. Мой девайс на BF518 загружается с SPI флеш и проблемы ниразу не было. Могу только предположить что у вас используется внешняя память SDRAM которая бывает подглючивает при неправильной разводке.
  6. Всем привет! В CCES сделал шаблон проекта с Core0 и Core1 для BF607, в коде простое моргание светодиодов - для каждого ядра свой светодиод, Код для Core0: int main(int argc, char *argv[]) { ADI_GPIO_RESULT result; uint32_t gpioMaxCallbacks; int i; adi_initComponents(); Инициализация GPIO; adi_core_1_enable(); while (1) { моргаем светодиодом } } Код для Core1: int main(int argc, char *argv[]) { ADI_GPIO_RESULT result; uint32_t gpioMaxCallbacks; int i; adi_initComponents(); Инициализация GPIO; while (1) { моргаем светодиодом } } Внешняя память не используется, компилирую проект, получю два dxe файла. Далее объединяю их в один с помощью bat файла: "C:\Analog Devices\CrossCore Embedded Studio 1.1.0\elfloader.exe" -proc ADSP-BF607 -si-revision 0.2 –NoFinalTag="D:\Code\SV\Boot607\SV03_Core0.dxe" "D:\Code\SV\Boot607\SV03_Core1.dxe" -b SPI -f binary -width 8 -bcode 3 -o "svboot.ldr" Получаю соответственно ldr файл который заливаю в загрузочную SPI-флеш. В итоге ядро0 запускается исправно, ядро1-нет. Подскажите, в чем может быть проблема?
  7. Так и должно быть (у меня размер сектора 512 байт). Причем я не заметил чтобы SPI mode работал медленнее SD mode в режиме записи.
  8. Ну вы даете... :) Судя по схеме на VDD идет питание +2.5В с ИОН, а на REF идет +5В. Во первых надо делать наоборот иначе зачем ИОН нужен тогда? А во вторых хоть и пишут в даташите что так можно, но я бы не стал проверять т.к. потенциал на ноге VDD относительно других ног должен быть самым высоким иначе открываются паразитные диоды со всеми последствиями.
  9. Я так не пробовал, но с учетом рисунка 18 скорее всего будет ноль нв выходе SDO независимо от того есть подтяжка или нет.
  10. Ну ладно, читаем это место еще раз: "When the conversion is complete, SDO goes from high impedance to low" здесь смысл в том, что в исходном состоянии SDO находится в Z в соответствии с режимом "CS MODE 3-WIRE WITH BUSY INDICATOR". После прихода CNV начинается конверсия и как только она закончится импеданс вывода меняется из Z в Low на выходе появляются какие то данные. Как только будет выдвинут последний 16-й бит SDO сразу переходит в Z.
  11. Ну так он и стоит прямо в салоне если бы вы спросили почему не в панели приборов я бы еще понял. Чтобы качественно мерить температуру нужна принудительная циркуляция воздуха, а где датчик будет фактически находиться (внутри салона) не очень важно.
  12. Не внимательно читаете даташит Это означает что вывод SDO пререходит в Z состояние. А на SDI у вас точно +3,3В ? Возможен простой непропай. Я использую AD7687, тот жепринцип и микросхема очень надежна.
  13. Сколько будет стоить привезти например 10 кг из китая самым дешевым способом, по времени не более 2-х недель.
  14. Смысл простой, моторчик с крыльчаткой являются воздушным насосом который закачивает воздух из салона под обшивку потолка. Прямо над крыльчаткой в потоке находится терморезистор. Терморез-р подключен к климатической системе. Раньше к стати применялся другой моторчик щеточный, тоже на 1,2 В.
  15. Вот уж не думал встретиь здесь свою разработку :) У движка нет пусковой обмотки и двигателю все равно куда вращаться. Ротор представляет собой кольцевой магнит (редкоземельный) намагниченный 4-я чередующимися секторами. Запускается он схемой мультивибратора, а далее происходит самоподхват и в итоге частота вращения доходит до 1500-2000 об/мин. В вашем случае скорее всего износ подшипника скольжения или смещение ротора он должен находиться по центру между обмотками. Движок должен стартовать с 0,7В, ёмкость конденсаторов влияет только на частоту запускающих импульсов - она в теории должна совпадать с собственной резонансной частотой ротора. Возможно магнит немного размагнитился это тоже со временем происходит. Вообще говоря я был против такого решения из-за слабого пускового момента, надо было дорабатывать двигатель, но тут крутились миллионы... вот оно и аукнулось :laughing:
  16. Да, плагины у них глючноваты...конкретно этим я ни разу не пользовался и желания даже не возникало. Есть же примеры проектов в examples и в pdf hardware reference нормально расписано все. К стати, извиняюсь за оффтоп, в версии 5.1 добавили процессоры adsp-bf6xx?
  17. Сильно навороченный и тормозной стек, по сравнению с тем что мне приходилось потрошить. К тому же нестабильно себя ведет конкретно вешаясь, при средних и высоких загрузках сетевыми пакетами. ICMP отваливается ни стого ни с сего и вообще стек не держит мало мальски среднего теста. Думаю что он написан программистами ради самого процесса программирования в чем и приуспели, соответственно, а про читабельность кода вообще молчу. Если посмотреть википедию, то там пишут что применяется всеми включая Altera, Xilinx и конешно Analog Devices и это понятно - ничейный стек, без всяких гарантий работоспособности как раз подходит для оценочных плат где надо поморгать светодиодами и отправить туда сюда несколько пакетов.
  18. Также воспользуюсь случаем... привожу простую функцию которая укладывает проц намертво: if ((res = f_opendir(&dirs, path)) == FR_OK){ print("Open dir ok...\n"); while (((res = f_readdir(&dirs, &finfo)) == FR_OK) && finfo.fname[0]){ print("Read dir entry...\n"); //... любой код далее приводит к перезагрузке } } Взято из примеров Chana, FatFs R0.10 ©ChaN, 2013 Revision ID 80960, платформа BlackFin. Получаем: Open dir ok... Read dir entry... Exception handler:: Hardware error Убил пол дня на поиски места падения, но терпения не хватило.. пришлось вернуться к FatFs R0.07c где все работает без проблем :( ps: Проблема решилась установкой параметра: #define _USE_LFN 1
  19. Пардон, переставил перемычки с System memory на User flash и V7 заработал! :)
  20. Спасибо за помощь, на диске такой программы не было, так же как и user manual-а. По поводу J-Link... раздобыл старенький вариант в черном корпусе, но он сначала попросил сделать апгрейд, а потом выругался что этот J-Link не подходит для M4, ниже даю фотки. Тот что в желтом корпусе прекрасно работает. Можно ли его как-то допилить или сразу в ведро?
  21. Прошить TE-STM32F407

    Имеется указанная демо-плата, можно ли ее прошить без джитага, например через usb (как арм9)? Помню когда-то был софт под названием samba для армов и все прошивалось. Извиняюсь за глупый вопрос, просто в армах полный ноль :( .
  22. С lwip будет сложно, проще взять проект Power_On_Self_Test из папки examples, там есть модуль ethernet_test.c, который как раз принимает все подряд и инициализация EMAC там очень простая.
  23. Можем для интереса сравнить производительность с ADSP-BF518F (400Мгц), плата под рукой....кто кого сделает?) Например так, зажигаем светодиод, дальше делаем копирование внутренней памяти 1kB с одного места на другое (без ДМА) и гасим светодиод.
  24. Спасибо за дельный совет. Правда у такого варианта есть минус: PTP-шные пакеты получат в свиче рандомную задержку.
×
×
  • Создать...