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

Пришелец

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

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

  • Посещение

Сообщения, опубликованные Пришелец


  1. Хотел делать новую тему - но видимо мой вопрос из той же оперы.

     

    устройство работает с DS1990A. Всё было нормально, отлаживается обычно на стенде там запаян один тестовый ключ.

     

    Сегодня на ключи реакции сначала не было причём не у одгого устройства а у нескольких. Если потрогать плюсовой контакт ключа пальцами, то он начинает считываться. Подключение конденсатора 1 нФ помогает - ключ считывается.

     

    Могу отметить, что сегодня видимо повышенная влажность и чуть более холодно.

     

    Подключение другого ключа не тестового - работает и без конденсатора. (морозил в морозилке - всё равно работает).

     

     

     

    Что может быть с тестовым ключом :blink: ???

     

     

    Подтяжка к +5 4,7К и последовательно 100 ом.

  2. TheMad :a14: Большое спасибо за помощь.

     

    Помогло следующее:

    всё что делал ранее по отдельности сделал всё вместе

    т.е.:

    1. взял землю для ЦАП и выходного делителя с микрофонной земли модуля.

    2. взял другое питание для ЦАП 5 вольт прямо со стабилизатора до ответвления на цифровые микросхемы.

    3. последовательный резистор выходного делителя напаял непосредственно на ногу ЦАПА.

     

     

    результат удволетворительный :biggrin:

  3. Тогда ищи паразитное детектирование ВЧ сигнала передатчика _где_нибудь_. Например, подключай осциллограф к выходу своего АЦП и смотри- есть ли там импульсы. Если есть- надо думать откуда они там. Если поможет разделение земель, то импульсы могут быть результатом просадки на минусовой дорожке питания (импульсный ток потребления передатчика около ампера, даже на коротких дорожках может быть приличный уровень помехи).

    Кстати, а где расположена антенна?

     

    разъём антенны на плате к нему подключается штырьковая антенна.

    Пробовал и выносную на достаточном растоянии ситуация та же.

     

     

    Да осцилографом видно на выходе ЦАПА приличные помехи соответствующие излучению передатчика.

    На земле и питании ЦАПА помех нет.

     

    Заметил что при касании выхода цапа иголкой - фон усиливается многократно, видимо наводка пролезает через излучение.

     

    Посоветуйте пожалуйста:

     

    нужно подключить выход ЦАПа DAC7512 к микрофонному входу GSM модуля Motorolla G20

    микрофонный вход имеет свою землю которую нельзя соединять с остальной землёй.

    если просто подключить через RC то проходит сильный шум от GSM.

     

    Спасибо всем кто ответит. :)

     

    или трансформатор звуковой или диф. усилитель на ОУ.

     

     

    были такие мысли но

    хочется обойтись без них и видимо это то же не поможет т.к. помеха формируется на выходе ЦАПА

  4. Попробуй сделай следующий эксперимент: отключи от источника сигнала более высокоомный резистор делителя (кстати, какие номиналы в итоге используются?) и повесь его на землю (не микрофонную). Если наводка пропадет полностью или значительно уменьшится- ищи паразитное детектирование на элементах источника сигнала. Если нет- придется думать о объединении микрофонной земли с землей АЦП... очень сложно дать "вслепую" точный совет, ибо борьба с наводками есть занятие творческое и универсальных мер практически не существует.

     

     

     

    Попробовал - наводок совсем неслышно. Номиналы сейчас 470 Ом и 22 КОм

     

    Пробовал питание ЦАПа брать с другого источника не от того от которого питается модуль.

    Землю ЦАПа соединял толстым проводом со входом земли - не помогает ничего.

  5. Когда-то доводилось сделать так: между микрофонной землей (она звонилась тестером с землей питания, но при ее соединении с - питания появлялась помеха от потребления передатчика) и микрофонным входом вешается резистор на килоом, и на микрофонный вход дается сигнал через резистор на несколько десятков килоом. Все работало замечательно.

     

     

     

    Помогло - но не полностью :(

    всё-равно остаётся фон. (Причём зависит от мощности излучения когда GSMсигнал хороший мощность излучается низкая - и фона нет)

     

    И ещё вопрос "Все работало замечательно." - качество звука было по громкости и по чистоте такое же как например у служб оператора. фона от передатчика совсем небыло слышно?

  6. Посоветуйте пожалуйста:

     

    нужно подключить выход ЦАПа DAC7512 к микрофонному входу GSM модуля Motorolla G20

    микрофонный вход имеет свою землю которую нельзя соединять с остальной землёй.

    если просто подключить через RC то проходит сильный шум от GSM.

     

    Спасибо всем кто ответит :)

  7. Посоветуйте пожалуйста:

     

    нужно подключить выход ЦАПа DAC7512 к микрофонному входу GSM модуля Motorolla G20

    микрофонный вход имеет свою землю которую нельзя соединять с остальной землёй.

    если просто подключить через RC то проходит сильный шум от GSM.

     

    Спасибо всем кто ответит. :)

  8. Большое спасибо!

     

     

    с примером всё понятно - очень удобно (у нас одна проблема - программа имеет больший размер чер половина флэша)

     

     

     

    а насчёт загрузчика если он линкуется не с нуля то как на него осущ переход при вкл питания

    или он изменяет на себя вектор сброса после загрузки приложения?

     

     

    В АВР есть fuses для изменения адреса старта (перехода на загрузчик)

    а в арме по-моему нет (или я не в курсе)

  9. Пусть bootloader

     

    тогда вопрос: он компилируется отдельной программой или является частью приложения?

    может есть ссылочка на пример загрузчика из внешнего датафлэша

     

     

     

    всё-равно заманчивой остаётся идея биоса - инкапсуляция ф-ций железа, обспечение разделения программы на аппаратнозависимую часть и аппаратнонезависимую

  10. В основном для того чтобы обеспечить дистанционную загрузку приложения.

    Во флэш должен всегда оставаться гарантированно рабочий загрузчик (т.е. он не должен перезаписываться).

    Размер программы превышает размер половины флэша.

  11. Добрый день! Всем.

     

    Хочу попросить совета у профессионалов.

     

    Задача такая:

    построить программу для АРМ (среда разработки ИАР), чтобы она состояла из двух частей:

    1 часть BIOS - постоянно находится во FLASH

    2 часть APPLICATION - загружается BIOSом во FLASH и запускается им же и при этом для взаимодействия с железом использует ф-ции BIOS

     

    У меня пока на уме такое решение: BIOS компилируется как обычная программа но расположенная в верхних адресах памяти и использующая верхние адреса RAM.

     

    Приложение компилируется с обычным расположением сегментов ограниченных сверху размером под BIOS и загружается BIOSом в нижние адреса (как обычно) после загрузки (или во время загрузки) первая инструкция подменяется на команду перехода на BIOS.

    Взаимодействие приложения с биосом через прерывание софтовое.

     

     

     

    Или может есть другой способ (правильный :unsure: ) ?

     

    Заранее спасибо за советы.

     

     

    Приложение включает в себя FreeRTOS. Или может лучше отнести её к BIOS ?

  12. Спасибо. За столь развернутые ответы. :a14:

     

    Т.е. как я понял в принципе можно использовать для хранения некоего исполняемого кода.

    Стоит ли проверять его на правильность???

    В котором содержатся так же некоторые настройки которые могут находиться в произвольном месте и иногда изменяться.

    Т.е. в одной странице может находиться и код и эти настройки. Настораживает только одно - пропадание питания во время записи или стирания страницы. Тогда и код будет попорчен.

     

    Наверное всё-таки лучше их разделять по разным страницам.

     

     

    И рефреш тогда уж наверное лучше не делать?? Ограничить ресурс перезаписей настроек 10000 (и хватит)

     

    а то во время рефреша пропадание питания если

  13. Кто-нибудь подскажет максимальное количество циклов перепрограммирования этой микросхемы.

    В интернете нашёл 50тыс (но источник информации непроверенный)

     

    так же интересует вообще надёжность хранения информации ;) (из практики может кто поделится).

     

     

     

    и напоследок непонятно зачем так реализована аппаратная защита от записи - только первые 256 страниц

    мне кажется логичнее защищать весь массив

     

     

     

    Заранее всем ответившим спасибо :)

  14. Спасибо Petka!!!

     

    Ты побудил меня прочитать ещё раз инструкцию на avreal

    там можно задавать lpt порт не только номером но и адресом

    поставил адрес и всё пошло!!!

     

    пришлось добавить ещё правда задержечки -3

     

    и усё РАБОТАЕТ

     

    теберь буду под XP (а то начальник хотел уже новый комп покупать :) )

  15. Поставил WinXP на комп на котором до этого был WinME

     

    встроенный LPT давно сдох

    использовалась плата PCI на ней LPT и два COMа

     

    программировал AVR досовским AVREAL-ом

     

    сейчас поставил DLPortIO и хотел использовать avreal32

     

    но он не может управлять этим LPT портом :unsure: , наверное из-за того что у него нестандартные адреса 0xD200 и

    0xD300 и эти адреса никак похоже не изменяются не перемычками ни в настройках устройства

     

    Может кто сталкивался с такой проблемой. ?

  16. Всем большое спасибо!!!

    Ура !!! всё понятно!!!

     

    дело было вот в чём:

     

    проект состоит из файлов на C и на ассемблере, я как-то давно повелось, не задумываясь в ассемблерных файлах данные определял в сегмент NEAR_I. Отсюда у меня и получались разные размеры сегментов NEAR_I и NEAR_ID - терялось их соответствие данные копировались из flash в ram со сдвигом.

     

    Поменял сегменты для данных в ассемблерных файлах на NEAR_Z и всё заработало!!!

     

    РАЗМРЫ СЕГМЕНТОВ NEAR_I и NEAR_ID ДОЛЖНЫ БЫТЬ РАВНЫ ! ! !

     

    :biggrin::biggrin::biggrin::biggrin::biggrin::biggrin::biggrin::biggrin::biggrin::biggrin::biggrin:

  17. создал новый проект :( :( :( :( :( :( :( :( :( :( :( :(

     

    не помогло.

     

    __x_z void __flashcpy(DstPtr_Type dst, SrcPtr_Type src, Counter_Type size)
    {
      do {
        *dst++ = *src++;
      } while(--size != 0);
    }

     

    эта ф-ция в файле segment_init.c

    она неправильно работает - если поменять *dst++ = *src++; на *dst++ = 1;

    то все статические переменные инициализируются единицами

    т.е. видимо src не на нужную область указывает

    в файле кода смотрел структуры SegmentInitBlock (их всего две для near_i и near_z)сформированы правильно с нужными адресами

    инициализаторов.

    т.е. всё вроде правильно написано и должно работать - но не работает.

     

    только размер сегментов Near_i и near_id не совпадает первый больше

    и цикл копирования из flash в RAM выполняется по длине near_i

    __________но это наверное не страшно :blink:

  18. подключил оба файла

    avr\src\lib\low_level_init.c

    avr\src\lib\segment_init.c

    хоть ф-ции эти и не переопределяются. используются по умолчанию

     

     

    попробовал иаровским debugerom значение переменной не присваивается но вместо ff начальное значение = 0

     

    В near_id я имел в виду записывается значение инициализатора.

     

    поставил галки как Вы сказали - то же самое :(

    ______________

     

    что дальше делать? самому писать segment_init :) ???

  19. Во вкладке CODE пробовал все комбинации - не помогает

    Напишите пожалуйста как стоят галки в след опциях у кого всё работает:

     

    Place string literals and constants in initialized RAM ?

    Place aggregate initializers in flash memory ?

    Force generation of all global and static variables ?

     

    avr\src\lib\low_level_init.c попробую сегодня включить

     

    переменные вроде попадают в нужные сегменты Near_i и Near_id

     

    отладчиком не пользуюсь - прямо на железке.

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