1-Wire по Ethernet

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
vtec
Сообщения: 459
Зарегистрирован: 19 сен 2011, 09:28

Re: 1-Wire по Ethernet

Сообщение vtec » 25 май 2012, 21:44

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

Segador
Сообщения: 20
Зарегистрирован: 26 окт 2011, 12:58

Re: 1-Wire по Ethernet

Сообщение Segador » 26 май 2012, 11:11

vtec писал(а):Может есть ссылка на тему как прошить без программатора?
Предположу, что проще найти знакомого, чтобы обойтись без прграмматора вообще. :D
Ну, а если самому, то может ссылка поможет?
http://electronics-lab.ru/blog/mcu/126.html

alexsis_76

Re: 1-Wire по Ethernet

Сообщение alexsis_76 » 26 май 2012, 15:14

vtec Я надеюсь Вы не потерли бутлоадер в Вашем Ардуино, если нет то наберите в поисковике что нибудь типа Бутлоадер для AVR, Как прошить AVR через бутлоадер, если потерли то нужен SPI программатор

vtec
Сообщения: 459
Зарегистрирован: 19 сен 2011, 09:28

Re: 1-Wire по Ethernet

Сообщение vtec » 28 май 2012, 08:24

alexsis_76 писал(а):vtec Я надеюсь Вы не потерли бутлоадер в Вашем Ардуино, если нет то наберите в поисковике что нибудь типа Бутлоадер для AVR, Как прошить AVR через бутлоадер, если потерли то нужен SPI программатор
Спасибо, alexsis_76.
Бутлоадер в порядке. Прошился, но пинг не проходит, как узнать к каким портам нужно 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

vtec
Сообщения: 459
Зарегистрирован: 19 сен 2011, 09:28

Re: 1-Wire по Ethernet

Сообщение vtec » 28 май 2012, 08:57

Нашел где порты прописаны для AVR_ATmega328P:
#define ENC28J60_CONTROL_CS PORTB2
#define ENC28J60_CONTROL_SO PORTB4
#define ENC28J60_CONTROL_SI PORTB3
#define ENC28J60_CONTROL_SCK PORTB5
Переткнул, не работает. Куда копать?

THK
Модератор
Сообщения: 588
Зарегистрирован: 18 мар 2011, 19:00
Откуда: Серпухов, МО

Re: 1-Wire по Ethernet

Сообщение THK » 28 май 2012, 09:42

Я с ардуинами незнаком, поэтому спрошу: А большая проблема подключить пины шилда, как указано на схеме? Тогда и менять ничего не надо, только тип процессора...

PS Мысль пришла...
У вас к RX - TX что ни будь подключено? Какой уровень на пине PA7?
Если пины RX - TX свободны (PD0, PD1 для меги 32), то замкните их.
Без эха программа "зависнет" на поиске устройств и на PA1 будет лог. 1.
Естественно пингов тоже не будет.

vtec
Сообщения: 459
Зарегистрирован: 19 сен 2011, 09:28

Re: 1-Wire по Ethernet

Сообщение vtec » 28 май 2012, 10:18

THK писал(а):Я с ардуинами незнаком, поэтому спрошу: А большая проблема подключить пины шилда, как указано на схеме? Тогда и менять ничего не надо, только тип процессора...

PS Мысль пришла...
У вас к RX - TX что ни будь подключено? Какой уровень на пине PA7?
Если пины RX - TX свободны (PD0, PD1 для меги 32), то замкните их.
Без эха программа "зависнет" на поиске устройств и на PA1 будет лог. 1.
Естественно пингов тоже не будет.
Думаю что будет проблематично пины шилда подключить.
Да, RX - TX свободны. Замкнул ничего не происходит. Страничка не открывается. А что значит PA7 и уровень? Как узнать?

alexsis_76

Re: 1-Wire по Ethernet

Сообщение alexsis_76 » 28 май 2012, 10:42

Возможно дело в следующем в прошивке ТНК определено
#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
в макефайле описано
# MCU name
MCU=atmega32
у вашего контроллера и мега 32 ноги не совпадают

alexsis_76

Re: 1-Wire по Ethernet

Сообщение alexsis_76 » 28 май 2012, 10:51

Без эха программа "зависнет"
как я понимаю программа попадает в глухой цикл, а нельзя по таймауту его грохнуть с выводом соответствующего предупреждения

THK
Модератор
Сообщения: 588
Зарегистрирован: 18 мар 2011, 19:00
Откуда: Серпухов, МО

Re: 1-Wire по Ethernet

Сообщение THK » 28 май 2012, 11:19

vtec писал(а):Нашел где порты прописаны для AVR_ATmega328P:
#define ENC28J60_CONTROL_CS PORTB2
#define ENC28J60_CONTROL_SO PORTB4
#define ENC28J60_CONTROL_SI PORTB3
#define ENC28J60_CONTROL_SCK PORTB5
Переткнул, не работает. Куда копать?
alexsis_76 писал(а):у вашего контроллера и мега 32 ноги не совпадают
Что касается работы с ENC, то достаточно в макефайле указать тип процессора и ноги сами поменяются, проблема будет с портом А. В 328 меге его нет, и просто переназначить выходы на другой порт не получится, во многих местах правки делать надо и не везде это явно видно, например строка 864

Код: Выделить всё

pin=atoi(temp)-1;
здесь из номера выхода вычисляется номер пина...
alexsis_76 писал(а):как я понимаю программа попадает в глухой цикл, а нельзя по таймауту его грохнуть с выводом соответствующего предупреждения
Наверное можно, для начала закоментируйте строку 612

Код: Выделить всё

	while(OWI_Search(devices, MAX_DEVICES) != SEARCH_SUCCESSFUL)
Это отключит поиск устройств.
А заморачиваться с таймаутами я не хочу, т.к. это не баг, а фича :D с ней смысл сигналов светодиода "Error" принимает следующий смысл:
1. Постоянное свечение светодиода - неисправна (отсутствует) обвязка выхода 1-Wire.
2. Светодиод моргает - на шине нет 1-Wire устройств.
3. Светодиод моргнул один раз - поиск устройств выполнен, инициализация "железа" прошла успешно.

alexsis_76

Re: 1-Wire по Ethernet

Сообщение alexsis_76 » 28 май 2012, 12:22

это не баг, а фича :D
А понятно , а пинг почему пропадает

vtec
Сообщения: 459
Зарегистрирован: 19 сен 2011, 09:28

Re: 1-Wire по Ethernet

Сообщение vtec » 28 май 2012, 12:32

Товарищи, помогайте.
Короче выяснил, что порты в прошивке менять не нужно а вот на ардуине методом прозвонки определил, что:
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'вский скетч, то работает.
Может ещё какой порт не настроен?

alexsis_76

Re: 1-Wire по Ethernet

Сообщение alexsis_76 » 28 май 2012, 12:40

а в макефайле какой чип указан и частота

THK
Модератор
Сообщения: 588
Зарегистрирован: 18 мар 2011, 19:00
Откуда: Серпухов, МО

Re: 1-Wire по Ethernet

Сообщение THK » 28 май 2012, 12:49

Вы в макфайле заменили MCU=atmega32 на MCU=atmega328? Мне кажется, что нет. Как с портом А (вернее с его отсутствием) поступать планируете?
alexsis_76 писал(а):а в макефайле какой чип указан и частота
И еще, если частота кварца отличная от 16 мГц, то в файле OWIInterruptDriven.h надо поменять коэффициенты для USART

Код: Выделить всё

/*! 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

vtec
Сообщения: 459
Зарегистрирован: 19 сен 2011, 09:28

Re: 1-Wire по Ethernet

Сообщение vtec » 28 май 2012, 12:54

alexsis_76 писал(а):а в макефайле какой чип указан и частота
Сейчас пробую Андрея прошивку, там вот что есть:
MCU=atmega328p
DUDECPUTYPE=m328p
enc28j60.c:
#define F_CPU 12500000UL // 12.5 MHz

alexsis_76

Re: 1-Wire по Ethernet

Сообщение alexsis_76 » 28 май 2012, 13:05

У Вас какой кварц на плате стоит

vtec
Сообщения: 459
Зарегистрирован: 19 сен 2011, 09:28

Re: 1-Wire по Ethernet

Сообщение vtec » 28 май 2012, 13:07

alexsis_76 писал(а):У Вас какой кварц на плате стоит
На arduino uno 16MHz
На ethernet модуле стоит 25MHz

THK
Модератор
Сообщения: 588
Зарегистрирован: 18 мар 2011, 19:00
Откуда: Серпухов, МО

Re: 1-Wire по Ethernet

Сообщение THK » 28 май 2012, 13:14

alexsis_76 писал(а):А понятно , а пинг почему пропадает
Устройство способно реагировать на внешние запросы только в главном цикле, а до него дело не доходит.
Ждет оно

Код: Выделить всё

while(!(OWI_UART_STATCTRL_REG_A & (1 << OWI_RXC)))
    {
    }
А байта все нет и нет... :cry:

alexsis_76

Re: 1-Wire по Ethernet

Сообщение alexsis_76 » 28 май 2012, 13:23

В дефайне следует указать
#define F_CPU 16000000UL

alexsis_76

Re: 1-Wire по Ethernet

Сообщение alexsis_76 » 28 май 2012, 13:38

А байта все нет и нет... :cry:
fАможно сделать так
А байта все нет и нет... :cry:
да ну и хрен с ним запомним этот факт и двинемся дальше , а на картинке в браузере напишем мол нет байта и все тут :cry: и будем работать

Ответить