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

Nidanilov

Свой
  • Постов

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

  • Посещение

Репутация

0 Обычный

Информация о Nidanilov

  • Звание
    Частый гость
    Частый гость

Контакты

  • Сайт
    Array
  • ICQ
    Array
  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 В.
×
×
  • Создать...