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

K A A

Участник
  • Постов

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

  • Посещение

Весь контент K A A


  1. Скорее всего ряд E24, возможные варианты 1R0, 2R0, 3R0
  2. Вроде как Phoenix первая
  3. Это, я так понимаю, при создании компонента? Это не наш путь - все библиотеки перелопачивать надо. Проще создать копию pcb, взорвать там все компоненты и скопировать графику. Но некрасивое решение получается.
  4. Я создаю библиотеки с помощью встроенного визарда, с использованием слоя Top Overlay для шелкографии, Mechanical 15 - для отрисоки контуров компонентов и Mechanical 13 - для 3D-объектов. Для создания сборочного чертежа хотелось бы использовать данные со слоев Mechanical 15 и Top Overlay (взять оттуда Designators). Но они не копируются на другой слой. Переносятся, но не копируются. У меня используется Overlay с Designators для шелкографии. А вот продублировать Designators на другой слой не получается. Как и информацию со слоя Mechanical 15. Снял галку Lock Primitives в свойствах компонентов, примитивы выделяются, но не хотят вставляться на другой слой (с помощью Alt + Insert). Как победить? (Altium Winter 09)
  5. Может, паранойя, но у меня измерения очень точные. Чтобы не создал помеху во время преобразования.
  6. Я тоже недавно пытался определять момент окончания пересылки данных через SPORT и ничего лучшего не придумал, как тупо ждать по таймеру. Черт дернут прицепить сигма-дельта АЦП с SPI-интерфейсом к SPORTу. Потратил кучу времени, пока все заработало.
  7. Спасибо, читал эту статью. Думаю, когда в процессоре есть умножение, то быстрее будет классическим способом.
  8. Пишу программу вычисления действующего значения сигнала с помощью КИХ-фильтрации. Алгоритм следующий: 16-бит выборки возвожу в квадрат, получаю 32 бит, затем умножаю на весовой коэффициент (32 бит) и прибавляю к аккумулятору. При такой разрядности нужно использовать все 40 бит аккумулятора MAC, и то этого мало. Но никак не пойму, как это сделать на С. Функции из fract_math.h реализуют умножение 32x32 -> 32 и сложение 32+32 -> 32, как обрабатывать дополнительные 8 бит? Или писать на ассемблере? ЗЫ: почему такая разрядность - просто погрешность результата должна быть на уровне 0.001%. Почти получается, когда алгоритм был реализован с использованием вещественной арифметики. Для улучшения стабильности нужно увеличить размер окна в несколько раз (сейчас 4096, хорошо бы раз в 16 больше, путем интерполяции на лету), соответственно увеличить частоту - тут уже проц не поспевает. Еще возможные проблемы с float при большом окне - ограничение разрядности, когда сумма накопится большая, а слагаемые очень маленькие, при этом они будут игнорироваться. Так как это сделать на С?
  9. Я программирую по SPI в режиме slave. Для этого использую переходник USB-SPI на базе FT2232C, вот здесь есть готовая плата на этом чипе: Propox Программу для программирования написал сам на VB. Все хорошо работает. Если нужно, могу поделиться программулиной.
  10. Да уж, наверное в этом дело. Плата моя собственная.
  11. А в чем проблема-то? Вот, например, инициализация для работы в режиме slave: void Init_SPI(void) { #define SPI_SCLK_FREQ 1e6 // Частота SCLK при работе интерфейса в режиме master *pSPI_BAUD = (unsigned short)(SCLK/(2*SPI_SCLK_FREQ)); *pSPI_FLG = UPD_REG; *pSPI_CTL = 0 | RDBR_CORE // передачи начинаются при чтении SPI_RDBR, прерывание // генерируется при заполнении SPI_RDBR // | SZ // когда SPI_TDBR пуст, то передача нуля // | GM // когда SPI_RDBR заполнен, предыдущие данные перетираются | PSSE // режим выбора ведомого разрешен | EMISO // выход MISO разрешен // | SIZE // длина слова 16 бит // | LSBF // LSB first | CPHA // SCK меняет состояние в начале первого бита данных // | CPOL // активный уровень SCK низкий // | MSTR // режим ведущего // | WOM // выход с открытым стоком | SPE // SPI-порт разрешен ; *pSPI_TDBR = SPI_WAITCMD_CODE; // запись в регистр передачи чего-то там #undef SPI_SCLK_FREQ } Обрати внимание на конструкцию со многими "|" - это для наглядности (установка битов). Там где строка закомментирована, соответствующий бит сброшен. Определения в cdefBF53x.h Вот инициализация прерываний (сдесь, кроме прерывания от SPI, инициализируются и другие): void Init_Interrupts(void) { // assign ISRs to interrupt vectors // используем назначение прерываний по умолчанию register_handler(ik_ivg9, SPORT0_ISR); // прерывание данных SPORT0_ISR -> IVG9 register_handler(ik_ivg10, Spi_ISR); // Spi_ISR -> IVG10 register_handler(ik_ivg11, Timer0_ISR); // Timer0 ISR -> IVG 11 register_handler(ik_ivg12, ADC_ISR); // прерывание от АЦП (PF5) ADC_ISR -> IVG12 // enable interrupts *pSIC_IMASK = 0 | DMA1_IRQ // прерывание приема SPORT0 | DMA5_IRQ // прерывание данных от SPI | TIMER0_IRQ // прерывания от таймера 0 | PFA_IRQ // прерывание программируемого флага A ; } А вот само прерывание от SPI: EX_INTERRUPT_HANDLER(Spi_ISR) { unsigned char buf = (unsigned char)*pSPI_RDBR; // чтение буфера приема и сброс запроса // на прерывание // ......... }
  12. Кто работает со SPORT в Blackfin: знайте, что данные из FIFO приема нужно читать ДО остановки SPORT. Иначе читается только первая ячейка FIFO. 3 дня угробил, пока допер, блиннннн...
  13. Дык, вроде бы там ничего особенного. Настраиваешь SPI-порт и работаешь с ним. Все регистры описаны, и вроде, даже по-русски. С FT2232, может, придется больше повозиться. Но там есть примеры для работы по SPI через интерфейс D2XX.
  14. Да, Project Options --> Startup Code Settings --> Processor Clock and Power Settings У меня ноябрьский апдейт. Проц - BF531. Ничего не понимаю, почему не доступно :angry2:
  15. это только у меня не доступна настройка частоты процессора?
  16. ОК, а чем отличается Memory Segment от Output Section?
  17. Начал писать программу для BlackFin и возникло несколько вопросов: 1. Объектные файлы линкуются, используя информацию из .ldf. Где можно почитать об этом подробно по-русски, как этот ldf настраивать? Знаю, что есть описание на английском, но тяжеловато все сразу осилить. 2. Это принятый в индустрии метод или что-то специфичное для AD, все эти секции, а в них какие-то непонятные объекты? До этого писал программы на C с помощью gcc для AVR, там с такими вещами не сталкивался. Заранее спасибо.
  18. Спасибо большое! Это мне нужно для контроля, чтобы видеть, не промазал ли я мимо нужного плана.
  19. Именно так и делаю (командой Place Plane). И нифига. Может, версия спектры не совсем свежая (10.2)? О, сейчас обнаружил, что они все-таки передаются, просто в спектре не видны. А как бы настроить, чтобы границы планов отображались?
  20. Создаю в PCAD2004 слой типа Plane, в нем делаю разные полигоны типа Plane, к которым подключаю разные цепи питания. Но Спектра их игнорирует. Можно ли их как-то передать в Спектру? А то приходится делать кучу разных слоев Plane с разными питаниями, и после разводки сводить их в PCAD на один слой.
  21. Всегда делал все расчеты в MathCAD. Но вот хочется чего-нибудь более заточенного под ЦОС. Например, есть текстовый фал с данными (выборками АЦП), хочу посмотреть график, спектр (без программирования), быстро рассчитать и применить разные фильтры. Что сейчас модно в этом плане? Интерфейс бы вроде звуковых редакторов - все визуально. Или не выеживаться и работать в MathCAD?
×
×
  • Создать...