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

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


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

Тут вопрос очень неоднозначный. Это могут быть неподходящие библиотеки, а сама программа и даже компилятор совершенно непричём - в библиотеке может быть указана условная компиляция, и для твоей версии компилятора просто нет условной ветки которая дала бы хоть какой-то код... в итоге имеем честно отработавший компилятор и НОЛЬ на выходе.

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

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

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

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

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

Приветствую всех.

Я, вроде как, давно не начинающий, но столкнулся с проблемой. Собирается устройство на ATXMEGA128A4U, была закуплена небольшая партия сих контроллеров, предполагалось программирование FLIP-ом, но комп в упор не видит контроллер по USB. Мне почти не удалось найти примеров такого программирования данного контроллера, но судя по официальным даташитам, там все стандартно.

Процедура инициации вшитого загрузчика такая: замыкаю джампером порт PC3 на землю (согласно avr1916.pdf), втыкаю USB шнурок от компа в устройство, по которому подается и питание. Джампер хоть сдергивай, хоть нет, устройство не обнаруживается.

Сигнальные линии проверены, питание есть. В чем могут быть причины? Нынче загрузчик шьется не во все контроллеры на заводе? Как убедится, что он там есть? Может, какие дополнительные индексы в номенклатуре? Не хочется программатор покупать.

По питанию контроллера 3,3В от импульсного стабилизатора на TPS563200 идут пилообразные пульсации с размахом 90 мВ, хотя вроде должно было быть не более 60. Но это ведь не причина незапуска контроллера!

USB.png

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

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

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

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

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

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

19 часов назад, armer сказал:

Процедура инициации вшитого загрузчика такая: замыкаю джампером порт PC3 на землю (согласно avr1916.pdf), втыкаю USB шнурок от компа в устройство, по которому подается и питание. Джампер хоть сдергивай, хоть нет, устройство не обнаруживается.

Reset нажимаете?

Попробуйте так. Замкните PC3 на землю, нажмите Reset. Отпустите Reset, удерживая PC3 на земле, отпустите PC3. ПК должен обнаружить новое устройство (потребуется драйвер из папок FLIP-а).

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

Hongfa для различных применений в Компэл. Большой выбор в наличии!

Компания HONGFA - это не только крупнейший в мире производитель электромеханических реле, но также производитель конденсаторов, вакуумных прерывателей, трансформаторов и низковольтного коммутационного оборудования. На складе КОМПЭЛ регулярно поддерживаются около 100 самых популярных позиций электромеханических реле. Реле Hongfa могут заместить многие изделия производства недоступных брендов. Подробнее>>

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

И так пробовал. Причем на 3-х разных компах: Win7 64, Win7 32 и WinXP. Итог один. Могу конечно допустить, что контроллер битый, и спаять еще один прототип, но нахожу упоминания в инете, что не все хмеги идут с загрузчиком. Увы, никакой конкретики. Да и сам атмел не упоминает о наличии загрузчика собственно в даташите на конкретную серию, будь то A4U, A3U и т.д. Значит DFU бутлоадер ни есть обязательная фича. Скачиваем его с сайта, шьем программатором, а потом пользуем. Но тогда не совсем понятно, на кого оно ориентировано? Если у меня есть программатор, то шить я и им могу, а если для конечного пользователя готовым изделием, то слишком много настроек и кнопочек во FLIP-е, и разбираться в них не сведущему в программировании МК человеку вряд ли захочется.

А впрочем, все равно программатор потом покупать, для написания своего загрузчика. Ведь для конечного пользователя будет удобнее вставить SD карту с новой прошивкой в устройство, а не скачивать для обновления прошивки лишние программы )

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

Тренды и лучшие решения для разработки зарядных станций в России

К 2029 году в России прогнозируется увеличение числа зарядных станций до 40 000. При этом отечественный рынок электротранспорта имеет климатические, потребительские и географические особенности. Для успешной разработки и построения инфраструктуры станций заряда в России идеальным вариантом является использование решений и электронных компонентов китайских производителей – лидеров индустрии электротранспорта и возобновляемой энергетики, которые уже представлены в КОМПЭЛ. Подробнее>>

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

Мк впринципе не рассчитан на рядового пользователя. Иначе как тогда семью кормить НЕрядовым пользователям?

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

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

Секреты депассивации литиевых батареек FANSO EVE Energy

Самыми лучшими параметрами по энергоемкости, сроку хранения, температурному диапазону и номинальному напряжению обладают батарейки литий-тионилхлоридной электрохимической системы. Но при длительном хранении происходит процесс пассивации. Разберем в чем плюсы и минусы, как можно ее избежать или уменьшить последствия и как проводить депассивацию батареек на примере продукции и рекомендаций компании FANSO EVE Energy. Подробнее>>

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

Всем доброй ночи . Подскажите пожалуйста как переделать вот эту строчку PORTB.1=~PORTB.1; из кодвижн в нормальную сишную для Студии, Я заменял  такой PORTB =~(1<<1); или PORTB =~(0<<1); , не работает .

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

А PORTB ^= (1<<1) не работает?

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

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

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

Век живи — век учись!

Разворот в ASM в CVAVR

Скрытый текст

; 0000 002A PORTB.1=~PORTB.1;
	SBIS 0x18,1
	RJMP _0x78
	CBI  0x18,1
	RJMP _0x79
_0x78:
	SBI  0x18,1
_0x79:
; 0000 002B 
; 0000 002C if (PORTB&(1<<1))
	SBIS 0x18,1
	RJMP _0x7A
; 0000 002D   {
; 0000 002E     PORTB &= ~(1<<1);
	CBI  0x18,1
; 0000 002F   }
; 0000 0030   else
	RJMP _0x7B
_0x7A:
; 0000 0031   {
; 0000 0032     PORTB |= (1<<1);
	SBI  0x18,1
; 0000 0033   }
_0x7B:
; 0000 0034 
; 0000 0035 PORTB ^= (1<<1);
	IN   R30,0x18
	LDI  R26,LOW(2)
	EOR  R30,R26
	OUT  0x18,R30

 

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

А в новых контроллерах вроде и такое срабатывает PINB |= (1<<1); Но это извращение и, по-хорошему, этим должен заниматься компилятор: для тех камней, которые поддерживают, делать инверсию бита порта через запись пина, а для остальных - через eor.

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

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

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

Вечер добрый. Возник вопрос по родному бутлоадеру на STM32. Пробую прошиться через юарт, но не их стандартной прогой, а своей. Застрял на записи во флеш. Порядок действий такой:

Инициализация

-> 0x7F <-0x79 (ACK) 

Очистка флэш

-> 0x43 0xBC <-0x79(ACK) -> 0xFF 0x00 <-0x79(ACK)

Команда на запись 

-> 0x31 0xCE <-0x79(ACK)

Адрес c XOR сумой 

-> 0x08 0x00 0x00 0x00 0x08 <-0x79(ACK)

Колличество байт для записи (1 байт) сама страница(128 байт), контрольная сума (1 байт)

-> 0x80 0x00 0x00 0x01... 0x83(XOR) а в ответ тишина, нету ни ACK ни NACK. В общем на этом этапе посылаю 130 байт 1+128+1. Контрольная сума учитывает первый байт, что не так не пойму. Такое ощущение что нужно ещё что то отослать, вот только что... Может кто в курсе выручайте, все выходные убил.

PS: разобрался, правда не до конца. Если хочешь записать 128 байт, нужно в превый байт писать 127, а потом передавать 128 байт данных и контрольную сумму. Правда теперь у меня возвращается NACK.

 

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

Приветствую всех.Вопрос такой.

Есть GPS модуль,он по уарт передает данные в формате $GPVTG,165.48,T,,M,0.03,N,0.06,K,A*37

И таких строк несколько.

Меня интересует пока только данная строчка,так как мне нужна скорость.Я нахожу в посылках $,то есть начало строки и остальные байты закидываю в массив пока не придет байт 13,то есть возврат каретки.И вот теперь мне интересно как мне в массиве искать эту самую скорость,пока только додумался считать запятые (44 в Dec),то есть скорость это данные которые расположены между 7 и 8 запятыми.Может кто подскажет более умный способ?

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

Посмотрите примеры в инете как ПАРСИТЬ. Там много примеров

http://chipenable.ru/index.php/programming-avr/item/192-

Вот один из примеров. Надеюсь ничего не нарушаю

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

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

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

В 04.12.2016 в 11:25, COKPOWEHEU сказал:

А в новых контроллерах вроде и такое срабатывает PINB |= (1<<1); Но это извращение и, по-хорошему, этим должен заниматься компилятор: для тех камней, которые поддерживают, делать инверсию бита порта через запись пина, а для остальных - через eor.

Нифига подобного! PORTB и PINB - это разне регистр и компилятор никогда не должен подменять один другим, даже если запись в PINB приводит к инверсии PORTB. Программист захочет - сам напишет, а компилятор реализует ровно то, что написано.

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

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

Компилятор обычно вправе оптимизировать программу, если результат остается прежним. Вас же не пугает использование sbi вместо in + ori + out, хотя в редких случаях поведение этих вариантов может отличаться.

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

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

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

7 часов назад, COKPOWEHEU сказал:

Компилятор обычно вправе оптимизировать программу

Не думаю, что компилятор вправе заменять обращение к одной переменной на обращение к другой, причем обе - volatile. Это будет не компилятор, а неиссякаемый источник грабель.

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

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

Самое правильное для такой ситуации - использовать слой абстракции. Например, процедура (скорее, макрос) toggle(port, pin), которая в зависимости от контроллера разворачивается либо в то либо в другое. Но это не та задача, чтобы с таким извращаться.

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

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

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

3 минуты назад, COKPOWEHEU сказал:

Самое правильное для такой ситуации - использовать слой абстракции.

Как вариант. Хотя в чем смысл - не ясно, если программист все равно должен помнить, 1 или 2 такта выполняется эта абстракция...

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

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

Абсолютно неверно. Если программисту нужно считать такты, он использует ассемблер, а тот своевольничать не умеет. Используя же ЯВУ, программист сознательно отказывается от полного контроля.

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

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

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

  • 2 недели спустя...

Всем привет! И уже с наступающим!

Купил я на али пяток атмега8 чтобы собирать вольтамперметры на них, к ним докупил программатор USBASP, платы пока не готовы еще и хочется попробовать какую нибудь простенькую прошивку сделать, ну чтобы попробовать прошить контроллер, макетка пластиковая есть, может кто подкинет прошивку с парой светодиодов. В общем простейшую прошивку под простейшее устройство ? В дебри программирования пока лезть рано, просто руки чешутся попробовать ))) Спасибо.

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

.include "m8def.inc"
.def temp = r16

rjmp RESET

RESET:
  ldi temp, low(RAMEND)
  out SPL,temp
  ldi temp, high(RAMEND)
  out SPH,temp
  ldi temp,(1<<0)
  out DDRB,temp
CYCLE:
  sbiw X,1
  sbci temp,0
    brne CYCLE
  in temp, PORTB
  sbrs temp,0
    sbi PORTB,0
  sbrc temp,0
    cbi PORTB,0
  ldi temp,0
  rjmp CYCLE

Простая мигалка с частотой 60 мГц (не МГц, разумеется), то есть периодом около 17 с. Светодиод на PB0, фузы по умолчанию. Писал из головы, так что могут быть опечатки.

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

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

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

Вроде же написал:

Цитата

Светодиод на PB0, фузы по умолчанию.

Но учиться программировать контроллеры по форуму - плохая идея. Лучше почитайте цикл статей DIHalt'а, возможно по книге с этого сайта. Лично я начинал с Ревича "Занимательная электроника", но по контроллерам там немного.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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