1-Wire по Ethernet
Re: 1-Wire по Ethernet
Может есть ссылка на тему как прошить без программатора?
Re: 1-Wire по Ethernet
Предположу, что проще найти знакомого, чтобы обойтись без прграмматора вообще.vtec писал(а):Может есть ссылка на тему как прошить без программатора?
Ну, а если самому, то может ссылка поможет?
http://electronics-lab.ru/blog/mcu/126.html
Re: 1-Wire по Ethernet
vtec Я надеюсь Вы не потерли бутлоадер в Вашем Ардуино, если нет то наберите в поисковике что нибудь типа Бутлоадер для AVR, Как прошить AVR через бутлоадер, если потерли то нужен SPI программатор
Re: 1-Wire по Ethernet
Спасибо, alexsis_76.alexsis_76 писал(а):vtec Я надеюсь Вы не потерли бутлоадер в Вашем Ардуино, если нет то наберите в поисковике что нибудь типа Бутлоадер для AVR, Как прошить AVR через бутлоадер, если потерли то нужен SPI программатор
Бутлоадер в порядке. Прошился, но пинг не проходит, как узнать к каким портам нужно ethernet модуль подключать? Сейчас подключен к 10,11,12,13.
Может кому пригодится, у меня arduino uno и linux:
Делаем бэкап: avrdude -F -V -c arduino -p ATMEGA328P -P /dev/ttyACM0 -b 115200 -U flash:r:flash_backup.hex:i
Заливаем прошивку: avrdude -F -V -c arduino -p ATMEGA328P -P /dev/ttyACM0 -b 115200 -U flash:w:manager.hex
Re: 1-Wire по Ethernet
Нашел где порты прописаны для AVR_ATmega328P:
#define ENC28J60_CONTROL_CS PORTB2
#define ENC28J60_CONTROL_SO PORTB4
#define ENC28J60_CONTROL_SI PORTB3
#define ENC28J60_CONTROL_SCK PORTB5
Переткнул, не работает. Куда копать?
#define ENC28J60_CONTROL_CS PORTB2
#define ENC28J60_CONTROL_SO PORTB4
#define ENC28J60_CONTROL_SI PORTB3
#define ENC28J60_CONTROL_SCK PORTB5
Переткнул, не работает. Куда копать?
Re: 1-Wire по Ethernet
Я с ардуинами незнаком, поэтому спрошу: А большая проблема подключить пины шилда, как указано на схеме? Тогда и менять ничего не надо, только тип процессора...
PS Мысль пришла...
У вас к RX - TX что ни будь подключено? Какой уровень на пине PA7?
Если пины RX - TX свободны (PD0, PD1 для меги 32), то замкните их.
Без эха программа "зависнет" на поиске устройств и на PA1 будет лог. 1.
Естественно пингов тоже не будет.
PS Мысль пришла...
У вас к RX - TX что ни будь подключено? Какой уровень на пине PA7?
Если пины RX - TX свободны (PD0, PD1 для меги 32), то замкните их.
Без эха программа "зависнет" на поиске устройств и на PA1 будет лог. 1.
Естественно пингов тоже не будет.
Re: 1-Wire по Ethernet
Думаю что будет проблематично пины шилда подключить.THK писал(а):Я с ардуинами незнаком, поэтому спрошу: А большая проблема подключить пины шилда, как указано на схеме? Тогда и менять ничего не надо, только тип процессора...
PS Мысль пришла...
У вас к RX - TX что ни будь подключено? Какой уровень на пине PA7?
Если пины RX - TX свободны (PD0, PD1 для меги 32), то замкните их.
Без эха программа "зависнет" на поиске устройств и на PA1 будет лог. 1.
Естественно пингов тоже не будет.
Да, RX - TX свободны. Замкнул ничего не происходит. Страничка не открывается. А что значит PA7 и уровень? Как узнать?
Re: 1-Wire по Ethernet
Возможно дело в следующем в прошивке ТНК определено
в макефайле описано#if defined(__AVR_ATmega88__) || defined(__AVR_ATmega88P__) || defined(__AVR_ATmega168__) || defined(__AVR_ATmega168P__) || defined(__AVR_ATmega328P__)
#define ENC28J60_CONTROL_CS PORTB2
#define ENC28J60_CONTROL_SO PORTB4
#define ENC28J60_CONTROL_SI PORTB3
#define ENC28J60_CONTROL_SCK PORTB5
#endif
#if defined(__AVR_ATmega644__)||defined(__AVR_ATmega644P__)||(__AVR_ATmega32__)
#define ENC28J60_CONTROL_CS PORTB4
#define ENC28J60_CONTROL_SO PORTB6
#define ENC28J60_CONTROL_SI PORTB5
#define ENC28J60_CONTROL_SCK PORTB7
#endif
у вашего контроллера и мега 32 ноги не совпадают# MCU name
MCU=atmega32
Re: 1-Wire по Ethernet
как я понимаю программа попадает в глухой цикл, а нельзя по таймауту его грохнуть с выводом соответствующего предупрежденияБез эха программа "зависнет"
Re: 1-Wire по Ethernet
vtec писал(а):Нашел где порты прописаны для AVR_ATmega328P:
#define ENC28J60_CONTROL_CS PORTB2
#define ENC28J60_CONTROL_SO PORTB4
#define ENC28J60_CONTROL_SI PORTB3
#define ENC28J60_CONTROL_SCK PORTB5
Переткнул, не работает. Куда копать?
Что касается работы с ENC, то достаточно в макефайле указать тип процессора и ноги сами поменяются, проблема будет с портом А. В 328 меге его нет, и просто переназначить выходы на другой порт не получится, во многих местах правки делать надо и не везде это явно видно, например строка 864alexsis_76 писал(а):у вашего контроллера и мега 32 ноги не совпадают
Код: Выделить всё
pin=atoi(temp)-1;
Наверное можно, для начала закоментируйте строку 612alexsis_76 писал(а):как я понимаю программа попадает в глухой цикл, а нельзя по таймауту его грохнуть с выводом соответствующего предупреждения
Код: Выделить всё
while(OWI_Search(devices, MAX_DEVICES) != SEARCH_SUCCESSFUL)
А заморачиваться с таймаутами я не хочу, т.к. это не баг, а фича с ней смысл сигналов светодиода "Error" принимает следующий смысл:
1. Постоянное свечение светодиода - неисправна (отсутствует) обвязка выхода 1-Wire.
2. Светодиод моргает - на шине нет 1-Wire устройств.
3. Светодиод моргнул один раз - поиск устройств выполнен, инициализация "железа" прошла успешно.
Re: 1-Wire по Ethernet
А понятно , а пинг почему пропадаетэто не баг, а фича
Re: 1-Wire по Ethernet
Товарищи, помогайте.
Короче выяснил, что порты в прошивке менять не нужно а вот на ардуине методом прозвонки определил, что:
10 порт (CS) на arduine == PORTB2
11 порт (SI) на arduine == PORTB3
12 порт (SO) на arduine == PORTB4
13 порт (SCK) на arduine == PORTB5
Езернет шилд подключил к портам 10,11,12,13, а в прошивке оставил PORTB2, PORTB3, PORTB4, PORTB5
Все равно не работает! Если заливаю arduino'вский скетч, то работает.
Может ещё какой порт не настроен?
Короче выяснил, что порты в прошивке менять не нужно а вот на ардуине методом прозвонки определил, что:
10 порт (CS) на arduine == PORTB2
11 порт (SI) на arduine == PORTB3
12 порт (SO) на arduine == PORTB4
13 порт (SCK) на arduine == PORTB5
Езернет шилд подключил к портам 10,11,12,13, а в прошивке оставил PORTB2, PORTB3, PORTB4, PORTB5
Все равно не работает! Если заливаю arduino'вский скетч, то работает.
Может ещё какой порт не настроен?
Re: 1-Wire по Ethernet
Вы в макфайле заменили MCU=atmega32 на MCU=atmega328? Мне кажется, что нет. Как с портом А (вернее с его отсутствием) поступать планируете?
И еще, если частота кварца отличная от 16 мГц, то в файле OWIInterruptDriven.h надо поменять коэффициенты для USARTalexsis_76 писал(а):а в макефайле какой чип указан и частота
Код: Выделить всё
/*! UART Baud Rate register setting that results in 115200 Baud
*
* This define should be set to the UBRR value that will generate
* a Baud rate of 115200. See data sheet for more information and
* examples of Baud rate settings.
*/
#define OWI_UBRR_115200 16
/*! UART Baud Rate register setting that results in 9600 Baud
*
* This define should be set to the UBRR value that will generate
* a Baud rate of 9600. See data sheet for more information and
* examples of Baud rate settings.
*/
#define OWI_UBRR_9600 207
Re: 1-Wire по Ethernet
Сейчас пробую Андрея прошивку, там вот что есть:alexsis_76 писал(а):а в макефайле какой чип указан и частота
MCU=atmega328p
DUDECPUTYPE=m328p
enc28j60.c:
#define F_CPU 12500000UL // 12.5 MHz
Re: 1-Wire по Ethernet
На arduino uno 16MHzalexsis_76 писал(а):У Вас какой кварц на плате стоит
На ethernet модуле стоит 25MHz
Re: 1-Wire по Ethernet
Устройство способно реагировать на внешние запросы только в главном цикле, а до него дело не доходит.alexsis_76 писал(а):А понятно , а пинг почему пропадает
Ждет оно
Код: Выделить всё
while(!(OWI_UART_STATCTRL_REG_A & (1 << OWI_RXC)))
{
}
Re: 1-Wire по Ethernet
В дефайне следует указать
#define F_CPU 16000000UL
Re: 1-Wire по Ethernet
fАможно сделать такА байта все нет и нет...
да ну и хрен с ним запомним этот факт и двинемся дальше , а на картинке в браузере напишем мол нет байта и все тут и будем работатьА байта все нет и нет...