Petka
-
Постов
1 438 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные Petka
-
-
Спосибо за внимание!Petka,всё скомпилировал под свой кварц и все выходы,кроме RESETADC .Я так и не понял как там обозначается порт и пин?Я не программист,поэтому беда.
RESETADC это номер канала АЦП. Назовите пин, к которому у вас подключена эта цепь и я помогу выбрать правильный номер канала АЦП.
-
Парни,помогите портировать на 16 мегу.Просто их есть.Пожалуйста!Очень понадобился программатор,однозначно хочу этот,есть с десяток 16.
Вот отправная точка: AvrUSB500_by_Petka_HEX_SRC_v8_uni_mega16.zip
Будут вопросы - спрашивайте.
-
Всем привет.
...
А вот как отличить вариант с "-mfpu=fpv4-sp-d16 -mfloat-abi=hard" и без?
гляньте на:
__ARM_PCS_VFP __ARM_PCS __SOFTFP__
-
А что такое ABD-Protocol ?
Пост про ABD-протокол: http://electronix.ru/forum/index.php?s=&am...st&p=678116
Демопроект: http://electronix.ru/forum/index.php?s=&am...st&p=681626
-
8N1, 9600, None?
8N1, 115200, None
-
...появилось желание и дошли руки попробовать ABD-Protocol. В прошивке 8 он поддерживается?
....
Он есть только в 7 версии прошивки. Работает хорошо. Если будет востребованность добавлю в "крайнюю" прошивку.
-
... На 88-й меге никак не хочет работать, вернее работает, на кок-то странно. Определяется, все ок, но при попытке что-либо вычитать/прошить начинает хаотично мигать светодиодом, и через несколько секунд отрубается. Вот на нем (который на 88-й меге) светодиод при включении мигает 6 раз после чего постоянно светится без подключения к таргету.
Проверьте закоротки/непропаи. Отмойте плату от флюса. Ещё раз перепрошейте программатор.
-
Да, программатор на меге 8
Что-то вы мутите. Если программатор на меге 8, то R9 должен иметь номинал 100кОм. Значение напряжения на AREF должно быть равно 2.56 В.
Так что за чип в программаторе? И каков номинал R9 на самом деле?
-
R9 - 47k, напряжения следующие:
AREF 1,1V
R8/R9 - без подключения устройства 0V, с подключенным таргетом 0,866V
С цепью RST_ADC тогда у вас всё в порядке.
Ещё при подключении к студии программатор определяется все Оk, НО ПРИ ПОПЫТКЕ ЧТО-ЛИБО ВЫЧИТАТЬ, ИЛИ прошить начинает хаотично моргать светодиодом и затем отрубается...Проверяйте питание программатора. Перекинута ли перемычка "программирования программатора" обратно? Повторите эксперимент с закороченной катушкой L1.
Petka, спасибо, что откликнулись. На 8 Меге все работает со свистом, а 88-я уперлась, и все тут...На меге 8 в программаторе?
-
Прошивка залита правильно, по крайней мере, то, что было в файле!
ANDREW, - твой лог по 8 меге, у меня - 88-я, читай внимательно!
Petka, [0m[2J[0;0f находится в прошивке начиная с адреса 0000АЕ, может там стоит кпоковыряться?
Замерьте мультиметром напряжения в цепи "RST_ADC" (между R8 и R9). При подключенном программируемом устройстве и при отсоединённом программаторе. Ещё замерьте напряжение на ноге AREF.
P.S. Какой номинал резистора R9 ?
-
....
Возможно, там вокруг что-то было, что поломало потмизацию, но всё равно непонятно.
Можно больший по размеру фрагмент кода, внутри которого этот цикл?
Наверняка там всё volatile.
-
Почему тогда на 6 прошивке светодиод не светится?
Что пишет программатор в терминальном режиме?
-
Простите если глупый вопрос.
Скачал с сайта ATMEL'а - ATMEL STUDIO 6 (IDE) и замечательно ей пользуюсь и пишу программы на C\C++...но я знаю что многие "пишут" в IAR'e.
Чем IAR лучше? можно в кратце.
Заранее спасибо)))
В разделе форума "GNU/OpenSource средства разработки для avr/arm/mips" IAR ничем не может быть лучше.
-
Петька собрал давно Ваш программатор с Вашей помощью, прошивал во сонвном Amega 8 TQFP без проблем, а Atmega 8 PDIP прошить вашим программатором не получается. В чем проблема объясните?
Для программатора эти чипы ничем не отличаются. Посмотрите на различия в подключении выводов программирования. Нет ли других внешних устройств на линиях программирования? Есть ли возможность проверить на другой меге в DIP корпусе?
-
Звучит правдоподобно, но вот отсутствие (или моя неспособность найти) этой информации в даташите меня угнетает. Если уж вставлять задержки, то надо знать, сколько. Шаманить-то не хочется.
.....
FIOPIN Fast Port Pin value register using FIOMASK. The current stateof digital port pins can be read from this register, regardless of
pin direction or alternate function selection (as long as pins are
not configured as an input to ADC). The value read is masked
by ANDing with inverted FIOMASK. Writing to this register
places corresponding values in all bits enabled by zeros in
FIOMASK.
Important: if an FIOPIN register is read, its bit(s) masked with
1 in the FIOMASK register will be read as 0 regardless of the
physical pin state.
Последние три слова подтверждают то, что при чтении этого регистра подразумевается именно считывание физического состояния цифрового порта. В независимости от того, настроен порт на вход или на выход.
Читаем дальше.
Writing to FIOSET/FIOCLR vs. FIOPINWriting to the FIOSET/FIOCLR registers allow a program to easily change a port’s output
pin(s) to both high and low levels at the same time. When FIOSET or FIOCLR are used,
only pin/bit(s) written with 1 will be changed, while those written as 0 will remain
unaffected.
Writing to the FIOPIN register enables instantaneous output of a desired value on the
parallel GPIO. Data written to the FIOPIN register will affect all pins configured as outputs
on that port: zeroes in the value will produce low level pin outputs and ones in the value
will produce high level pin outputs.
Запись в этот порт имеет смысл только для пинов настроенных на выход.
А теперь самое интересное:
Reading the FIOxSET register returns the value of this register, as determined byprevious writes to FIOxSET and FIOxCLR (or FIOxPIN as noted above). This value does
not reflect the effect of any outside world influence on the I/O pins.
Вот этот регистр уже отражает именно внутреннее состояние порта (состояние выходного драйвера) на вывод.
Таким образом ваш код должен был иметь вид:
FIOPIN = FIOSET ^ MY_MASK;
Таким образом не будет никакой "аналоговой" обратной связи по физическому уровню на пине порта.
P.S.
В начале работы с LPC сам столкнулся с такой фичей.
Это побудило просто внимательно перечитать документацию. После прочтения становится всё очевидно.
-
к сожалению не помогло
при соединении AREF с землей через конденсатор светодиод гаснет совсем
....
Он и должен гаснуть. Зажигается только при подключении программируемого контроллера.
-
в смысле к "AREF" (20 нога)?
Да.
-
прошил фьюзы, все ок, программатор видится в терминальном режиме
но при подключении программатора к USB светодиод, моргнув 6 раз, продолжает моргать, но уже с большей частотой
цепи питания проверил, все ок. мерцание светодиода прекращается после того как отключаю резисторы R6, R8 и R9
причем если впаять на место R6 и R8, то иногда мерцание прекращается и светодиод стабильно горит
если же к ним добавить еще и R9, то стабильного горения добиться невозможно
дело не в резисторах - их я заменял, ничего не меняется
при выпаянных резисторах R6, R8 и R9 мерцание вызывает прикосновение к РС2 (25 нога) пальцем, иголкой или изолированной проволочкой.
почему получается такое влияние резисторов на работы контроллера? я ведь еще не подключил программируемый контроллер
Припаяйте к выходу vref конденсатор на 0,1 мкф к земле.
-
atmega48pa вернуть к жизни пока не удалось, отложил его до лучших времен. сечас поставил atmega8-16au
прошил программу, теперь программатор постоянно мигает светодиодом, причем с разной частотой, сначала редко (раз в 2 сек) потом чаще (раз в 0,5 сек)
Проверьте питание меги.
Проверьте RESET меги (перемычка после программирования программатора была перекинута в основное положение?)
фьюзы еще не прошивалдля atmega8 фьюзы нужно установить lfuse:0xd7 hfuse:0xd9?
и должен ли так вести себя светодиод? ведь по программе он должен моргнуть 6 раз и погаснуть? в чем может быть причина?
Ещё раз пересмотрел datasheet.
Правильное значение для мега8 LOW = 0x1F, HIGH = 0xC9 (для avrdude "-U lfuse:w:0x1f:m -U hfuse:w:0xc9:m")
-
я правильно понимаю, что согласно фьюзам lfuse:0xdf и hfuse:0xdc мне нужно подать сигнал генератора с частотой 8-16 МГц? RC-цепочка или простейший генератор на К155ЛА3 подойдут?
Согласно этим фузам AVR пытается завести low-swing резонатор. Однако это по каким-либо причинам не удаётся. В этой ситуации можно самому подать любую частоту на вывод xtal1. Если вы собирали программатор с микросхемой ft232bm, то можно взять частоту с кварца ft'шки. Или с самодельного генератора.
-
спасибо
если можно, еще пару вопросов:
1. фьюзы менять придется уже в новом контроллере? к прописанным фьюзам я уже не получу доступ?
2. вы ведь сами написали ставить фьюзы "-U lfuse:w:0xdf:m -U hfuse:w:0xdc:m". что изменилось?
1. Подайте на вывод программируемого контроллера частоту с какого-нибудь генератора. И запрограммируйте фузы заново.
2. Ничего не не изменилось фузы выше приводились для low-swing резонаторов. Визимо ваш не заводится при таких настройках. Поэтому рекомендую попробовать full-swing.
-
.....
потом прошил фьюзы
avrdude -p m48 -c stk500_by_petka -P \\.\com13 -i 10 -B 10 -b 9600 -U lfuse:w:0xdf:m -U hfuse:w:0xdc:m
ошибок не было, но программатор перестал видеться
подскажите в чем проблема?
"lfuse:w:0xdf:m"
Поменять на
"lfuse:w:0xd7:m"
-
Это совершенно очевидно. Один поток - цели выполняются последовательно.
Очевидно? А почему не в обратном порядке? А почему не в алфавитном порядке? А почему не в порядке расположения файлов в файловой системе?
Не взаимоисключающих, а последовательных.Именно взаимоисключающих. Про последовательность см. выше. Так же прошу ссылку на документацию, где оговорен порядок выполнения целей.
....Короче, вы меня не переубедите. Инструмент этот (make) - кривой. Уж сколько времени я им пользуюсь, а ощущение кривизны не проходит, а только усиливается.
Жаль.
Тут сделал пару тестов:
all: first second third first: sleep 3 echo first second: sleep 2 echo second third: sleep 1 echo third .PHONY: first second third
$ make
sleep 3 echo first first sleep 2 echo second second sleep 1 echo third third
make -j 3
sleep 3 sleep 2 sleep 1 echo third third echo second second echo first first
Если нам важен порядок немного патчим кривой makefile без создания промежуточных целей:
all: first second third first: sleep 3 echo first second: | first sleep 2 echo second third: | second sleep 1 echo third .PHONY: first second third
make -j 3
sleep 3 echo first first sleep 2 echo second second sleep 1 echo third third
Вуаля!
Может кому-нибудь будет полезно.
-
Пока не появился ключик -j - вполне себе гарантировалось:)
После этого утверждения была бы уместна ссылка на документацию какой-то определённой версии make. С подтверждением этого смелого утверждения.
Нет. В моём примере (build: clean all) - как раз-таки ничего не собиралось. Ибо сначала выполнялась цель all, а потом - clean. В результате после выполнения make build - никакого elf-а не было....
В этом примере для цели build необходимо удовлетворение двух взаимоисключающих подцелей. Вы так построили сценарий для make. При чём тут инструмент?
Мне вся эта ситуация напоминает появление процессоров с "Hyper-threading". Тогда программисты не были готовы к настоящему параллельному выполнению потоков и отсутствие всяких "spin_lock" приводило к непредсказуемым результатам.
AvrUsb500 by Petka. продолжение
в AVR
Опубликовано · Пожаловаться
Названия выводов так и будут сохраняться.
На это можете не обращять внимание.
Именно.
Если выберете эту ногу, то в RESETADC надо прописать номер 3.