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

Xenia

Модератор FTP
  • Постов

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

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

    3

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


  1. Несомненно у меня с вами разные взгляды на эту проблему. Вы, судя по своему посту, - электронщик, а я программист. Мне и программы (игрухи в основном) взламывать приходилось и dll-библиотеки Windows дезасемблировать (они не документированы, а иногда надо понять, как работает та или иная функция). Не скажу, что это легкое занятие, но по меньшей мере привычное. Прошивка мобильника в этих масшабах выглядит, как не очень сложная работа. А вот по выяснению принципиальной схемы у меня исключительно негативный опыт. Однажды пыталась установить схему внутрисхемного программатора, предназначенного для другой модели процессора. Там всего-то одна микросхемка была, смонтированная в LPT-вилке, и то я намучалась, пока там сигналы MOSI и МISO нашла. А ведь это был всего лишь двухсторонний монтаж. А если бы он был четырехслойный? Или более? Что тогда? Впрочем, я даже понятия не имею, сколько слоев монтаж на мобильниках. Может быть вы знаете?
  2. Спасибо за информацию! Я-то, честно говоря, тем обеспокоена, что демо-платы под ARM9 стоют довольно дорого. Например, вот такая простенькая платка с питанием и разъемами стоит 8775 руб. А ведь ни кнопочек, ни дисплейчика нет. А кои с дисплейчиком, так те на 20-25 тыщ тянут. А от сотовых телефонов аж радиорынок трещит. Если раньше радиодеталями и электроникой торговали, то теперь сплошь одними мобильниками все прилавки забиты. Причём бэушными. Краденые они все что-ли? Вот я и подумала, что из сотового телефона можно сделать массу полезных вещей, причем задешево (в смысле готового железа). Может быть тогда пойти по пути, чтобы не стремиться узнать всё про все мобильники, а просто поискать "наименее секретные" из них, про которые известно больше всего информации, и юзать под это дело именно их? Полагаю, что мои вопросы в этой теме не помешают голосованию, но рассмотрение этого вопроса и в самом деле может оказаться полезной широком кругу учасников нашего форума. Может стоит отдельную тему для такого обсуждения завести или можно в этой? Как старшие товарищи считают?
  3. А прошивку у них тоже нельзя считать? Впрочем, сотовые телефоны частенько перешивают, значит прошивка для них все-таки имеется. А раз так, то можно по прошивке разобраться, как эта штука работает, дезассемблировав, а затем модифицируя ее по частям. Вряд ли это окажется гораздо сложнее, чем устанавливать принципиальную схему.
  4. Тогда будьте добры, назовите свой микроконтроллер. А то что-то я не найду ни одного, у которого был бы регистр ADCCR. Бывает регистр ADCR, но из него данные читают, а флаги интеррапта туда не кладут.
  5. Почти как задачка из школьного учабника: За 15 килобаксов 15 программистов напишут 15 программ за 15 дней. За сколько дней 1 программист напишет одну программу, если ему заплатить один бакс? :)
  6. А вы твердо уверены, что в sleep-моде АЦП должен продолжать нормально работать? Мне что-то кажется, что АЦП не должен работать (правильно оцифровывать напряжение), когда процессор погружен в спячку (энерго-сбегающий режим). Ведь работа АЦП это одна из больших статей расхода электроэнерии и со спящим режимом она врядли совместима.
  7. Простите за оффтоп, но не подскажите ли тему (сама на форуме поиском не нашла) где бы обсуждался аспект применения сотовых телефонов ... не по прямому назначению. Ведь б/у-шные мобильники нынче дешевы, как никогда. А ведь это уже распаянный процессор с памятью, питанием и даже дисплеем! И все это уже в готовом корпусе. Отчего бы не попробовать дать мобиле вторую жизнь - использовать ее как компактный микрокомпьютер, способный при надобности управлять периферией (через тот же разъем, через который заливается прошивка). Короче говоря, пробовал ли кто-нибудь программировать мобильник под иные цели, чем те, на которые рассчитан телефон? А то на сайтах, посвященный мобильникам, "ембендерством" совершенно не интересуются, а здешний народ вроде как видит в них только телефоны.
  8. И всё-таки вам большущий респект от меня за идею так припаять разъем! Я вот печатный монтаж делать не умею, а монтажными платами в квадратную дырочку иногда пользуюсь. Уж как я чертыхалась, что разъемы в нее вставить невозможно. Впрочем я их все-таки вставила, изогнув один ряд в одну сторону, а другой в другую. Плотно это в плату не вставляется, но держится нормально. А как я только сообразила, в чем заключается ваше решение - пришла в буйное возбуждение :). Интересно, насколько широко известно это решение. Может быть вам его запатентовать? :)
  9. А что это у вас разъем на углу? Не эстетично как-то. С ужасом представляю себе коробку для этой платы :). ... доперла! Иначе вам его в дырочки не засунуть.
  10. AVR32 uC3B

    Долго ждать не пришлось - сегодня вышел EWAVR32-320A. Как я и ожидала, добавили поддержку AT32UC3L. Support for new device families FlashVault support Improved trace support Updated Hardware Debugger Guide IAR Embedded Workbench supports all devices with AVR32A and AVR32B cores: AP7000 family: AVR32 AP7000, AP7001, AP7002 UC3 family: AT32UC3A0128, AT32UC3A0256, AT32UC3A0512 AT32UC3A1128, AT32UC3A1256, AT32UC3A1512 AT32UC3A364, AT32UC3A3128, AT32UC3A3256 AT32UC3A364S, AT32UC3A3128S, AT32UC3A3256S AT32UC3B064, AT32UC3B0128, AT32UC3B0256 AT32UC3B164, AT32UC3B1128, AT32UC3B1256 AT32UC3L016, AT32UC3L032, AT32UC3L064 http://iar.com/website1/1.0.1.0/124/1/
  11. Скажите пожалуйста, оговорено где-либо в стандартах (не в даташитах!) пределы, в которых цифровой сигнал (как 5 вольтовый, так и 3.3 вольтовый) обязан интерпретироваться, как высокий или низкий уровень. Т.е. в каком диапазоне у них низкий и высокий уровни?
  12. http://electronix.ru/forum/index.php?s=&am...st&p=614489
  13. Сразу признаюсь, что ответов на ваш главный вопрос у меня нет, поскольку использую я не ADS1256, а ADS1255, у которого нет каналов, которые можно было бы переключать. Могу лишь ответить на этот: "Я, честно говоря, не понял, зачем посылать команды SYNC и WAKEUP, если им полностью эквивалентно управление синхронизацией через вывод SYNC/PWDN...". Здесь, думаю, причина в том, что ипользовать выводы микросхмы для этих целей не целесообразно, когда АЦП и МК гальванически развязаны. Чтобы управлять этими сигналами через пины, пришлось бы дополнительно развязывать еще две линии, а управляя ими программно (через SPI) можно обойтись одним элементом ADuM для развязки. Однако хотела бы спросить о причинах странности с сигналом SCLK, который у вас на осциллограмме желтый. 1) Там где идут отдельные пачки по 8, это понятно - передача байта. А отчего две последние пачки такие толстенькие? На 2 пачки по 8, следующие друг за другом, они не похожи - 16 импульсов в них нет, а есть где-то около 14. 2) Отчего SCLK в промежутках между передачами уходит на постоянный высокий уровень? Ведь если это CLOCK, стробирующий положительной полярностью, то и держаться он вроде бы должен низким уровнем, когда пассивен. А у вас не так. Почему? 3) Те две толстенькие пачки странны еще и тем, что заканчиваются высоким уровнем. Честно говоря, я в растерянности от случая, когда импульсы начинаются с нижнего уровня, а кончаются верхним. Как тут считать их количество?
  14. Если с паяльником дружишь, то лучше всего купить готовую демо-плату. Например вот эту: http://www.olimex.com/dev/avr-p28.html . Вставляешь в ту панельку ATmega8 в DIP-корпусе (ее купить придется отдельно) и установка готова. Там только входы UART к панельке не припаены, хотя сопряжение от RS232 уже сделано. Этот небольшой недостаток проистекает из-за того, что в корпус DIP-28 можно разные микропроцессоры втыкать, а потому заранее неясно где будет TX и RX. Ну и программатор еще надо купить, самый дешевый AVR-PG2B - http://www.terraelectronica.ru/catalog_inf...class_19_2_26_3 В той же "Терраэлектронике" можно купить и то, и другое сразу. А вообще, совсем не важно, насколько сложен тот процессор, с которого начинаешь. Ведь никто же не заставляет разом использовать все его возможности. Начать лучше с того, чтобы заставить его "ножкой дрыгать" - светодиодиком моргать (на плате светодиод уже приделан). После этого процессор становится другом :), и всё остальное постигается в процессе решения конкретных приложений. Если с паяльником не дружишь, то можно купить наборчик с релюшками http://www.olimex.com/dev/avr-io.html , они хоть и не велики ростом, но на 220 вольтах работают. Можно сделать к Новому Году переключатель гирлянд, а если как следует покорпеть, то и светомузыкальную приставку. Только в эту панельку обычно тинька (ATtiny) лезет, а это очень слабенький микропроцессор. Ну а для полного кайфа можно купить вот это http://www.olimex.com/dev/avr-usb-stk.html - тут и USB, и читалка карт памяти и гнездо для подключения наушников. Из этой можно и MP3-плейер сделать, если постараться. Хотя я не уверена, что этот микропроцессор справится с декодировнием MP3. Ну в крайнем случае можно пока WAV-файлы проигрывать. Короче говоря, демонстрационные платы - просто находка для тех, кто хочет самостоятельно освоить микропроцессорную технику. Их всегда можно купить в магазине, а заодно к ним скачать с сайта компании-производителя готовую программку для этой платы и посмотреть, как она работает. Программку дают с исходниками, которые можно использовать для изучения программирования.
  15. Ага, совсем :). REF нужен не для симметрии, а как эталон, с которым сравнивается измеряемое напряжение. И калибруется он по этому же напряжению. Обычно REFы ставят на половину шкалы или на целую шкалу, а для конкретного АЦП написано в его даташите. Отсюда ясно, что при нулевом REF АЦП работать не будет. Знаю три способа этого достичь: 1) Поставить на входе специальный операционный усилитель, способный делать измерямому напряжению подпор (например INA114). Если этому операционнику подать на ref-вход REF, то он на это напряжение и поднимет. Тогда на выходе ОУ и на входе АЦП будем иметь Uвх+REF или от 2.4 до 2.9 вольт в вашем случае. Однако будьте готовы кормить этот ОУ отрицательным напряжением питания, иначе он (и не только он) не станет работать с отрицательным входным сигналом. 2) Если земля АЦП развязана с измеряемым напряжением (т.е. питаются от разных источников питания, не имеющих общей земли), то есть совсем простой способ - подать измеряемое напряжение между REF и входом АЦП. Тогда REF автоматически будет прибавляться к входному напряжению. Но если у вас земли гальванически не развязаны, то таким соединением вы угробите источник REF-напряжения, замкнув его на землю. 3) Измеряемое напряжение подать между -IN и +IN, и измерять в дифференциальном режиме. При этом соединяя с REF среднюю точку (ее можно получить на делителе по 500 ком в каждом плече между входными контактами измеряемого напряжения). Эти напряжения могут быть разными, но земля у них одна. А разделили эти земли только для того, чтобы вы могли аналоговые элементы заземлить в одной точке, а цифровые в другой, а потом соединить между собой обе эти точки. Такова уж особенность минимизации попадания цифровых шумов в аналоговую часть. Имеено для этого, а не для того, чтобы вы между этими двумя землями втыкали лишний потенциал.
  16. WDTimer

    Когда команды примитивные (т.е. без параметров), и их число не превышает 256, то, несомненно, удобнее односимвольная кодировка - тут она самоя короткая. Но как только символов ASCII перестало хватать - приходится использовать слова, а тут уже потребуются какие-то разделители между ними: пробел, табулятор, символ конца строки и т.п. В этой связи вспоминается фраза на манер японских хайку: "Кончилось место на Z, Что же мне делать теперь? Ведь это последний..." :)
  17. Ресет USB-устройства и ресет удаленного микропроцессора - вещи совершенно разные! Reset USB-устройства это разрыв логического соединения, а затем его новое соединение с повторным чтением всех дескрипторов и присвоением нового адреса (SET_ADDRESS). Эта процедура происходит на уровне протоколов. Напротив, ресет микроконтроллера означает его физический перезапуск, вследствие чего он имеет возможность запуститься с загрузчика. Никаким ресетом порта вам не заставить перезапусться микроконтроллер! Отвечу вам в тон: а что если тулза юзера сделает то же самое, что делает код вашей функции?
  18. AVR32 uC3B

    Это свидетельствует о ... высокой ответственности! :) Прежде чем пустить серию на продажу, она проходит тщательную предварительную проверку. А вы как хотели? Чтобы процессоры пускались в продажу с пустой ерратой, а недостатки выявлялись уже на том, что продано?
  19. AVR32 uC3B

    И чего народ так еррат боится? Их надо рассматривать не как недостатки процессора, а как недостатки даташита :).
  20. В протоколе USB нет и не может быть такой команды, получатель которой делал бы себе харакири :). Поэтому копать надо не в сторону поиска такой экзотической USB-команды, а в сторону интерпретации уже имеющихся в протоколе команд. Например, интерфейсная команда SEND_BREAK используется крайне редко, вот на ее обработчик (в вашем USB-устройстве) вы могли бы повесить ресет (блокировать прерывания + поставить самый быстрый WatchDog + войти в вечный цикл). Тогда для ресета микропроцессора было бы достаточно послать на виртуальный COM-порт команду с помощью API-шной Windows-функции SetCommBreak. При этом нет необходимости делать интерпретатор идущего по линии потока данных, поскольку интерфейсные команды поступают иным путем. P.S. Только не забудьте, сразу же закрыть COM-порт (CloseHandle) со стороны компьютера, а после ресета снова его открыть, иначе после ресета USB-порт откажется разговаривать с устройством, позабывшим свой адрес. Т.е. рискуете тем, что устройство перезапустится на bootloader, но USB-канал зависнет в патовой комбинации, из которой выйти можно только вручную - выдернуть и снова воткнуть USB-кабель.
  21. AVR32 uC3B

    Вчера (!) выпущен AT32UC3L (в анонсах он был объявлен ранее). Пико-токопотребление (0.48 mW/MHz), 48 ножек, $1.96 (64K flash) и $1.47 (16K flash) в партии 10 тыс. шт. Источник - http://finance.yahoo.com/news/Atmel-Introd...ml?x=0&.v=1 , даташиты здесь - http://www.atmel.com/dyn/products/product_...sp?part_id=4591
  22. Уже думала про это, но лениво было проверять :). А вот это как раз меня больше всего интересует! К сожалению, константы DeviceIoControl для СОМ-порта не описаны. Любопытно, что функция BOOL EscapeCommFunction( HANDLE hFile, // handle to communications device DWORD dwFunc // extended function to perform ); очень похожа на DeviceIoControl, поскольку значение dwFunc очень похожа по смыслу на констанды DeviceIoControl: dwFunc value: CLRDTR Clears the DTR (data-terminal-ready) signal. CLRRTS Clears the RTS (request-to-send) signal. SETDTR Sends the DTR (data-terminal-ready) signal. SETRTS Sends the RTS (request-to-send) signal. SETXOFF Causes transmission to act as if an XOFF character has been received. SETXON Causes transmission to act as if an XON character has been received. SETBREAK Suspends character transmission and places the transmission line in a break state until the ClearCommBreak function is called. CLRBREAK Restores character transmission and places the transmission line in a nonbreak state. К сожалению, нмчего похожего на SEND_ENCAPSULATED_COMMAND и GET_ENCAPSULATED_RESPONSE тут нет.
  23. WDTimer

    По одному символу, как правило, принять решение не удается. Приходится прочесть слово целиком, чтобы понять, что оно означает. И вообще, символ конца строки (Enter) это не просто символ, а символ ПОДТВЕРЖДЕНИЯ того, что бы сказано. До его появления программа не имеет права начать выполнение команды, даже если смысл ее вполне понятен. Например, компьютеру нельзя выполнять "FORMAT C:" :), пока не нажат Enter. А вы вознамерились по одному символу принимать решение. Компьютеру все равно, как было передано - отдельными символами или строкой, поскольку на физическом уровне в обоих случаях прием и передача ведутся по символьно. Точно так же и AVRка получает прерывания (если их разрешить) при поступлении очередного байта, не зная того, gets'ом или getchar'ом отправлялась посылка.
  24. Кто знает, отчего берутся USB-запросы (CDC Class Requests): SEND_ENCAPSULATED_COMMAND GET_ENCAPSULATED_RESPONSE ? Обычно их не обрабатывают, но любопытно, для чего они нужны. Короче говоря, мой вопрос формулируется так: "Какую команду из Windows-API должно подать приложение, чтобы моя AVRка получила один из этих реквайстов?" И в частности, если у меня на USB организован виртуальный COM-порт. Как вызвать все остальные реквайсты я знаю, остались непонятными только эти. В книгах и исходниках эти два реквайста всегда упоминаются, однако ни слова не нашла про то, в связи с каким событием такие запросы посылаются. Драйвер, конечно, может послать любой реквайст, но остается неясным, как побудить драйвер к этому (я использую стандартный драйвер виртуального порта usbser.sys, встроенный в Windows).
  25. WDTimer

    Совсем запугали бедного Кулика :). Делать так, как он вознамерился - можно! Только никакая gets() тут не нужна, хватай символ из UDR1 - вот и вся процедура получения байта. Обычно, байтики, схваченные в прерывании кладут друг за дружкой в строку до тех пор, пока очередным байтом не окажется "конец строки" (Enter). Этот символ можно в строку не класть, а вместо этого заняться ее анализом и исполнением того, что эта строка означает.
×
×
  • Создать...