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

Вопросы от начинающих по МК


Рекомендуемые сообщения

получится, но удобнее будет вместо первой схемы взять FT232RL

Изменено пользователем Viktor26

Не знаеш как? Спроси у Google'а !!!

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

  • Ответов
  • Создана
  • Последний ответ

Топ авторов темы

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Собственно, большинство USB-программаторов именно так и сделаны. Только первой схеме нужна будет совсем другая прошивка и совсем другая программа для программирования чипов. Получается какая-то каша из топора, не проще ли уж сразу собирать предназначенный для этого USB-программатор?

Не работают такие гибриды только потомоу что всё разбивается об особенности работы USB-шины. Она способна передавать большие объемы данных но имеет очень большую латентность, к примеру результат поданной команды вернется назад не раньше 1-2мс - а это значит чтобы программатор работал выводами надо дергать(как это делает JDM-программатор) не чаще 1 раза в 4мс - т.е. выставить экстремально низкую скорость программирования. Иначе программа подергает ножками сотню раз а результат работы обновится только один раз. Контроллер такого прикола не поймёт.

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

Поэтому я и говорю что в качестве программатора пойдет первая схема, но прошивку придется изменить. Как именно изменить - это совсем другой вопрос и тянет на месяцы исследований, верней даже на месяцы изобретения очередного велосипеда. Поэтому дешевле во всех смыслах КУПИТЬ ГОТОВЫЙ, даже если он будет стоить 1000 рублей.

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Доброго времени суток. Есть такой вопрос. Имеется микроконтроллер attiny26L. Нужно снять данные с регистра ADCH АЦП. Делаю это по прерыванию. Прописываю как в даташите

 ADC ; ADC Conversion Handler 

Но AtmelStudio естественно воспринимает эту команду как сложение с переполнением. Подсмотрел в подключаемом файле tn26def, там вот так:

; ***** INTERRUPT VECTORS ************************************************
.equ INT0addr = 0x0001 ; External Interrupt 0
.equ PCI0addr = 0x0002 ; External Interrupt Request 0
.equ OC1Aaddr = 0x0003 ; Timer/Counter1 Compare Match 1A
.equ OC1Baddr = 0x0004 ; Timer/Counter1 Compare Match 1B
.equ OVF1addr = 0x0005 ; Timer/Counter1 Overflow
.equ OVF0addr = 0x0006 ; Timer/Counter0 Overflow
.equ USI_STARTaddr = 0x0007 ; USI Start
.equ USI_OVFaddr = 0x0008 ; USI Overflow
.equ ERDYaddr = 0x0009 ; EEPROM Ready
.equ ACIaddr = 0x000a ; Analog Comparator
.equ ADCCaddr = 0x000b ; ADC Conversion Complete

Как настроить прерывание по завершению преобразования?

Хочу сделать вольтметр. Пока пытаюсь просто вывести данные в порт. Пытался вывести в цикле без прерывания, каждый раз читая ADCH в РОН, но ничего не получалось. Сделал чтение ADCH в прерывании, но тоже ничего не выходит. Подскажите пожалуйста, может имеется ошибка. Вот текст программы:

.include "tn26def.inc"
.device ATtiny26

.dseg
.cseg
.org 0

rjmp RESET ; Reset handler
rjmp EXT_INT0 ; IRQ0 handler
rjmp PIN_CHANGE ; Pin change handler
rjmp TIM1_CMP1A ; Timer1 compare match 1A
rjmp TIM1_CMP1B ; Timer1 compare match 1B
rjmp TIM1_OVF ; Timer1 overflow handler
rjmp TIM0_OVF ; Timer0 overflow handler
rjmp USI_STRT ; USI Start handler
rjmp USI_OVF ; USI Overflow handler
rjmp EE_RDY ; EEPROM Ready handler
rjmp ANA_COMP ; Analog Comparator handler
rjmp ADCC ; ADC Conversion Handler

//RESET: nop reti
EXT_INT0: nop reti
PIN_CHANGE: nop reti
TIM1_CMP1A: nop reti
TIM1_CMP1B: nop reti
TIM1_OVF: nop reti
TIM0_OVF: nop reti
USI_STRT: nop reti
USI_OVF: nop reti
EE_RDY: nop reti
ANA_COMP: nop reti
//ADCC: nop reti

RESET:
ldi r16, RAMEND ; Main program start
out SP, r16

sei // разрешение прерываний

ldi r16, 0b11111111
out ddrA, r16 //настройка порта A на вывод
ldi r16, 0b00000000
out ddrB, r16

ldi r16, 0b10101110 //настройка режима работы АЦП (последние три бита задают коэффициент деления /64)
out ADCSR, r16

ldi r16, 0b00101001 //настройка режима работы АЦП
out ADMUX, R16

main:
out portA, r18
rjmp main

ADCC:
in r17, ADCL
in r18, ADCH
reti

Ссылка на комментарий
Поделиться на другие сайты

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Прерывания настроены правильно. Непонятно, что вы хотите преобразовывать, если порт А настроен на вывод?

Никогда не спорьте с дураком - люди могут не заметить между вами разницы

Ссылка на комментарий
Поделиться на другие сайты

Литиевые аккумуляторы EVE Energy и решения для управления перезаряжаемыми источниками тока (материалы вебинара)

Опубликованы материалы вебинара Компэл, посвященного литиевым аккумуляторам EVE Energy и решениям для управления перезаряжаемыми источниками тока.

На вебинаре мы представили информацию не только по линейкам аккумуляторной продукции EVE, но и по решениям для управления ею, что поможет рассмотреть эти ХИТ в качестве дополнительной альтернативы для уже выпускающихся изделий. Также рассмотрели нюансы работы с производителем и сервисы, предоставляемые Компэл по данной продукции. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

1. приведите код к читаемому виду

2. уберите магические константы: настройки переферии надо задавать как логическое сложение отдельных битов

Например,

.def temp=r16
...
ldi temp, (1<<ADEN | 1<<ADFR | 1<<ADIE | 0b110<<ADPS)
out ADCSR,temp

3. Разрешать прерывания надо в последнюю очередь, чтобы не влезли внутрь инициализации. Перенесите sei перед самым бесконечным циклом main. Некоторые еще в начале программы ставят cli

4. Настроили вы все правильно, вот только запустить АЦП забыли. Надо после out ADMUX,R16 добавить sbi ADCSR,ADSC.

Григорий Т., ADC настроено на 9 канал (MUX=0b1001), а он расположен на PB6.

Изменено пользователем COKPOWEHEU

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

запустить АЦП забыли.

Зачем его запускать, если он настроен на непрерывное преобразование?

ADC настроено на 9 канал (MUX=0b1001), а он расположен на PB6.

Да, это я просчитался.

Изменено пользователем Григорий Т.

Никогда не спорьте с дураком - люди могут не заметить между вами разницы

Ссылка на комментарий
Поделиться на другие сайты

Настроен, но не запущен. Цитата из Евстифеева (искать по-английски в родном даташите лень)

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

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

Спасибо. Вот это очень помогло

sbi ADCSR, ADSC

Разрешите еще один вопрос? Имена векторов прерываний из даташита отличаются от имен в подключаемом файле, или я что-то неправильно понял?

Изменено пользователем Imotor
Ссылка на комментарий
Поделиться на другие сайты

в асме имена векторов вы сами придумываете, как вам удобно читать.

а адреса этих векторов строго по даташиту

Не знаеш как? Спроси у Google'а !!!

Ссылка на комментарий
Поделиться на другие сайты

В файле заданы константы. Если вы жестко забиваете всю таблицу векторов они вобщем-то ни к чему.

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

Получится что-то вроде

.org ADCCaddr
rjmp ADCC

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

inttable ADCCaddr, ADCC

.macro inttable
.ORG @0
rjmp @1
.endmacro

Только надо тщательно следить за тем чтобы первый параметр был числом(можно вставить в макрос доп.проверку на диапазон адресов для первого параметра и чтобы компиляция останавливалась при явной ошибке(адрес больше 64 например)) можно еще сделать условную компиляцию, в зависимости от размера памяти контролера могут использоваться разные команды перехода на вектор(короткий или длинный переход).

.macro inttable
.If @0 >= 0x3F
.error "Interrupt vector is invalid"
.endif
.ORG @0
rjmp @1
.endmacro

Да, и при таком подходе у вас может возикнуть соблазн разместить вектора не в том порядке каком они следуют аппаратно а поскольку используется директива .org то если последний вектор описанный в файле будет иметь не самый большой адрес то последующий код наложится на ранее определенный вектор и компилятор будет ругаться непонятными словами. тут нужна либо бдительность либо в конце описания векторов расположить еще одну .org указывающую за пределы таблицы векторов и тогда наложение кода не произойдет гарантированно.

Изменено пользователем Alexeyslav

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

Извиняюсь за тупые вопросы,у меня такая проблемма, решил научиться программировать микроконтроллеры, купил Atmega8, и дешёвый USB прогромматор у китайцев (http://www.ebay.com/itm/201035834899)а мозгов не купил)))

так вот, собственно в чём вопрос, что бы прошить контроллер нужно дополнительно к ниму ставить кварц? если да то какой?

Ссылка на комментарий
Поделиться на другие сайты

Мозгов наберете, если будете стремиться. По умолчанию резонатор в микросхемах Atmel не нужен. В конфигурации тактовой установлена внутренняя RC цепь. Но чтобы уточнить конкретно по модели микросхемы, откройте полный даташит на нее (обычно помечается у Атмела как Complate), перейдите на страницу System Clock and Clock options и гляньте default source

Ссылка на комментарий
Поделиться на другие сайты

Мега поставляется настроенной на работу от внутреннего генератора частотой 1МГц. Так что прошить можно и не имея кварца. Если конечно с фьюзами не накуролесить.

Ссылка на комментарий
Поделиться на другие сайты

Человек, вообще то, спрашивает про другое:

что бы прошить контроллер нужно дополнительно к ниму ставить кварц?

Причём тут генератор по-умолчанию и работа от него ? Речь не про работу МК, а про прошивку.

Ссылка на комментарий
Поделиться на другие сайты

Тут отвечают про работу МК (т.б. запуска программы от внутреннего генератора), а человек спросил про процесс программирования.

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

Так что ответ :

Так что прошить можно и не имея кварца.
Совершенно нелогичный.

Или если мы сконфигурируем МК на работу от внешнего резонатора, то без него уже не прошить МК ?

Ссылка на комментарий
Поделиться на другие сайты

ТИли если мы сконфигурируем МК на работу от внешнего резонатора, то без него уже не прошить МК ?

Не прошьем. Если не тактировать программатором.

Как будет "ядро" обрабатывать данные, пришедшие во время программирования, если он не тактируется из вне или внутренним источником тактовой?

Изменено пользователем mixan23
Ссылка на комментарий
Поделиться на другие сайты

Так что ответ совершенно нелогичный.

Что тут нелогичного? Человек купил МК. Значит он новый и по умолчанию работает от внутреннего генератора. О чем я, кстати, упомянул. Нужен кварц для того чтобы его прошить? Нет. Сконфигурировать же МК можно по всякому, но для этого хотя бы один раз нужно его прошить.

Ссылка на комментарий
Поделиться на другие сайты

Что тут нелогичного? Человек купил МК. Значит он новый и по умолчанию работает от внутреннего генератора.

Какая разница, новый он, не новый, купил он его, или нашёл в ящике ... ? Вы начала говорить о тактовой частоте ядра (о режиме работы МК), и что она идёт по-умолчанию - от внутреннего генератора. И причём тут режим программирования, совершенно не было понятно.

Не прошьем. Если не тактировать программатором.

Всё больше и больше удивляюсь архитекурой Атмелов :crazy: И всё больше и больше от них начинает тошнить...

Как можно додуматься до того, чтобы сделать зависимыми 2 процесса (работа ядра и прошивка flash-памяти) друг от друга ?

PS: Теперь всё становится ясно. Просто так и нужно было человеку объяснять, что режим программирования зависит от установленного тактового генератора. А так как он по-умолчанию - внутренний, то 1 раз получиться прошить без внешнего (если потом не перенастроить). Мне вот, например, как человеку далёкому от АВР-ов, были совершенно не понятны и нелогичны ответы.

Ссылка на комментарий
Поделиться на другие сайты

Скажите пожалуйста,если порт микроконтроллера настроен на выход DDRC=255; можно ли его состояние проверять x=PINC?

Можете проверить, без проблем. Получите то, что у вас записано на PORTC.

Обьясняю на вашем примере. У вас DDRC = 255, т.е. порт работает на выход. Если не конфигурировали PORTC, то по умолчанию он в низком уровне, т.е. PORTC = 0. При считывании PORTC вы получите те же 0 из PORTC. Учтите то, что подавать внешний сигнал в этом режиме нельзя, так как будет КЗ (если у вас на выходе лог 0, а вы подаете туда же из вне лог. 1)

Ссылка на комментарий
Поделиться на другие сайты

Как можно додуматься до того, чтобы сделать зависимыми 2 процесса (работа ядра и прошивка flash-памяти) друг от друга ?

На самом деле не всё так плохо. Основным является способ параллельного программирования, который прошьёт ваш контроллер при любом раскладе. А ISP - это дополнительная удобная фишка.

Никогда не спорьте с дураком - люди могут не заметить между вами разницы

Ссылка на комментарий
Поделиться на другие сайты

А ISP - это дополнительная удобная фишка.
Ну у PIC'ов обычный последовательный интерфейс (ICSP), и никак режим программирования не связан с осциляторм. Даже если выставили режим внешнего осцилятора, МК всё равно будет шиться без него.
Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы публикуете как гость. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

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