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

Gorby

Свой
  • Постов

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

  • Посещение

  • Победитель дней

    4

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


  1. Хочу добавить про 10 000 часов. В той версии истории, что читал я, были несколько иные акценты. И вот эти акценты очень важны. А их переврали. Сравните: - было обнаружено, что так называемые "таланты" (причем неважно в какой области), посвятили своей профессии в среднем около 10000 часов. - это факты, обнаруженные при исследованиях - занимайся чем-либо 10000 часов и ты будешь талант. - а это дедуктивное следствие, в общем случае неверное (недоказуемое). Проковыряйте в носу 10000 часов и что? Ну так вот, при исследованиях "талантов" и их менее одаренных коллег выяснилось, что коллеги не тупее, а таланты не умнее. Просто таланты потратили на обучение НАМНОГО больше времени. И как раз это время в среднем и составило 10000 часов. И почти не зависит от профессии. Как тут уже говорили, кто-то в армии выучил "три аккорда". А кто-то с шести лет в музыкальную школу ходил. Вот эта разница и называется "опыт". Я вас умоляю, какие 20 часов....
  2. Да и не надо. Не о том речь. Используйте Актив-ХДЛ! Нарисуйте пути данных, а управление уже очевидным будет. обратите внимание на часть "схемы" справа. С буквой М - сигналы на память. Внутренняя шина MUXERR - вход ФИФО. Шина UD - выход ФИФО. M2D - двунаправленная шина данных микросхемы памяти (16 бит). M2A - адреса памяти. U11 и U7 -вот собственно две простые машинки, рулящие управлением. FIFO_FULL - внешний вход, собственно ЗАПРОС данных (имелся в виду фифо юсб контроллера). Если фулл, то данные НЕ слать. Данные из ФИФО наружу (UD) стробируются USBWRN (низкий уровень) по клоку IFCLK - формируется из основного клока. А какие там проблемы с моделированием шин? Есть там конечно нюансы, но не страшные.
  3. Да, конечный автомат нужен. Но он простой, один-два триггера. Вы с частотами-то поосторожнее. Тщательно просчитайте, возможно ли в принипе добиться от Вашей памяти такой растактовки. Тут нужен в клеточку лист бумаги, карандаш и мозг. Оно само всё покажет. Если основной клок 100МГц и данные поступают на каждом втором такте - то у Вас просто нет шансов даже на запись - каким образом сформировать управляющие сигналы? Или делать асинхронщину на RC цепях. У Вас нету системного подхода. Сначала - растактовка памяти (управляющие сигналы формируются из виртуального клока, и это будет явно не 100МГц, а 180, 166 или рядом). Критерий - максимально выжать быстродействие ОЗУ при условии, что управление идет почти на макс скорости (половина системного клока). Вижу сам, что сумбурно. Вы сами сразу всё увидите, как растактовку ОЗУ нарисуете.
  4. Значит, у Вас такой задачи не стояло Автору топика: вполне заурядная задача, смелее делайте и будет всё работать. Не забудьте про довольно большие счетчики адресов, их сравнение, и результат этого сравнения. Тут правильно советуют - операция записи в ОЗУ имеет приоритет перед чтением. Работу с ОЗУ разбиваем на циклы. Цикл состоит из записи и потом чтения. Если есть запрос на запись - пишем. Если есть запрос на чтение - читаем, пока не появится запрос на запись или не кончится чтение. Если одновременно присутствует и запрос на запись, и на чтение, то в каждом цикле одно слово должно записаться, и одно-вычитаться. Тут надо кропотливо поработать с таймингами ОЗУ. Очень помогает моделирование в Моделсиме или что там у Вас есть.
  5. Убедитесь, что в ERRATA не упоминается такой случай. Убедитесь, что в настройках компилятора выбран правильный процессор (при неверном выборе всё "как-бы" работает, но не так). Наблюдатель влияет на объект. Отладчик Вам здесь не поможет. Лучшая отладка - пин на выход и осциллограф. Урезайте код до минимально возможного, вычленяйте проблему. Проверьте, выполняется ли условие возникновения прерывания (ну например, счетчик тупо никогда не досчитывает до места , где должен вызвать прерывание). Понизьте уровень оптимизации или совсем ее отключите. Поскольку код урезан до минимального, смотрите его ассемблер глазами очень тщательно - например на предмет доступа к регистрам, куда не должен доступаться (управление прерываниями). Удачи.
  6. Ну да, vsim.wlf. Даблкликаем на нем мышкой и он открывается в среде Моделсим. И можно просматривать все сигналы. Чуть сложнее. Запустить Моделсим. File->Open <ваш VLF> Затем руками команду add wave -r /*
  7. Вам ли не знать?! При симуляции образуется на диске длиннющий файл уж не помню с каким расширением. Так вот, если на нем после кликнуть мышкой, то он откроется в моделсиме со всеми волнами. Правда только смотреть, моделировать уже нельзя.
  8. Спасибо! В точку! Ну почему не на 1-10 странице?...
  9. Здравствуйте. Окружение: обычный современный лаптоп средней руки с одним ЮСБ 3.0 и двумя ЮСБ 2.0 портами под управлением Вин 8. Есть две промышленные видеокамеры uEye (разные - одна цветная, другая - ч\б). Есть специализированный софт для камер Cocpit, где можно играть с параметрами и наглядно видеть скорость потока данных и сбои. Обе камеры - ЮСБ 2.0 HS, построены на Cypress 68013. Наблюдения: Обе камеры включены в ЮСБ 2 порты на одной стороне лаптопа. Очевидно, используется один хост-контроллер и внутренний хаб. - при суммарном потоке данных с камер более 35 мБ/с начинают пропадать кадры. Это согласуется с пропускной способностью одного хоста и хаба за ним. - если одну из камер переключить на находящийся с другой стороны разъем ЮСБ 3.0, то удается достичь вдвое более высокий поток данных, до 60-70 Мб/с. Это подверждает версию о том, что на ЮСБ 3.0 стоит отдельный хост-контроллер. Сейчас самое странное: Теперь обе камеры включены в порты 4-портового ЮСБ 3.0 хаба, имеющего внешнее питание. Аплинк порт хаба подключен к ЮСБ 3.0 порту лаптопа. Всё определяется, работает, но как и прежде, при суммарном потоке данных с камер более 35 мБ/с начинают пропадать кадры. Это ни с чем не согласуется. Как будто нет никакого ЮСБ 3.0 транспорта. Как так может быть? Ожидалось, что при использовании ЮСБ 3.0 хаба оба порта с устройствами ЮСБ 2.0 будут работать с максимальной пропускной способностью ДВУХ портов (то есть ДВА по 35 мб/с). Крамольная мысль: неужели чтобы достичь бОльшей скорости, девайсы за хабом тоже должны быть 3.0 ? Можете как-то прокомментировать? Хаб - самый обычный ISIDU , даже без управления питанием. В дальнейшем предполагается разработка собственного хаба на TI TUSB8041. Заранее благодарен за ответы.
  10. Вот это действительно странно. Нет никакой необходимости стробировать с SSEL каждый байт. У вас верно сделано, SSEL на время передачи всех 4-х байт. Приемник обязан принимать. То, что первый байт принимается верно, подтверждает правильность выбранных режимов (там еще те грабли могут быть). А вот тут немного не так. На самом деле при SPI тактовой (сколько там у вас? 40 кГц?) принятие символа - очень редкое событие. Это не 2 и не 10 MHz. Попробуйте сделать одно прерывание на один байт.
  11. Разберитесь с условием while (SSP0MIS_RXMIS & SSP0MIS). Очевидно же, что следующий байт придет только через достаточно большой интервал времени (относительно скорости процессора). Получается, вы несколько раз считываете один и тот же байт. Убедитесь, что при чтении первого байта сбрасывается флаг готовности. А вообще как-то стремно: прерывание вызывается для каждого принятого байта отдельно, но внутри прерывания вы пытаетесь вычитать более одного. Разберите более подробно как работает m_SSP0.Read().
  12. Натурально, прячем некрасивости под термоусадку.
  13. УАРТ через ЮСБ - это не совсем УАРТ. ЮСБ - принципиально блочный интерфейс, а УАРТ - символьный. Вам нужно изменить архитектуру программирующего софта. ПК через ЮСБ->УАРТ передает Вспомогательному процессору блок данных (0.5 или 1 кБ) и команду, что с ними делать. Он отрабатывает команду, записывая блок в микросхему-таргет. Аппаратные подробности SPI никуда наверх не идут (только для индикации ошибок). Точно также и с чтением. Даем команду на чтение блока. Ждем. Потом блок вычитываем. На ПК детали SPI не видны. А если хочется прямо с ПК рулить SPI ножками, то Avreal Вам в руки. Удачи.
  14. >>я должен увидеть скорость приема близкую к 7200 байт/с (115200/8/2). Неправда. 115200/10=11,52 килобайт\сек. Это в идеале. Десять битов на посланный байт. >>Пишу ПО в Билдере, использую стандартный API функции Прочтите мой ответ "по буквам". А затем "слитно". Как быстрее? А почему? Правильно выбирайте функции. Непременно получите. Удачи.
  15. Ага, если делать это языком. Вы в курсе, что сервовентили бывают со временем срабатывания от 18 до 180 секунд? И на разное напряжение, от 12VDC до 230VAC. А еще разных диаметров, разные системы присоединения. И так во всем. То, что не запроектировано с самого начала, потом доделывается с очень большим трудом.
  16. Укажите кристалл - АВРы бывают сильно разные. Функцию общения с микросхемой драйвера шагового двигателя - TMC260 - по телефону или как? Или тоже по SPI? частота следования шагов плавно нарастает и убывает - "первый полк марширует..." - время как считается? Таймером или NOPами? А частота кварца где? А свободный таймер есть? А прерывания можно? А так да, по-вашему довольно понятно :)
  17. Эта цифра - из эмпирического правила, что зазор до чужого проводника должен быть раза в три больше, чем ширина дорожки. На самом деле, гораздо бОльшую роль играет ширина самих трасс и толщина изоляционного материала до опорного слоя. Конкретно для USB нужно обеспечить 90 Ом дифференциальный импеданс. Пример: при трассах шириной 0.2мм , ширине зазора 0.22мм и толщине субстрата 0.1 мм импеданс примерно равен 87 Ом. Далеко не каждый производитель предложит вам недорого такую плату (минимум - 4-слойку). В Вашем случае, если длина трассы не превышает двух-трех сантиметров и нет особых требований по EMC, то париться вообще не следует - любые дорожки с любым зазором (в разумных пределах) будут работать.
  18. Завместо передающей катушки поставьте четыре постоянных магнита ортогонально. Тогда на "змейке" получите переменный ток. Его можно выпрямить и сгладить. На вашу мощность должно потянуть.
  19. Ну так там же все написано: отличается тиристорным ограничителем напряжения на катушках индуктивности. И еще последовательно с большими катушками включены мааааааленькие Ferrite Beads.
  20. Едва ли это правда. В драйверах ШД ШИМ как раз и используют для регулировки/ограничения тока. Ведь ключ работает на индуктивную нагрузку. И ток плавно нарастает. По достижении заданной величины тока ключ выключается до конца периода управления. Дальше процесс повторяется с некоторой частотой управления, которая в разы больше, чем скорость шагания. При это ставновится возможным питать двигатель от повышенного напряжения, что позволяет добиться более быстрого нарастания тока и как следствие, возможна работа на более высокой частоте шагов.
  21. Гениально! Совсем немного осталось до магнита на веревочке - и тогда точно уж никаких проблем со смачиваемостью\капиллярностью. А, и тоже видеокамеру...
  22. Ну так нельзя. Если хотите показать питание процессора, то и станьте на его питание (на один из блокировочных конденсаторов). Уверяю Вас, согласно законам коммутации, Вы не увидите на конденсаторе тех пиков. Отверните от щупа земляной проводник с "крокодилом" и используйте пружинку из комплекта. А плата что, односторонняя? - Вижу неметаллизированные отверстия. У Вас вообще есть земляной полигон? Может не надо с мельницами сражаться? Чтобы потенциал земли заметно скакал, токи должны быть десятиамперные. Или сопротивление земли порядка десятков Ом. Обследуйте землю на предмет неразрывности и низкого сопротивления.
  23. Уважаемый, того безобразия, что Вы показываете на шине +3.3В при таком построении блока питания не может быть в принципе. Еще можно как-то понять просадку. Но откуда выброс?! Это после двух стабилизаторов с конденсаторами между ними? Не верю!(с) Либо Вы не туда подключили землю осциллографа (довольно распространенная ошибка), либо у Вас нет земли как цепи с нулевым потенциалом (дорожку резанули или не провели) и теперь земля идет по бооольшому контуру в том числе и по кабелю осциллографа. Вот тогда такие глюки возможны.
  24. Узнаю брата Колю!!! Да, именно эта схема. Конденсаторы паяются непосредственно на корпус двигателя. Дроссельки там на ферритиках - по-современному ferrite beads. То есть низкодобротные, с поглощением. Такие НЕ звенят. Ну не может земля прыгать. Не может моторчик 50-100мА давать такие эффекты. Выкладывайте полную схему - от розетки и до моторчика.
  25. Радиолюбители... Как они трогательно наивны.... И всё... Ни тебе подумать о минимальном коммутируемом токе, ни тебе предусмотреть элементарную защиту от статики, от наносеков и микросеков. А то разлетится в пух и прах "контроллер на плюс три вольта" от первой молнии, шарахнувшей в десяти кварталах. А поди ж ты и землю от процессора выведем аж на устройство. Ну и параллельно кнопочкам - кондерчики. Зачем? - Ну, слышал, взрослые так делают...
×
×
  • Создать...