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

Муравей

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

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

  • Посещение

Весь контент Муравей


  1. Очень долго работал и сломался-таки увлажнитель bork hf mun 2140 ... Сгорел транзистор 2CS3835. Заменил транзистор, теперь сильно греется пьезоэлемент. Через некоторое время на его поверхности образуются пузырьки - вода вскипает. Означает ли это что пьезик тоже нужно менять ? Где покупаются пьезики? Маркировка на нём плохо видна, но что-то типа цифр 886 и буква R.
  2. Добрый день! В AD 14 есть такая проблема: схему импортирую из P-CAD, создаю из символов свою библиотеку, при этом в резисторах и конденсаторах в поле Comment автоматически записывается одно из значений со схемы. Привязываю к символу посадочное место, обновляю все символы - на схеме у всех резисторов и кондёров в поле Comment прописывается одно и то же значение, как в библиотеке, т.е. номиналы потеряны!!! Если перед обновлением в комменте писать * или оставлять пустым, то на схеме в комментах прописывается LibraryRef. Также были попытки задать Comment такое же значение, как в Designator, например C?. Designator обновляется прекрасно, а Comment тупо прописывает С? везде. Если же пользоваться для заданий номиналов полем Value, то Comment =Value обновляется, но уже в самом Value происходит замена (в точности заменяет, как в библиотеке). Как с этим бороться? Может, есть настройки, в которых можно явно указать, чтобы значение в каком-то поле не заменялось при апдейте из библиотек? Заранее спасибо за ответы.
  3. Да, всё правильно. Только не кляньчу, а избавлю от хлама :) Чего удивительного. Есть работа, а есть хобби, и я не готов тратить даже меньше половины, но существенную часть зарплаты, с учётом того , что планирую пользоваться осциллом ооочень редко. Такие траты оправданы, если оборудование нужно для заработка. Вообще я не просил учить меня жизни в данной теме.
  4. Забыл указать, что хотелось бы двухканальный. Если не найду чего-то двухканального, буду рассматривать вариант одноканального. Да и Зеленоград далековат от двух обозначенных предложений, не той цены покупка чтобы ехать так далеко.
  5. Приму в дар или за скромное вознаграждение советский осциллограф в рабочем состоянии. Территориально - Зеленоград.
  6. Тоже задумался над написанием драйвера , который будет принимать поток с 8 каналов АЦП по msasp в режиме tdm на пладе Beaglebone. Вроде бы понятно как создать устройство в /proc, создать файловый интерфейс для записи чтения. Предполагаю, что из буфера DMA буду пихать данные в большой промежуточный циклический буфер, а при вызове read() брать сколько есть, но не более чем указанное количество значений из буфера. Остался один не понятный момент, как внутри драйвера организовать функцию, в которой постоянно будет проверяться сколько в буфере DMA есть данных . Как в драйвере можно организовать функцию, в которую гарантированно буду попадать не реже ~10 ms? Какие есть стандартные средства для этого? И ещё вопрос. Возможен ли такой вариант: в драйвере заряжаю DMA на определённую область памяти и уже из USER_SPACE получаю доступ к ней. А информацию по поводу по какому адресу делать mmap зачитаваю из файла устройства в /proc. Так же из файлов читаю текущее положение кольцевых указателей. Заранее спасибо за ответы.
  7. Я тоже только начинаю осваивать линух и тоже недавно искал ответ на эти вопросы и вот что для себя решил: 1. Рано или поздно всё равно придётся что-то пересобрать, облегчить, допилить, ускорить запуск системы и т.д. Поэтому морально надо быть готовым :) 2. Можно под виртуалкой линух запустить. Совсем без десктопного линуха есть ли смысл? Освоение десктопной версии ускорит процесс освоение встроенного, по-моему...
  8. Sitara + Linux

    Потихоньку осваиваю премудрости embedded linux вообще и в частности на beaglebone. Нужно повесить на MsASP несколько слэйвов в режиме TDM. Я так понимаю, что для этого нужно писать свой модуль ядра. Почитав про модули .ko и способы их линковки вроде стало ясно, что они линкуются при наличии исходников ядра , так как потом работают в одном адресном пространстве с ядром. При первой попытке скомпилить тестовый модуль получил при загрузке сообщение типа неверный формат модуля. Ну ладно думаю, скорее всего ядро в образе не совпадает с исходниками в тулчейне ti-sdk-05.07.00.00... Начал пересобирать ядро, с ним и u-boot на всякий случай. Вообще сделал новый образ SD карты :) Всё вроде после долгих попыток даже стартануло, плата отвечает по minicom и по ssh, но ... пропали используемые мной PWM из /sys/class/pwm ! В конфиге ядра указываю что нужно разрешить PWM. Перерыв половину инета понял, что в некоторых версиях линуха эта опция не поддержана, скачал предыдущую версию с ядром 3.2.0 - аналогично. Сейчас пробую поставить тулчейн по инструкции http://beagleboard.org/linux/ , пока еле-еле качается решил поделиться изысканиями на форуме :) Если куда-то гребу не в ту сторону - просьба направить. Заранее спасибо.
  9. Sitara + Linux

    Cortex™-A8 is an ARMv7 compatible, dual-issue, in-order execution engine with integrated L1 and L2 caches with NEON™ SIMD Media Processing Unit. И есть в старших процах линейки Programmable Real-Time Unit: The Programmable Real-Time Unit and Industrial Communication Subsystem (PRU-ICSS) consists of dual 32-bit RISC cores (Programmable Real-Time Units, or PRUs), memories, interrupt controller, and internal peripherals that enable additional peripheral interfaces and protocols. The subsystem available on this device is the next-generation PRU (PRUSSv2) compared to the AM1x and OMAP-L13x. Вот про него инфы вроде нету в свободном доступе. Но мне он пока не нужен.
  10. Sitara + Linux

    Да вроде все доки на TI есть... Вы наверное другой имеете ввиду. alx2, спасибо за ответ! К сожалению прочитал его поздновато, как раз пошёл по тому пути, что Вы посоветовали. Теперь точно понял, что путь правильный. AlexandrY, а какие ограничения у драйвера, что он не справится со столь навороченным PWM? Мне от PWM нужно только выдавать разные частоты наружу...
  11. Sitara + Linux

    Здравствуйте. Переползаю потихоньку на встроенный Linux, естественно ожидаю от освоения этой ОСи увеличения скорости разработки :) Есть отладочная плата Beaglebone с процессором Cortex A8 Sitara AM3359, пользуюсь тулчейном от TI, но вместо CCS прикрутил Eclipse (CCS отказался корректно работать почему-то под Ubuntu). Но суть не в этом . Научился моргать светодиодом через mmap. Сейчас нужно запустить PWM. Впринципе, понятно, что через mmap из user space можно сконфигурить любую аппаратуру, но не для этого я ставил Linux :) Прочитал про sysfs, понял , что в ней есть драйвера для нужного мне PWM, но в инете не смог найти примеров как к этим драйверам обратиться на C. Ткните носом в ссылку плз или расскажите в двух словах. Заранее спасибо.
  12. Собрались заложить Sitara Cortex A8 в новый девайс, и только сегодня наткнулся на эту ветку. .. Beaglebone (белый) купили, сделали на него переходник с будущей начинкой нашего устройства, начинаем отлаживаться. Подскажите плз. где посмотреть перечень официальных багов этой платы.
  13. Нашёл вроде TI Cortex-A8 AM335x . Как у них с покупабельностью , кто-нибудь юзает такое ?
  14. Извиняюсь за вторжение в эту ветку, но тоже прошу совета с выбором процессора. Требования следующие: - ARM-подобное ядро >200MHz - USB hi-speed - Ethernet с поддержкой IEEE1588 - SDRAM - SD card - TDM или как там его называют, последовательный интерфейс с временным разделением каналов. Ну и конечно чтобы легко покупабельный был. Может кто встречал такой, заранее спасибо.
  15. В итоге отошёл от первоначальной идеи сделать всё в одном проекте. Теперь два проекта, загрузчик и основная программа. Управление передаётся через функцию bfrom_MemBoot().
  16. Справедливо :) В документации действительно многое есть. Я понял, что после подачи питания стартует внутренний загрузчик, он загружает образ из флэшки в L1 cache и передаёт управление туда. Hex который я видел, это содержимое ldr-файла, загрузчик знает как его правильно распарсить. Всё, что не поместилось в L1 заливается на саму флэшку и исполняется непосредственно оттуда, естественно медленнее чем из L1. Но, я проделал такой эксперимент: в тестовой программе разместил массив констант размером больше 32кБ (чтобы гарантированно не влез в L1) во флэш-памяти. После линьковки и загрузки под отладчиком , убедился, что массив реально лёг во флэш. В hex-файле ldr его конечно же не оказалось. Соответственно, остался только один вопрос, как получить реальный hex или хотя бы bin файл с целым образом содержимого флэш, а не только того, что грузится первичным загрузчиком. Это вообще реально получить из VisualDSP? Что-то не нашёл такой инфы...
  17. Спасибо за ответ, попробовал, теперь по крайней мере весь код в hex-файле присутствует. Я наверное не совсем понимаю как работает кэш. В hex-файле адресация уже для исполнения кода из L1_cach_memory что ль? А откуда первичный втроенный в BF загрузчик знает из какой области флэш и когда подкружать исполняемый код во флэш? Судя по получившемуся hex :020000040000FA :10000000065061AD0000A0FF00000000C401000028 :100010000601C1AD000080FF1400000000000000D8 :200020000600D8AD140080FF18000000000000001111000000000000000000000000000068 :0800400000000000000080FF39 :20004800060099AD0000A0FF6C0100000000000021E1010108E1903248E1C0FF408A076078 :20006800073C1F3C27362F3637363F3610E1001350E1E0FF11E1000351E1E0FF079F0F9FC8 :20008800230048E1E0FF08E10020406C696801E1DC0041E1A0FFA2E00210019249E1A0FF38 :2000A80009E1840041930EE12C554EE180FF463E7E32A66F20E10004284FCA312030094A75 :2000C800113E44009F0008E1820048E1A0FF583E000011007B0100E1818140E18181400149 :2000E80040017E32A66F00E34D0000E34D0000E30F00000000E8000009E1140049E180FF11 :2001080000E12222098A01E80000100000E80300FFE3F2FF00E32C0009E1140049E180FFB2 :2001280000E15555098A01E8000010004860C93182C6D18282C6318302600120330009E1C7 :20014800180049E180FF089309E11C0049E180FF099309E1200049E180FF0A93DC3109E1A9 :20016800240049E180FF0B932000FF2F00E8000009E1140049E180FF00E13333098A002035 :200188001000000000E80000C404A66F0CE128004CE180FF619148A0000C0C182568619138 :1C01A800695A4991256C61006191695A0891000CF717666C840401E800001000F1 :1001C400068074AD0000A0FF0000000000000000E5 :00000001FF всё крутится начиная с адреса 0x0000 и не о каких адресах флэш 0x20020000 и выше не упоминается. Как вообще в данный формат hex впихнуть 32-х битный адрес не понятно. Растолкуйте плз. или дайте ссылку где почитать.
  18. Есть необходимость сделать самодельный загрузчик для BF504F. Идея такая: реализовать функцию загрузчика в одном сегменте внутренней флэш, а весь код основной программы в другом. Упрощённо программа будет выглядеть так: short q = 0x1111; section ("BOOTLOADER_code") void boot_loader(void) { q = 0x2222; } section ("FLASH_code") void main_code(void) { q = 0x3333; while (1); } section ("BOOTLOADER_code") void main(void) { boot_loader(); main_code(); q = 0x5555; } Всё что во FLASH_code будет стираться и перезаписываться, с сохранением копии для надёжности. В ldf файл и на низкий уровень в Blackfin ещё не погружался, начал разбираться как выделить секцию. Сделал по аналогии FLASH_code { INPUT_SECTION_ALIGN(4) INPUT_SECTIONS($OBJECTS(FLASH_code) $LIBRARIES(FLASH_code)) INPUT_SECTIONS($OBJS_LIBS_WITHOUT_AUTO_BREAKPOINTS(program)) } > MEM_FLASH BOOTLOADER_code { INPUT_SECTION_ALIGN(4) INPUT_SECTIONS($OBJECTS(BOOTLOADER_code) $LIBRARIES(BOOTLOADER_code)) INPUT_SECTIONS($OBJS_LIBS_WITHOUT_AUTO_BREAKPOINTS(program)) } > MEM_FLASH_BOOTLOADER и добавил MEM_FLASH_BOOTLOADER { TYPE(ASYNC0_MEMTYPE) START(0x20020000) END(0x2002FFFF) WIDTH(8) } MEM_FLASH { TYPE(ASYNC0_MEMTYPE) START(0x20030000) END(0x2007FFFF) WIDTH(8) } Всё компилится и линкуется, но в выходном hex-файле не нахожу кода функций. Если убрать спецификаторы section, не указывая куда класть функции, то в hex тела функций присутствуют (определяю по константам 0x1111, 0x2222...). Правда странно, что первая строка hex указывает на адрес 0x0000. :020000040000FA Подскажите , что я делаю не так. Заранее спасибо.
  19. Здравствуйте. Уже достаточно давно пишу код для всяких контроллеров, но задачи были малой и средней сложности. Хватало функционального тестирования, написал программку, протестировал на весь описанный в ТЗ функционал, прошёлся по всему пользовательскому интерфейсу и Ок. Т.е. программные модули по серьёзному, раздельно, не тестировал, только прошивку целиком прямо на конечной платформе. Как-то взяло сомнение, что это правильный подход , особенно если сложность задач возрастёт и если в проекте будет больше одного программиста :) Посмотрел на книгу Мартин Р. - Чистый код. Создание, анализ и рефакторинг (Библиотека программиста) - 2010. Целая теория правильного программирования. Но применима ли эта теория для embedded кода? В общем посоветуйте плз. какую-то литературку на эту тему, может быть какие-то жизненные советы как повысить качество кода, как гарантировать , что программный модуль будет нормально стыковаться с другими модулями и в случае необходимости портироваться на другие системы, и т.д...... Заранее спасибо.
  20. Основные навыки: • разработка принципиальных схем аналого-цифровых портативных устройств на современной элементной базе: ADC-DAC, FLASH, CPLD, AVR, MSP430, 8051, ARM9; • разводка печатных плат (P-CAD, OrCAD) - последний раз в 2006-ом; • разработка встроенного программного обеспечения (С, немного Free-RTOS); • написание технической документации на русском и английском языках; • небольшой опыт программирования на VHDL (CPLD Xilinx); • пайка и наладка макетных плат Наиболее накатанная связка - это MSP430 + Си. Вот несколько законченных проектов: http://mks.ru/sol/oemr/AmbRegEkg/ http://telesys.ru/products/recorders/93/ http://telesys.ru/products/recorders/95/926/
  21. Ищу работу в Зеленограде. Резюме http://www.job-mo.ru/res595365.html
×
×
  • Создать...