Случаем не знаете как можно провериь на корректность работы LPT программатора Громова?
Хм. А что вы в нем проверять собрались? В нем же, фактически кроме проводков/дорожек - ничего нет. Ну можете прозвонить их тестером, что нигде обрыва нет. Померять сопротивления резисторов, проверить диоды (в одну сторону прозванивается, в другую - нет). Да просто глазами посмотреть что все в порядке, нет обрывов, нет закороток.
Случаем не знаете как можно провериь на корректность работы LPT программатора Громова?
Хм. А что вы в нем проверять собрались? В нем же, фактически кроме проводков/дорожек - ничего нет. Ну можете прозвонить их тестером, что нигде обрыва нет. Померять сопротивления резисторов, проверить диоды (в одну сторону прозванивается, в другую - нет). Да просто глазами посмотреть что все в порядке, нет обрывов, нет закороток.
Я просто предположил, что мб есть программулина какая-нибудь, с помощью которой можно посылать на определенные ноги выхода LPT логическую единицу. Таким образом можно детектировать, что да действительно до ардуины сигнал точно с LPT доходит.
Еще один момент хотел у Вас уточнить. Не нцужно ли как побитовую инверсию проставлять в параметре reset, в конфиге?
Просто в даташите к Atmega8 (http://www.atmel.com/images/doc2486.pdf) указано, что пин, отвечающий за резет (1) идет с инверсией, а на LPT получается, через IDE посылается значение без инверсии.
Да, посылается без инверсии, просто посылается "0" :) У ресета "инверсия" означает "активный 0"
Ага, понял. Просто в даташитине прочел, что при удержании низкого уровня сигнала, резетимся, а при коротком импульсе резет не гарантирован, потому и озадачился этим вопросом, предполагая что на данную ногу LPT будет кидаться логическая единичка.
Уважаемый, просвятите плиз. Что такое активный нуль? Если это подразумевается под "~0", то в обычных сях это побитовое отрицание и соответственно логическая единичка будет, т.е. из этого могу заключить, что "активный 0" - это логическая единичка на входе или нет?
"Активный 0" - это "электрическое" определение. Это... какбы... "открытый коллектор". То есть, когда источнику нужно подать "0", он "притягивает" линию к нулю, а когда не нужно, он ее "отпускает", иначе говоря, единицу он может и не подавать, а просто переходить в высокоимпанденсное состояние. В этом случае должна быть подтяжка к "1".
"Логически" это можно понимать как "есть сигнал, когда на линии 0"
"Активный 0" - это "электрическое" определение. Это... какбы... "открытый коллектор". То есть, когда источнику нужно подать "0", он "притягивает" линию к нулю, а когда не нужно, он ее "отпускает", иначе говоря, единицу он может и не подавать, а просто переходить в высокоимпанденсное состояние. В этом случае должна быть подтяжка к "1".
"Логически" это можно понимать как "есть сигнал, когда на линии 0"
Нужно создать секцию (скопировать atmega8, изменив имя, соответственно). Можно тупо исправить сигнатуру у atmega8 в конфиге. Вам нужно, чтобы в конфиге была сигнатура 3e 93 07 (отличается перарвой цифрой)
Нужно создать секцию (скопировать atmega8, изменив имя, соответственно). Можно тупо исправить сигнатуру у atmega8 в конфиге. Вам нужно, чтобы в конфиге была сигнатура 3e 93 07 (отличается перарвой цифрой)
Пересмотрел все файлы проекта, но увы не нашел обявления сигнатур. Не подскажете в каком файлике зарыты?
Нужно создать секцию (скопировать atmega8, изменив имя, соответственно). Можно тупо исправить сигнатуру у atmega8 в конфиге. Вам нужно, чтобы в конфиге была сигнатура 3e 93 07 (отличается перарвой цифрой)
Все сделал, как Вы написали, но увы...:
avrdude: AVR device not responding
avrdude: initialization failed, rc=-1
avrdude: Yikes! Invalid device signature.
avrdude: Expected signature for ATMEGA8 is 3E 93 07
Решился собрать программатор на сейчас и на будущее. USBbit(http://www.reddylab.eu/usbbit/v1-1). Подскажите пожалууйста в данной схеме юзаются SMD 0805 или 1206?
Весьма благодарен
(P.S. Сама схема печатки приведена в расширении *.lay на сайте, но я так и не смог определить по ней, какой же тип SMD юзают, в плане size'оф).
Мда. Не знаю, что посоветовать... Попробуйте другое ПО (программатор). Или попробуйте поставить в строку ключ для игнорирования сигнатуры (не знаю, где)
Хехехей!!!! Уважаемые!! Вся лажа была при обращении к МК из-за настройки LPT виндовоза. Нужно тбыло поставить разрешенние на все прерывания и запахал. НО.. лишь отчасти.. Активно моргает светодиод LED13, будто реально обмен, запись происходят, но секунд через 5, выскакивает следующее:
avrdude: verification error, first mismatch at byte 0x1c00
0x12 != 0xff
avrdude: verification error; content mismatch
(Юзаю сигнатуру 0x1e 0x93 0x07)
Если юзать сигнатуру 0x3e 0x93 0x07
то пишет слкедующее:
avrdude: Expected signature for ATMEGA8 is 3E 93 07
Такое ощущение, что кто-то попортил память и записал уже 0x12 вместо положенных по дефолту 0xff, соответственно поверх данного значенрия записать ничего не мождет. Соответственно есть предположение что нужно стереть память МК, чтобьы все заработало. Все естественно ИМХО.
И еще. Решил покопаться немного в файле avrdude.conf. Обнаружил две реализации подключения к LPT:
# Parallel port programmers.
programmer
id = "bsd";
desc = "Brian Dean's Programmer, http://www.bsdhome.com/avrdude/";
type = par;
vcc = 2, 3, 4, 5;
reset = 7;
sck = 8;
mosi = 9;
miso = 10;
;
и
programmer
id = "dapa";
desc = "Direct AVR Parallel Access cable";
type = par;
vcc = 3;
reset = 16;
sck = 1;
mosi = 2;
miso = 11;
;
Я, когда ваял программатор Громова на LPT, ориентировался на вторую реализацию.
Буду весьма благодарен если кто-нибудь прокомментирует зачем и в каких случаях используют первую реализацию.
Случаем не знаете как можно провериь на корректность работы LPT программатора Громова?
Хм. А что вы в нем проверять собрались? В нем же, фактически кроме проводков/дорожек - ничего нет. Ну можете прозвонить их тестером, что нигде обрыва нет. Померять сопротивления резисторов, проверить диоды (в одну сторону прозванивается, в другую - нет). Да просто глазами посмотреть что все в порядке, нет обрывов, нет закороток.
Случаем не знаете как можно провериь на корректность работы LPT программатора Громова?
Хм. А что вы в нем проверять собрались? В нем же, фактически кроме проводков/дорожек - ничего нет. Ну можете прозвонить их тестером, что нигде обрыва нет. Померять сопротивления резисторов, проверить диоды (в одну сторону прозванивается, в другую - нет). Да просто глазами посмотреть что все в порядке, нет обрывов, нет закороток.
Я просто предположил, что мб есть программулина какая-нибудь, с помощью которой можно посылать на определенные ноги выхода LPT логическую единицу. Таким образом можно детектировать, что да действительно до ардуины сигнал точно с LPT доходит.
Еще один момент хотел у Вас уточнить. Не нцужно ли как побитовую инверсию проставлять в параметре reset, в конфиге?
Просто в даташите к Atmega8 (http://www.atmel.com/images/doc2486.pdf) указано, что пин, отвечающий за резет (1) идет с инверсией, а на LPT получается, через IDE посылается значение без инверсии.
Спасибо!
Да, посылается без инверсии, просто посылается "0" :) У ресета "инверсия" означает "активный 0"
Да, посылается без инверсии, просто посылается "0" :) У ресета "инверсия" означает "активный 0"
Ага, понял. Просто в даташитине прочел, что при удержании низкого уровня сигнала, резетимся, а при коротком импульсе резет не гарантирован, потому и озадачился этим вопросом, предполагая что на данную ногу LPT будет кидаться логическая единичка.
Уважаемый, просвятите плиз. Что такое активный нуль? Если это подразумевается под "~0", то в обычных сях это побитовое отрицание и соответственно логическая единичка будет, т.е. из этого могу заключить, что "активный 0" - это логическая единичка на входе или нет?
"Активный 0" - это "электрическое" определение. Это... какбы... "открытый коллектор". То есть, когда источнику нужно подать "0", он "притягивает" линию к нулю, а когда не нужно, он ее "отпускает", иначе говоря, единицу он может и не подавать, а просто переходить в высокоимпанденсное состояние. В этом случае должна быть подтяжка к "1".
"Логически" это можно понимать как "есть сигнал, когда на линии 0"
"Активный 0" - это "электрическое" определение. Это... какбы... "открытый коллектор". То есть, когда источнику нужно подать "0", он "притягивает" линию к нулю, а когда не нужно, он ее "отпускает", иначе говоря, единицу он может и не подавать, а просто переходить в высокоимпанденсное состояние. В этом случае должна быть подтяжка к "1".
"Логически" это можно понимать как "есть сигнал, когда на линии 0"
Все, понял. Спасибо большое! :)
В общем пришел домой, попробовал прямой перебор кристаллов, но все всремя матюгается на сигнатуру...:(
На кристалле написано Atmel 1113 Atmega8A-PU.
Нужно создать секцию (скопировать atmega8, изменив имя, соответственно). Можно тупо исправить сигнатуру у atmega8 в конфиге. Вам нужно, чтобы в конфиге была сигнатура 3e 93 07 (отличается перарвой цифрой)
Нужно создать секцию (скопировать atmega8, изменив имя, соответственно). Можно тупо исправить сигнатуру у atmega8 в конфиге. Вам нужно, чтобы в конфиге была сигнатура 3e 93 07 (отличается перарвой цифрой)
Пересмотрел все файлы проекта, но увы не нашел обявления сигнатур. Не подскажете в каком файлике зарыты?
Кажется нашел нечто похожее в avrdude.conf
Нужно создать секцию (скопировать atmega8, изменив имя, соответственно). Можно тупо исправить сигнатуру у atmega8 в конфиге. Вам нужно, чтобы в конфиге была сигнатура 3e 93 07 (отличается перарвой цифрой)
Все сделал, как Вы написали, но увы...:
avrdude: AVR device not responding
avrdude: initialization failed, rc=-1
avrdude: Yikes! Invalid device signature.
avrdude: Expected signature for ATMEGA8 is 3E 93 07
Решился собрать программатор на сейчас и на будущее. USBbit(http://www.reddylab.eu/usbbit/v1-1). Подскажите пожалууйста в данной схеме юзаются SMD 0805 или 1206?
Весьма благодарен
(P.S. Сама схема печатки приведена в расширении *.lay на сайте, но я так и не смог определить по ней, какой же тип SMD юзают, в плане size'оф).
Мда. Не знаю, что посоветовать... Попробуйте другое ПО (программатор). Или попробуйте поставить в строку ключ для игнорирования сигнатуры (не знаю, где)
Хехехей!!!! Уважаемые!! Вся лажа была при обращении к МК из-за настройки LPT виндовоза. Нужно тбыло поставить разрешенние на все прерывания и запахал. НО.. лишь отчасти.. Активно моргает светодиод LED13, будто реально обмен, запись происходят, но секунд через 5, выскакивает следующее:
avrdude: verification error, first mismatch at byte 0x1c00
0x12 != 0xff
avrdude: verification error; content mismatch
(Юзаю сигнатуру 0x1e 0x93 0x07)
Если юзать сигнатуру 0x3e 0x93 0x07
то пишет слкедующее:
avrdude: Expected signature for ATMEGA8 is 3E 93 07
При этом акивность светодиода LED13 корректная, если верить мануалу http://robocraft.ru/files/ArduinoSeverinoManual2.pdf
Уважаемые! Чувствую, что проект сдвинулся с мертвой точки и уже приблизился к решению, буквально вот-вот и все, помогите Очень прошу!
Заранее всеьма Вам благодарен!
Такое ощущение, что кто-то попортил память и записал уже 0x12 вместо положенных по дефолту 0xff, соответственно поверх данного значенрия записать ничего не мождет. Соответственно есть предположение что нужно стереть память МК, чтобьы все заработало. Все естественно ИМХО.