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

    

Nidanilov

Свой
  • Публикаций

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

  • Посещение

Репутация

0 Обычный

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

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

Контакты

  • Сайт
    http://
  • ICQ
    254427805
  1. Цитата(a123-flex @ Aug 31 2017, 13:10) ...После покупки SMD-TAXI китаец стоит в углу. Я готов купить вашего китайца, как раз занимаюсь этим вопросом.
  2. Цитата(Rendom @ Dec 23 2014, 16:43) ...скорее всего во время работы DMA вы усиленно пишите/читаете внутреннюю память ядром, а приоритеты доступа к памяти не меняли (по дефолтным настройкам приоритет у ядра и DMA ждет когда ядро освободит шину). Главный цикл состоит только из этого: 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. Цитата(Russky @ Dec 18 2014, 00:08) http://t-filter.appspot.com/fir/index.html Сайт неправильно считает коэффициенты и зависает часто, проверено электроникой . С матлабом лучше не сравнивать.
  5. Отвечаю сам себе –NoFinalTag стоял не в том месте.
  6. Мой девайс на BF518 загружается с SPI флеш и проблемы ниразу не было. Могу только предположить что у вас используется внешняя память SDRAM которая бывает подглючивает при неправильной разводке.
  7. Всем привет! В 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-нет. Подскажите, в чем может быть проблема?
  8. SD card on SPI

    Цитата(ohmjke @ Jul 23 2014, 15:19) Пишу на SDHC блок и после этого читаю его. После записи сначала жду токена Data response со значением Data accepted - все ОК, получаю его сразу после второго байта CRC16. Затем, как я понял, карта шлёт busy байты в виде нулей, типа происходит запись из буфера в саму flash. Но эти busy заканчиваются только через 6-10 мс! Неужели, так и должно быть? Если так ждать после записи каждого байта, то получится максимальная скорость не более 100кБ/сек - бред. Сейчас ещё раз глянул анализатором сразу после подачи питания - так busy длится вообще 20мс...Так и должно быть (у меня размер сектора 512 байт). Причем я не заметил чтобы SPI mode работал медленнее SD mode в режиме записи.
  9. Цитата(nx6310 @ Jul 14 2014, 12:19) Вот схема... Ну вы даете... Судя по схеме на VDD идет питание +2.5В с ИОН, а на REF идет +5В. Во первых надо делать наоборот иначе зачем ИОН нужен тогда? А во вторых хоть и пишут в даташите что так можно, но я бы не стал проверять т.к. потенциал на ноге VDD относительно других ног должен быть самым высоким иначе открываются паразитные диоды со всеми последствиями.
  10. Я так не пробовал, но с учетом рисунка 18 скорее всего будет ноль нв выходе SDO независимо от того есть подтяжка или нет.
  11. Цитата(nx6310 @ Jul 11 2014, 09:15) ...Судя по этому предложению даташита, после окончания преобразования сопротивление на этой ноге уменьшается, и если есть подтяжка к питанию, то на этом пине должна наблюдаться хоть какая-нибудь просадка напряжения. Я правильно понимаю? На рисунке 34.3 в даташите нарисовано так.У меня никакой просадки не происходит. Состояние этого пина у меня меняется только при чтении даных...Ну ладно, читаем это место еще раз: "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.
  12. Цитата(Herz @ Jul 10 2014, 22:33) Простите за любопытство, но смысла, всё-таки, не уловил. Зачем засасывать воздух из салона под обшивку потолка (где больше влияние внешней температуры), если можно мерить его прямо в салоне? Или идея именно в том, чтобы сравнивать с потолочной? Ну так он и стоит прямо в салоне если бы вы спросили почему не в панели приборов я бы еще понял. Чтобы качественно мерить температуру нужна принудительная циркуляция воздуха, а где датчик будет фактически находиться (внутри салона) не очень важно.
  13. Цитата(nx6310 @ Jul 10 2014, 07:52) ... Судя по даташиту если SDO подтянуть резистором к питанию, то после окончания преобразования SDO должен устанавливаться в ноль. У меня же он висит в единице, сбрасывается только после начала чтения данных. такое чувство что АЦП зависает во время преобразования Не внимательно читаете даташит ЦитатаWhen the conversion is complete, the AD7980 enters the acquisition phase and powers down. Это означает что вывод SDO пререходит в Z состояние. А на SDI у вас точно +3,3В ? Возможен простой непропай. Я использую AD7687, тот жепринцип и микросхема очень надежна.
  14. Сколько будет стоить привезти например 10 кг из китая самым дешевым способом, по времени не более 2-х недель.
  15. Цитата(Herz @ Jul 10 2014, 11:54) А что за разработка? В чём смысл этого температурного датчика с моторчиком? Смысл простой, моторчик с крыльчаткой являются воздушным насосом который закачивает воздух из салона под обшивку потолка. Прямо над крыльчаткой в потоке находится терморезистор. Терморез-р подключен к климатической системе. Раньше к стати применялся другой моторчик щеточный, тоже на 1,2 В.