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

stalko

Свой
  • Постов

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

  • Посещение

Репутация

0 Обычный

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

  • Звание
    Частый гость
    Частый гость
  • День рождения 09.06.1976

Контакты

  • ICQ
    Array

Информация

  • Город
    Array
  1. Всем доброго дня! Сразу говорю, просьба не ругаться, но так и не нашел абсолютно подходящего раздела на форуме. Это самый близкий. Пусть модераторы найдут более подходящий, если надо. Суть вопроса: начальник "сочинил схему" интеллектуальной батареи на BQ20Z45, которая стоит во многих аккумах от ноутов. Таким образом он, вероятно посчитал, что повесь теперь выход микросхемы на системный SMBus MiniPC (GENE-QM67) и тут же в трее появится значек с уровнем заряда... У меня эта идея вызвала изрядный скепсис, но что делать. С помощью EV2300 BQ-шку запрограммировал, к MiniPC подцепил, винду загрузил, включил значек отображения в трее... Дальнейшего прогресса нет, само собой значек есть, а толку от него - ноль. В диспетчере устройств батареи (как это в тех же ноутах) нет. Вероятно, нужны драйвера... Для BQ-шки таковых универсальных нет... А может и в самой BQ-шке еще какой флаг поставить надо... Не прошу готовых решений, но, возможно, кто-то имел удачный (или нет) опыт подобных "обатареиваний" приборов на MiniPC, и сможет помочь разобраться в вопросе? Осциллом пока шину не смотрел, гляну чуть позже. P.S. Возможно изложил немного мутно, но в принципе, такие вопросы вообще не совсем... в моей профессиональной компетенции. Если что, уточняйте конкретные моменты.
  2. Вам полностью содержание полей дескрипторов, или просто сам порядок дескрипторов интересен?
  3. Ожидание конца передачи там есть изначально... это как бы априори... Тут, похоже, нужны именно ПАУЗЫ. Такое чувство, что проц на модуле... как бы сказать... не очень P.S. Хотя, подумал над Вашей фразой... Мы явно говорим о разных вещах... Я о проверки на окончание передачи перед новой посылкой, но в Вашем контексте это не имеет смысла... Вы предлагаете ожидать окончания передачи прежде чем начинать прием (или не прием, а ОБРАБОТКУ?) ответа? Извините, а смысл? Что это дает, собственно? P.P.S. Исходя из мысли о том, что не справляется проц модуля я постарался его разгрузить, и отключил эхо у модуля. После чего все заработало всех всяких пауз.
  4. Ясно, что за это цепляться, знать бы чем Для USB у XMeg почти без вариантов: от внутреннего RC-шника, который причем раскачан до 48МГц. От него же, через делитель идет и системный клок, и для периферии. P.S. В целом, проблема решена. По идее Genadi Zawidowski я вставил внутри основного цикла паузу на 0,5мсек (потом уменьшу). К моему удивлению, все сразу начало работать. Теперь бы еще все протестировать с самого начала, как бы такие паузу чего другого не зацепили
  5. Да, собственно, никакой... Послал, и кручусь, жду, пока наберется строка ответа от модуля. И только после проверки ответа будет другая команда (если будет). Довольно примитивная машина состояний: передал-принял-передал-принял... Об этом я уже думал, но это не так просто, к сожалению (если Вы про физическую скорость UART-а, а не про паузы между посылками, конечно). Кстати, вот плохо, что у XMeg нельзя настроить паузу между байтами в DMA. У АРМов, если я не путаю, ее можно задать...
  6. Доброго времени суток всем! За все время работы с мегами (с икс-мегами в частности) впервые столкнулся с таким абсолютно дурацким "приколом". Суть такая: проц (ATXmega128A3U) коннектится к Bluetooth модулю через UART, используя AT-команды, при этом идет индикация подмаргивающим светодиодом, BT-модуль ищет пару, соединяется, после чего проц включает USB, проводит энумерацию в системе, светодиод загорается постоянно. В целом ничего смертельного. Написал, отладился... Отцепляю JTAG... и вижу... к паре BT никаких попыток соединения, светодиод продолжает моргать, в системе устройства нет... Снова подцепляю JTAG, запускаю... все работает со свистом... Отцепляю... где-то встает намертво. Методом "светодиодоподмаргивания" нашел место. Выяснилось, что часть обмена проц даже успевает провести, но там длина команд и ответов маленькая, как только строки начинаются длиннее, начинается ерунда. Перецепил JTAG (USBJTAG MkII) в PDI... Все работает... Вариантов в голове крутится много, начиная от плохих земель, кончая "уезжанием" скорости UART-а. Но зацепиться пока не знаю за что. Вдруг кто уже сталкивался с похожими приколами? Может что присоветуете? P.S. По сути не думаю, что там что-то страшное, но состояние слегка близко к панике, ибо железяку бы сегодня надо доделать, а еще и день короткий. P.P.S. Посылаю строки через DMA UART-а, принимаю побайтово, через прерывания, так как заранее длина приемной посылки не известна достоверно.
  7. Имеется, но в деле выравнивания по слову не помогает
  8. Походу, остается только один вариант: объявлять секцию и класть в нее переменную через аттрибут "section". Тока это секций не напасешься, если много выравниваемых переменных... P.S. Чтоб не быть голословным, а заодно проверить, работает ли атрибут "section", попробовал так и сделать. Все получилось. Структура легла на четный фиксированный адрес. Неудобно, зато надежно.
  9. Всем доброго времени суток! Столкнулся с абсолютно дурацкой проблемой: мне необходимо, чтобы одна из структур в моей программе была выровнена по границе слова. Вроде все просто и понятно: ставлю атрибут гнутого __attribute__((aligned(2))), все вроде заработало. Потом добавил байтовую переменную, программа рушится. Сначала я не понял "юмора", затем полез в map-файл и обнаружил, что хоть атрибут и стоит, а структура лежит по нечетному адресу!!! Пробовал ставить и после объявления, и после struct и в описании типа. Пробовал вариант __attribute__((__aligned__(2))) Все одинаково. Atmel Studio 6.0.1938 SP1. AVR GCC 3.4.065 AVR Toolchain 8 bit 3.4.0.663 - GCC 4.6.2 Возможно, кто-то сталкивался и смог решить проблему. Я пока положил пустую волатайловскую переменную впереди, все работает, но это бред со самой своей сути. Заранее благодарен за любую помощь!
  10. Тестирую DAC в XMEGA

    Ну, я предпочитаю ветвить прям от стабилизатора. У Вас А1 чтоли? ))) Раз 100-ногая... У меня А3 и там 64 ноги, и AVCC одна, мне проще... Хотя, поднять 4 ноги - не самое большое удовольствие, но и суперсложности в этом не вижу. Ну, если Вам так проще, порежьте подходящие дорожки к ногам, и на них напаяйтесь, потом восстановите, если что...
  11. Тестирую DAC в XMEGA

    В принципе, PG (ЕМНИП), имеет больше ток рабочий, так что подошел бы... А шумит именно с ЦАПа, или питание тоже шумит так же? Стоят BLM-ки и по питанию, и по земле? И после них у меня прям почти на ногах кондер стоит 0.1мк... Еще вопрос, уже по топологии. Как у Вас идет цепь этой аналоговой земли и питания по плате? Сначала на цифру, потом приходит на аналог, сначала на аналог, потом на цифру, или они ветвятся начиная от стабилизатора? Еще вариант, немного геморойный, но может точки над I расставить. Попробуйте поднять ноги AVCC и соседней земли, провода припаиваете, ставите кондер, далее две BLMки (все "на соплях"), а оттуда прям этими же проводами на землю и питание со стабилизатора, в обход печати. Если у Вас стоит дроссель после стабилизатора (например), то паяйтесь еще ДО дросселя, ближе к микросхеме стабилизатора.
  12. Тестирую DAC в XMEGA

    Короче, BLM31 у меня стояли... У меня стояли на большой максимальный ток, чтоб не плодить номенклатуру (они же стояли на выходе вторичных источников просто). Вам, думаю, BLM31AJ601SN1 вполне пойдет
  13. Тестирую DAC в XMEGA

    Это значит шутку юмора Да, шкала у Вас везде одинаковая, но в первых случаях шумов все же больше. А у Вас щуп с делителем стоит? Это, кстати, принципиальный вопрос. Опять таки, присмотрелся, у Вас на последей картинке вообще есть постоянное смещение, хотя и копеечное... Вот это с чего, вдруг, я е допонял. Попробуйте кнопочку "AutoScale" (или как она там?). Случается, что она чудесным образом "исцеляет" осцилы...
  14. Тестирую DAC в XMEGA

    Ну, для 20мВ/дел не так и плохо... На Ваших-то осциллограммах все "немного сильно" хуже
×
×
  • Создать...