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

Petka

Свой
  • Постов

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

  • Посещение

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


  1. Вот посиба. :yeah:

    Я думаю можно выложить сдесь если нет никаких ограничений типа copyrigth и прочего.

    ....

    Ок, выкладываю сюда. БОльшая часть периферии работает. Но всё проверить не было времени. Будут вопросы - обязательно пишите сюда.

    CMSIS_for_lpc23xx_by_Petka.zip

  2. ..

    Уважаемые знатоки вопрос!!!! Есть ли где либо, в свободном доступе начатая работа по написанию CMSIS-а для старых lpc-шных контроллеров ну или ещё для каких либо?????

     

    То есть, от чего можно оттолкнуться и начать писать это дело!

    Могу поделиться. Куда выложить?

  3. Странно, что никто не упомянул шифрование по ГОСТ 28147-89

    Алгоритм разработан с учётом минимальных требований к ресурсам. Криптостойкость на уровне 3DES. На данный момент при использовании проверенных таблиц перестановок уязвимостей в алгоритме не найдено. Где-то ранее в этом форуме я приводил сравнение по размеру требуемой flash памяти в avr алгоритмов ГОСТ и XTEA. ГОСТ требовал меньше flash памяти.

  4. ...

    единственное что фьюзы не прошивал для меги48 никакие. все дефолтное.

    .....

    Надо запрограммировать фузы. Иначе Мега будет тактироваться от внетреннего RC и UART не будет работать как надо.

    Для m48 консольный режим отключен. Проверяйте сразу программой программатором. AVRDude, например.

  5. при -Os всё норм,

     

    это только в -О3 постоянно творится и в -О2 нередко помню было, но тогда ещё не предавал значения.

     

    Но всё бы ничего, но фильтры не успевают в режиме реального времени на -Оs, на -О2 только если с бубном поплясать а на -О3 вообще всё отлично, можно алгоритмы не подвергать даже рефакторингу по скорости, тем самым сохраняя читаемость и понятность.

    Надо понимать какие оптимизации входят в соответствующие "O"

    0) O0 - без оптимизаций. Имеет смысл только для упрощения отладки (более очевидным образом в отладчике происходит переход от одной строчки кода к другой).

    1) O1 - оптимизации, которые не сказываются ни на увеличении времени компиляции, ни на размере получаемого бинарного кода.

    2) O2 - оптимизации, которые приводят к увеличению времени компиляции, но не на размере получаемого бинарного кода.

    3) O3 - оптимизации, которые вдобавок приводят к увеличению размера получаемого кода.

    4) Os - оптимизация по размеру кода.

     

    P.S. Если какую-нибудь оптимизацию из O2 разработчики компилятора ускорят (уменьшат время компиляции с данной оптимизацией), то это оптимизацию перенесут в O1.

  6. ...

    Поглядел мап файл - оказалось что почему то на уровне оптимизации -О3 оптимизатор ряд вызовов функций делает как инлайновые особенно когда внутри одной функции вызывается десяток раз другая подфункция, он этот вызов разворачивает как inline и функция уже занимает не 100 инструкций а 2000...3000, внутри того файла в который вношу правки.

    А какие результаты будут с "-Os"?

  7. Здравствуйте. Хочу повторить данный программатор. Но слегка изменить печатку - под более крупные компоненты и ещё кое-что. Есть вопросы:

    1. Хочу выход "1 MHz" вывести на общий разъём X7, но так, чтобы он оказался в конце гребёнки. Вопрос: представляет ли какую-нибудь сложность перенести его на ногу 32 (PD2)? Так будет проще развести. Т.к. в МК я новичок, то планирую сначала запустить схему с обычной прошивкой, а уже потом разбираться в исходниках. Пока интересно, есть ли какие-то сложности в таком переносе.

    Этот вывод можно перенести на любой другой GPIO.

    2. Годятся ли в качестве L1 катушки на колечках, которые часто встречаются на материнках (несколько витков толстой проволоки на небольшом кольце)? К сожалению, я не знаю, какая у них индуктивность и как её оценить.

    Годятся. Номинал индуктивности не критичен.

    3. Можно ли в качестве блокировочных использовать керамические конденсаторы на 1 мкФ (вместо 0.1 мкФ)? Просто надёргал со старой Нокии...

    Можно. Работать будет.

  8. ...

    И вообще спасибо атмелу за 8-ми битный 32МHz проц с 3.3VCC! и для меня очень даже вовремя вышел.

    Не хочу вас расстраивать, но видимо придётся.

    Дело в том, что на момент разработки этого проца Атмел имела фабрики с технологией, позволяющей делать Flash память с временем доступа соответствующим 32 MHz. Другие производители имели технологии соответствующие 20-25 MHz. Однако раз в год Амтел продавала по одной из имеющихся 5 фабрик.... Прошло 4 года... Осталась одна фабрика и Атмелу пришлось заказывать чипы для себя на фабриках с другим техпроцессом и появились чипы с "улучшенными" характеристиками (посмотрите форум ARM, тему "ревизия 'C'"). В этом году наступает следующий год и пришло время продавать оставшуюся одну фабрику. Атмел уверяет что не продаст её. Но кто теперь уже верит? XMega - вообще странный продукт. 8 бит по цене 32х? Памяти в разы меньше, производительность ниже, периферия - тоже не блещет, даже энергопотребление не лидирующее.

    Как по мне у Атмела настала агония. Куда-то мечутся и всё без толку. AVR32 + MMU схватились, но не потянули. AVR32 без MMU? А смысл при наличии в своём же портфолио ARM7TDMI, CortexM3? Студию то на базе самописной IDE, то на базе эклипса, то на базе вижуалки мечутся делать. Про метания между микроконтроллерами и тачскринами вообще молчу. Кстати, есть сведения, что они архитектуру CortexM0 не собираются даже в далёком будущем рассматривать.

    P.S. Сорри, накипело.

  9. 1. Ясно, но решение очень странное, почему не использовать внешнюю опору от 5В?

    2. А причем здесь входное сопротивление 55Мегаом!? вы наверное не знаете как устроено ацп у атмеги, вам фраза из даташита на М88 The ADC is optimized for analog signals with an output impedance of approximately 10 kΩ or less. ничего не говорит? остальные атмеги устроенны аналогично.

    3. Чтобы ничего не тянуло вниз, используйте опору от 5ти вольт и измеряйте просто через резистор без делителя.

    в вашем варианте с делителем 220к и 100к работать адекватно не будет никогда.

    1. Есть несколько допустимых решений. Это одно из них. Хотите - поправьте схему, топологию, прошивку. Выложите сюда и помогите новичкам с их вопросами. Вам скажут спасибо.

    2. Фраза про оптимизацию мне прекрасно понятна. К случаю измерения постоянного уровня напряжения одним каналом АЦП эта фраза не имеет никакого отношения. Без переключения каналов АЦП схема выборки/хранения будет работать нормально.

    3. Эти резисторы выполняют ещё и дополнительный функционал - подтягивают линию RESET со стороны программатора к земле и ограничивают ток через защитные диоды порта при подключении проргамматора к запитанному устройству и отсутствии подключения программатора к USB порту. Подтяжка к земле позволяет определять отсутствие подключения кабеля программатора к программируемому устройству. Таким образом подтяжка к земле вместе с токоограничивающим резистором образует делитель. Номинал верхнего плеча можно обсуждать, но он должен быть значительно больше типичной подтяжки RESET к питанию. Номинал 100кОм подходит под все эти требования.

     

  10. Давайте разберемся, у вас стоит делитель из 220к и 100к так? при входном напряжении в идеале 5В на выходе делителя будет 1.5625В так? и тогда вопрос как у вас ацп может намерять больше двух вольт?

    2 Вольта это ДО делителя. Делитель нужен что бы вписать 5 вольт в диапазон измерения АЦП (2,56В для Меги8 и 1,2 для Меги88).

    кроме того ацп атмеги не будет адекватно работать с такими номиналами резисторов, почитайте даташит, не больше 10к, да и вообще зачем там нужен делитель, почему нельзя просто измерять напряжение на нужной вам ножке без делителя просто через резистор например 10к?

    1. См. выше

    2. Откуда вы взяли значение 10к? В даташите ничего подобного нет. И взяться неоткуда т.к. входное сопротивление АЦП минимум 55 МегаОм!

     

    ...

    Может и правда попробовать делитель 2кОм и 1кОм, вместо 220кОм и 100кОм?(хотя сомнительно, что дело в делителе)

    Номиналы делителей менять не надо. Если уменьшите номиналы, получится цепочка, которая будет тянуть вниз RESET номиналом 3кОм.

  11. Нет дома нет осциллографа, все в мечтах хоть китайский надо купить....

    Ведет себя как высокочастотная помеха, питание от USB, только вот куда девается она когда он работает в штатном режиме(имеется в виду когда светодиод горит)

    Это не помеха, это программатор тестирует линию ресет.

  12. Программатор и шьет и читает, только светодиод не горит, можно бы конечно и забить но как же профессиональная гордость :rolleyes:

    резистор R6 220Ом, падение не могу посмотреть ибо когда светодиод не горит напряжение скачет (меняется 4.5-4.8), если светодиод загорается , по каким то неведомым причинам то стабильно 4.8.

    Есть ли возможность снять осцилограммы в цепи РЕСЕТа ?

  13. Я с этими чудесами до сих пор не могу разобраться, уже и не знаю, что может ...думал где то флюс не смыт, но уже купаю в ацетоне неделю и плату программатора и плату таргета, когда там намочу загорится светодиод, когда на программаторе тоже загорается, но в случайной последовательности. Питание стабильно 5.02, на RESET когда светодиод загорается то 4.8, а когда нет скачет от 4.5 до 4.8 (даже не скачет а хаотично меняется) на RST_ADC когда горит светодиод 1.41, когда не горит меняется 1.38-1.4. Пробовал резистор в параллель 220 Ком(200Ом) пробовал питание подавать на RST_ADC нет не хочет, когда вздумается тогда и загорается....а я в чудеса не верил :biggrin:

    Давайте разберёмся.

    Программатор сначала определяет напряжение на линии RESET. Если на ней больше 2В, то потом проверяет, работает ли этот вывод. Он начинает его тянуть вниз и замеряет уровень. Если высокий уровень более чем в три раза превышает уровень нуля, то значит ресет работает и программатор зажигает светодиод. Посмотрите падение напряжение на резисторе R6. И померьте мультиметром его номинал.

  14. Отвечаю по пунктам:

    1 - На моей схеме присутствует резистор R7. Предполагалось при этом, что при его использовании будет возможность программировать чипы, если схема не потребляет много энергии, то есть прямо питается от USB порта. В реальности этот резистор у меня не запаян

    2 - да, сопротивление резистора привязки ресета программируемого МК к питанию равно 10К, прпограммируемый чип исправен и шьется другими программаторами.

    Почему при подключении собранного программатора напряжение на данной линии падает я пока не разумею. В статике тестером меряются положенные 320К

    3 - Падения напряжений при измерении тестером:

    R9 88мВ

    R12 1В

    R13 460мВ

     

    У меня одно предположение - или дохлый порт в МК, что крайне редко может быть или же он как-то не так сконфигурирован

     

    После прочтения фразы о том, как диагностируется питание я запаял первый попавшийся резюк (4,7к) поверх 220К, тем самым принудительно подав в цепь диагностики большее напряжение я получил полностью рабочий девайс - программатор читает и шьет МК

    :wacko:

     

    Чудеса да и только. Получается или утечки в плате, хотя это крайне маловероятно или данный чип у меня имеет иной порог.

    Измерьте сопротивление порта PC3 микроконтроллера на землю. Чему оно равно? ПОТОМ промойте это место печатной платы от флюса. И измерьте ещё раз.

  15. стоит 14.7456 как и требуется, прошу пардону, не исправил. Так же на схеме присутствуеит разъем для возможности программирования от другого программатора. Но шил всегда его как и предполагалось - понипрогом.

    1. От чего питается программируемый контроллер?

    2. Разберитесь почему на 5м пине CON10 (reset) при подключении к программируемому устройству оказывается 1,5В ? Померьте сопротивление между ресетом программирумого контроллера и его питанием. Оно равно 10к?

    3. Для детектирования наличия прораммируемого контроллера программатор измеряет линию RESRT. Если обнаруживает более 2х вольт - зажигает светодиод. Подключите программатор к программируемому устройству и померьте падение напряжения на резисторах R9, R12, R13, R7.

  16. Видимо, медицина бессильна... Девайс не определяет тагрета (нет свечения диода). Иногда светодиод хаотично мигает, правда емкость на AREF присутствует. Жль пока не могу приложить картинки к сообщению.

    Выложите вашу схему и топологию. Желательно в pdf.

  17. Контроллер - ATMEGA8-16AU

    Пробовал со шлейфом 10 см - не спасает

    Прошил CKOPT - не помогло

    у меня пока триверсии - что-то с диагностикой питания по линии ADCRES, что-то к тактированием или же просто неудачный МК

    Попробуйте эту прошивку:

     

    P.S. Перед прошивкой не забудьте стереть чип.

    firmware_for_leomor.zip

  18. Извините что вмешиваюсь.

     

    Не длинноват ли шлейф? Обычно советуют 10-15 максимум.

    Желательно шлейф короче, но и при 30см при нормальной помеховой обстановке (на столе) должен нормально работать.

    Petka что скажите о фьюзах? Хоть стреляйте зенитными патронами советуют включать фьюз CKOPT...

    http://easyelectronics.ru/avr-uchebnyj-kur...a-fuse-bit.html

    Надо читать не форумы а datasheets на контроллеры.

    На мегу8 при кварце более 8МГц надо программировать фуз CKOPT (т.е. CKOPT='0')

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