Умный Дом по Ethernet

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
alexsis_76

Re: Умный Дом по Ethernet

Сообщение alexsis_76 » 27 мар 2012, 13:29

если не помогает даже кнопка ресет то скорей всего битый контроллер т к вывод RESET аппаратный и должен помогать всегда, в любом случае попробуйте тестовую прошивку, померьте напряжение питания, поиграйте фьюзами(осторожней)
насчет

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

pinMode(4, OUTPUT);
digitalWrite(4, HIGH)
;
первый устанавливает 4 ногу на выход, второй устанавливает на ней лог 1

edka
Сообщения: 47
Зарегистрирован: 09 фев 2012, 13:24
Откуда: Латвия - Рига

Re: Умный Дом по Ethernet

Сообщение edka » 27 мар 2012, 14:12

alexsis_76 писал(а): насчет

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

pinMode(4, OUTPUT);
digitalWrite(4, HIGH)
;
первый устанавливает 4 ногу на выход, второй устанавливает на ней лог 1
Это я понял. Вопрос в другом, может ли несконфигурированость даного пина привести к таким сбоям которые я написал ранее.

Вечером проверю.

alexsis_76

Re: Умный Дом по Ethernet

Сообщение alexsis_76 » 27 мар 2012, 14:18

А что висит на 4 пине
ни разу не слышал чтоб конфигурация пина загоняла контроллер в такой режим

можете написать тестовую программу и запустить ее на плате например подключите светодиод к портам которые не работают и поиграть ими

edka
Сообщения: 47
Зарегистрирован: 09 фев 2012, 13:24
Откуда: Латвия - Рига

Re: Умный Дом по Ethernet

Сообщение edka » 27 мар 2012, 14:34

alexsis_76 писал(а):А что висит на 4 пине
ни разу не слышал чтоб конфигурация пина загоняла контроллер в такой режим
можете написать тестовую программу и запустить ее на плате например подключите светодиод к портам которые не работают и поиграть ими
На сколько понимаю 4 пин нужен для конкретной реализации модуля ENC + SD Card, что то вроде: 1-используем SPI с ENC, иначе с SD картой.

alexsis_76

Re: Умный Дом по Ethernet

Сообщение alexsis_76 » 27 мар 2012, 14:43

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

/* Disable SD card */
насколько можно судить по описанию это вывод cs карты а приведенный ниже фрагмент кода устанавливает на нем 1 т.е отключает sd карту(переводит в неактивное состояние)

edka
Сообщения: 47
Зарегистрирован: 09 фев 2012, 13:24
Откуда: Латвия - Рига

Re: Умный Дом по Ethernet

Сообщение edka » 27 мар 2012, 14:49

alexsis_76 писал(а):

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

/* Disable SD card */
насколько можно судить по описанию это вывод cs карты а приведенный ниже фрагмент кода устанавливает на нем 1 т.е отключает sd карту(переводит в неактивное состояние)
Да так оно и есть. Перефразирую вопрос: могут ли быть глюки от того, что я невыключил SD карту?

alexsis_76

Re: Умный Дом по Ethernet

Сообщение alexsis_76 » 27 мар 2012, 14:50

а карта в слоте , если да то могут т к они используют общий SPI

edka
Сообщения: 47
Зарегистрирован: 09 фев 2012, 13:24
Откуда: Латвия - Рига

Re: Умный Дом по Ethernet

Сообщение edka » 27 мар 2012, 14:58

не, карты нет

alexsis_76

Re: Умный Дом по Ethernet

Сообщение alexsis_76 » 27 мар 2012, 14:59

ТОГДА ДЕЛО НЕ В ЭТОМ А ПЛАТА У ВАС С СОБОЙ

edka
Сообщения: 47
Зарегистрирован: 09 фев 2012, 13:24
Откуда: Латвия - Рига

Re: Умный Дом по Ethernet

Сообщение edka » 27 мар 2012, 15:01

нет, плата дома :cry: до вечера придется ждать.

alexsis_76

Re: Умный Дом по Ethernet

Сообщение alexsis_76 » 27 мар 2012, 15:11

edka попробуйте
1 залить прошивку с arduino
2 сравните ваш hex и hex слитый с контроллера после зависания
3 то же с eeprom
4 померьте напряжение питания схемы и сигнал reset
5 регулярно виснут одни и те же ноги или очередность меняется
6 закоменте в исходнике переключение данных ног
7 о результатах отпишите
и еще сдесь тактируются от сетевого контроллера , у вас как я понял такая возможность не предусмотрена.

edka
Сообщения: 47
Зарегистрирован: 09 фев 2012, 13:24
Откуда: Латвия - Рига

Re: Умный Дом по Ethernet

Сообщение edka » 27 мар 2012, 22:22

Andrey_B писал(а): У меня нет Arduino, чтобы протестировать работу.
Вы можете попробовать закомментировать код, отвечающий за изменения состояний пинов, начиная с
for ( i = 0; i < IO_SIZE; i++ )
и до
// Debouncing init

Скомпилировать, прошить и снова попробовать.
Результат: Плата не зависла ни разу. Но сохранялись только значения IN. OUT выставлялись ->Save->back-> опять заходим в порт->NC.

edka
Сообщения: 47
Зарегистрирован: 09 фев 2012, 13:24
Откуда: Латвия - Рига

Re: Умный Дом по Ethernet

Сообщение edka » 27 мар 2012, 22:42

1 залить прошивку с arduino
Залил.

2 сравните ваш hex и hex слитый с контроллера после зависания
Интересно: hex весит 54кб, заливаю, тут же считываю и получаю 44кб? Это что оптимизация?такое возможно? Ломанный варьируется: 45кб, 47кб. Как эти буквы с цифрами анализировать?

3 то же с eeprom
Странно №2. Чтобы я не делал, чтобы я не счелкал считанный файл EEPROM =13байтам. содержимое всегда :00000001FF

4 померьте напряжение питания схемы и сигнал reset
Какого-то х.. накрылся мультиметр, мерит только омы... Протестил на батарейках:всегда показывает 1.

5 регулярно виснут одни и те же ноги или очередность меняется
D7,C0-C5 - ни разу не повесили. По остальному статистики мало, но примерно в 90% ведет к зависанию.

6 закоменте в исходнике переключение данных ног
Закоментил:

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

for ( i = 0; i < IO_SIZE; i++ ) 
и до
// Debouncing init
 
Результат: Плата не зависла ни разу. Но сохранялись только значения IN. OUT выставлялись ->Save->back-> опять заходим в порт->NC.

и еще сдесь тактируются от сетевого контроллера , у вас как я понял такая возможность не предусмотрена.
Если я правильно понимаю это выставляется фьюзами... Я пока боюсь, что-то там трогать.
И большое спасибо за помощь.

Andrey_B
Администратор
Сообщения: 5327
Зарегистрирован: 18 мар 2011, 12:06

Re: Умный Дом по Ethernet

Сообщение Andrey_B » 27 мар 2012, 23:30

edka писал(а):
Andrey_B писал(а): Вы можете попробовать закомментировать код, отвечающий за изменения состояний пинов, начиная с
Результат: Плата не зависла ни разу. Но сохранялись только значения IN. OUT выставлялись ->Save->back-> опять заходим в порт->NC.
Это лишь говорит о том, что причину надо искать в "железе". Не обязательно оно неисправно, возможно что-то на этих пинах "висит". Пусть разбирающиеся в Arduino что-нибудь подскажут.
Описанное поведение с IN/OUT закономерно. Так и должно было быть.

alexsis_76

Re: Умный Дом по Ethernet

Сообщение alexsis_76 » 28 мар 2012, 02:52

а сxему всего этого хозяйства можно посмотреть,и положите пожалуйста дампы

edka
Сообщения: 47
Зарегистрирован: 09 фев 2012, 13:24
Откуда: Латвия - Рига

Re: Умный Дом по Ethernet

Сообщение edka » 28 мар 2012, 10:25

Arduino2009.jpg
Arduino2009.jpg (255.33 КБ) 14839 просмотров

edka
Сообщения: 47
Зарегистрирован: 09 фев 2012, 13:24
Откуда: Латвия - Рига

Re: Умный Дом по Ethernet

Сообщение edka » 28 мар 2012, 10:26

ENC.jpg
На схеме кварц 10MHz, реально 25MHz
ENC.jpg (159.18 КБ) 14839 просмотров

alexsis_76

Re: Умный Дом по Ethernet

Сообщение alexsis_76 » 28 мар 2012, 11:21

А почему сдесь

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

if ( port_letter == 'C' )
			{
				DDRC |= (1<<port_num);
				if (_port_d[i] == 1 )
				PORTC|= (1<<port_num);
				else
				PORTD &= ~(1<<port_num);
			}
устанавливаем порт С а сбрасываем D
у вас в плате непредусмотрено тактирование от сетевого контроллера возможно потребуется скнфигурировать фьюзы


edka
Сообщения: 47
Зарегистрирован: 09 фев 2012, 13:24
Откуда: Латвия - Рига

Re: Умный Дом по Ethernet

Сообщение edka » 28 мар 2012, 14:38

alexsis_76 писал(а):А почему сдесь

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

if ( port_letter == 'C' )
	{
		DDRC |= (1<<port_num);
		if (_port_d[i] == 1 )
		PORTC|= (1<<port_num);
		else
		PORTD &= ~(1<<port_num);
	}
устанавливаем порт С а сбрасываем D
у вас в плате непредусмотрено тактирование от сетевого контроллера возможно потребуется скнфигурировать фьюзы
У меня последняя версия. И там:

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

if ( port_letter == 'C' )
			{
				DDRC |= (1<<port_num);
				if (_port_d[i] == 1 )
				PORTC|= (1<<port_num);
				else
				PORTC &= ~(1<<port_num);
			}

Ответить