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

VladimirYU

Свой
  • Постов

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

  • Посещение

Сообщения, опубликованные VladimirYU


  1. Столкнулся с такой проблемой, есть схема, на схеме есть много разных скажем так блоков, все они подключены к микропроцу, из этих блоков меня интересует только один. А теперь, уважаемые знатоки вопрос, как "заглушить" подключёные, но не интересуещие меня выводы? или это зависит от схемы?

     

    Конечно зависит, например, несколько различных функциональных узлов могут быть подключены к одним и тем же выводам МК, а выбор устройств выполняется сигналами CS (chip select). В постейших случаях может оказаться достаточно просто деактивировать выводы портов ( оставить в 3 состоянии, как после сброса) или если позволяет схемотехника, наоборот записмать в них 0 или 1. Это уже обсуждалось в данной теме.

  2. Все уже перепробовал. эффекта никакого. Запускается только, если питалово коротнуть...поставлю филипс и не буду жучить себе мозги :)

    Что Вы понимаете под "коротнуть питание". Если есть возможность поставте внешний супервизор для сброса DS1813 или что-нибудь подобное и отключите внутренний BОD, проверьте что у вас с "собакой". Проверьте фузы. Установите внешний кварц с конденсаторами, в фузах включите внешний осциллятор и CKOPT. Посмотрите генерацию "rail to rail". Чудес не бывает, эти МК используются тасячами. Вероятность, что Вы налетели на производственый брак, конечно, есть, но ваши МК даже разных моделей а поведение одинаковое. Упрстите для начала программу, чтобы убедиться в устойчивом функционировании самого МК. Промойте плату тщательно. Исходник Ваш почемуто не читаеся. Выложите еще раз.

  3. Поражают народные умельцы.... Не уймутся же. Еще бы на транзисторах инструментальник сделали если силы девать некуда.

     

    А может в сторону сигма-дельта АЦП посмотреть, например AD, там апнотов для измерения термопар предостаточно. Немного другой подход и ИУ не нужен вообще. 2% на AD7715 + ATmega16 получал без без проблем. Лепить на рассыпухе.... дайте нам эпоксидки и старых трусов, а текстолит мы и сами сделаем.

  4. Владимир_КПИ

     

    Еще одна рекомендация

     

    Port A has an alternate function as analog input for the ADC as shown in Table 22. If

    some Port A pins are configured as outputs, it is essential that these do not switch when

    a conversion is in progress. This might corrupt the result of the conversion.

     

    Стр 57.

  5. ну по rs232 точно не поднять такую скорость, потомучто максимальный baud rate 3 МБот/с

    Так вот и получается, что узкое место не внешний интерфейс VNC1L, а внутрення реализация обмена с USB учтройствами. Тогода получается, что использование FIFO серьезного выиграша не дает, зато занимает 12 ног контроллераю. Можно ли сделать такой вывод? А кстати, что можно сказать про SPI, кроме того что он внешне какой то кривой?

  6. мда, ща пробовал побайтово с проверкой CTS. c учетом дампа в кансоле отладочной информации получилос ~5 кБод/сек при сконфигурированных 3Мбод. надо искать другие подходы :( либо писать драйвер, чтоб работать в режиме ядра

     

    Вроде запустил VNC1L c FIFO, впечатления такие, одним словом ТОРМОЗ. Максимум, чо удается выжать примерно 130-150 кБ/сек. Одна команда так и не заработала CD ( change directory). Квитирование странное, иногда при записи в файл вдруг ни стого ни с сего возникает запрет на запись и требуется чтение (вычерпывание) буфера, только после этого можно продолжать запись иначе полный "висяк". Допускаю, что у меня тоже не все сделано гладко, но работает. МК ATmega128. Перехожу к написанию библиотеки под UART. У кого какие впечатления, очень интересно обсудить ньюансы и возможные грабли.

  7. А если она при низком напряжение будет в режиме power-save? Жить будет, восстанавливаться же должна нормально.

    ИМХО любое отклонение от DS сознательно заложенное в разработку мягко говоря не очень хороший тон. Полученный на одном экземпляре положительный результат не дает ни уверенности, ни "юридической" чистоты изделия.

     

    В документации ATMEL, по крайней мере на бумаге, фигурируют МК с буквой L (ATmega128L) у них питание от 2.7В. Правда не знаю есть ли они "живьем".

  8. Это значит описание переменной компилер не видит!

    Судя по всему вы используете IAR

    можно посмотреть в окне workspace зависимости файла main.c там есть файл uart.h?

    Покажите как включен UART.h какие скобки <> или "".

  9. А ещё можно вопрос? а что значит флаг уровня защиты -l2 в avreal32?

    -l[+]# -l# Установить уровень защиты # = 1 (LB2=1,LB1=0) или 2 (LB2=0,LB1=0)

    -l+# То же самое, только lock биты прошиваются до зашивки fuses

    (необходимо для включения BODEN и залочки 90s4433 в одном цикле

    подачи питания)

  10. Я в электронике не секу, но помоему на плате стоит кварц. Если честно, то я не вижу разницы между ними:)

    В Вашем случае это не так важно. Если CKOPT = 0 ( запрограммирован) имеете полный рамах сигнада (rail no rail) это необходимо для частот от 8 до 16 МГц, если CROPT = 1 (незапрограммирован) то при ваших CKSEL от 1 до 8 МГц.

  11. А почему только п.2?

    Я недавно специально мерял потребляемый ток в разных режимах, нужно было экономить. Для Меги 168V все три варианта давали одинаковый ток по питанию.

    Не занимался лично сравнением всех вариантов, но для МК вариант п.2 как то привычней. Но это ИМХО, поэтому не настаиваю.

  12. Насчет свободных портов есть варианты :

    1. Включить подтяжку внутри и никуда не подключать.

    2. Настроить на выход и не подключать.

    3. Вход без подтяжки на землю.

    В этих вариантах потребление тока портом минимальное.

    Если оставить висеть порт без подтяжки - он потребляет лишний ток в неустойчивом положении. А садить подтягивающий резистор на землю вообще незачем.

    Согласен с п2. дополнительно только программно записать туда 0. В AVR это наиболее приемлемый вариант.

  13. Всем доброго время суток!

     

    post-34758-1202217775_thumb.jpg

     

    1) Есть схемка, где указанно связь по USART'у, достаточно ли подключить только TXD и RXD, с разным питанием МК?

     

    2) Как обеспечить надежное питание МК, при питании от батареек когда они станут разряжаться?

    А расстояние? Если в пределах одного прибора (платы), то как предложил Dog Pawlowa, если больше, то не помешал бы RS232 трансивер на каждый контроллер.

  14. Скока слофф... Из всего этого я слышал про STK200 - это что-то типа Evaluation board, я правильно понял? А про остальное нельзя ли пояснить вкратце..

     

    Э-э-ээ... 8080, 8085, Z80, 1801ВМ1 aka PDP-11, 8051 довольно много, ADSP-21xx, с PIC'ами тоже немного познакомился.

     

    К сответу уважаемого Igor Kossak можно добавить, что имеет смысл посмотреть в сторону ATMEL.COM. Тем более опыт у Вас немалый, поэтому описания имеющихся средств разработки и отладки вам должны быть понятными. А на конкретные вопросы Вам на форуме ответят.

  15. ну и как же им пользоватся? при каких условиях он срабатывает? и ещё, что делать с неиспользованными выводами при инициализации?

    Как и любой таймер при переполнении. Поэтому программа должна постоянно сбрасывать его счетчик командой WDR. Если по какой-либо причине программа где-то "заблудилась" и этого не сделала, происходит сброс МК и полная переинициализации. Анализируя специальный регистр можно лпределить причину вызвавшую сброс. Но лучше все-таки почитать об этом самому в DS на конкретный МК.

    Как я уже отмечал, если говорить об AVR, то из личного опыта рекомендую сконфигурировать их на выход и записать туда 0.

  16. [2.3 Константы

    Целая константа, например 1234, имеет тип int. Константа типа long завершается буквой l или L, например 123456789L: слишком большое целое, которое невозможно представить как int, будет представлено как long. Беззнаковые константы заканчиваются буквой u или U, а окончание ul или UL говорит о том, что тип константы - unsigned long.

     

    Константы с плавающей точкой имеют десятичную точку (123.4), или экспоненциальную часть (1е-2), или же и то и другое. Если у них нет окончания, считается, что они принадлежат к типу double. Окончание f или F указывает на тип float, а l или L - на тип long double.

     

    Целое значение помимо десятичного может иметь восьмеричное или шестнадцатеричное представление. Если константа начинается с нуля, то она представлена в восьмеричном виде, если с 0x или с 0X, то - в шестнадцатеричном. Например, десятичное целое 31 можно записать как 037 или как 0X1F. Записи восьмеричной и шестнадцатеричной констант могут завершаться буквой L (для указания на тип long) и U (если нужно показать, что константа беззнаковая). Например, константа 0XFUL имеет значение 15 и тип unsigned long.

     

    K&R.

     

    Может проще так.

  17. а мне кто нибудь подскажет где почитать про fuse,lock биты и как с ними работать через avreal32?

     

    Про биты в даташитс на соответствующий контроллер, про avreal32 на сайте автора.

    http://www.ln.ua/~real/avreal/index.html

     

    А ещё вопрос можно? а зачем нужен watchdog таймер? а то как то размыто пишут

    Для реализации сброса контроллера в случае его зависания по какой-либо причине, например, бесконечный цикл. Это один из механизмов самовостановления работоспособности устройства, и поиска фатальных программных ошибок. Если кратко.

  18. Собственно, по самому первому вопросу - компилятор не обязательно запретит прерывания.

    Необходимо просмотреть листинг ассмеблера, сгенерированного компилятором и сделать необходимые коррекции в исходный текст.

     

    Я бы скзал обязательно не запретит прерывания. Компилятор не имеет права решать за программиста, ИМХО.

  19. Не удается связать МК ( ATmega128) и VNC1L в составе VDIP2 по FIFO. Джамперами выбрал тип интерфейса FIFO, подсоединил все линии FIFO D0...D7, RXF,TXE, RD, WR, завел внешний RESET от МК к VNC1L. Прописал все основные функции, и вот результат. Хочу прочитать STARTUP, но после инициализации VNC1L ( светодиодами поморгала) на линии RXF gjcnjzyyj постоянно 1, т.е. согласно даташиту читать нельзя, устройство не готово. Чего то я не понимаю, даташит перелопатил, но видимо уже глаз замылился. Буду рад любому конструктивному совету.

×
×
  • Создать...