Подумаю...shaman1010 писал(а):а округлять обязательно? может вводить значение через точку? (25.12) или умноженным на 100 (2512)? а точку уже в интерфейсе отрисовывать для наглядности...DOCSIMUS писал(а):округление можно сделать как-то и по другому
еще и сам не пойму как лучше
Умный дом Ethernet + 1-Wire + Bootloader
Re: Умный дом Ethernet + 1-Wire + Bootloader
Re: Умный дом Ethernet + 1-Wire + Bootloader
сделал как предложил шаман, но по другому
при сравнении значения температуры датчика произвожу сравнение с учетом дробной части
но умножая на 16
такой формат хранения дробной части в DS18B20 - 4 младших бита представляют дробную часть, единица = 1/16 градуса
так вроде бы более логично, чем округлять +0,5
вводить дробную часть в пороги DS18B20 невозможно
во всяком случае в этой реализации
т.к. я пороги для DS18B20 храню не в EEPROM авр-ки, а в EEPROM самого датчика, а там отведено всего 2 байта - 1 на нижний и один на верхний пороги, и сохранять можно соответственно только целые значения
при сравнении значения температуры датчика произвожу сравнение с учетом дробной части
но умножая на 16
такой формат хранения дробной части в DS18B20 - 4 младших бита представляют дробную часть, единица = 1/16 градуса
так вроде бы более логично, чем округлять +0,5
вводить дробную часть в пороги DS18B20 невозможно
во всяком случае в этой реализации
т.к. я пороги для DS18B20 храню не в EEPROM авр-ки, а в EEPROM самого датчика, а там отведено всего 2 байта - 1 на нижний и один на верхний пороги, и сохранять можно соответственно только целые значения
Re: Умный дом Ethernet + 1-Wire + Bootloader
Стало выглядеть и работать привычно
-
- Сообщения: 7
- Зарегистрирован: 24 окт 2014, 17:43
Re: Умный дом Ethernet + 1-Wire + Bootloader
Всем привет,
прочитав эту ветку я заинтересовался контроллером STM32. Немного поискал в инете, что уже сделано на нем. Вот нашел следующий проект... видимо уже на нем идет реализация умного дома. Не сочтите за рекламу, если кому интересно _http://hs4home.org_
Нашел на этом сайте плату с модулем BeagleBoneBlack правда нету фотки.
Хочу сделать свой полуумный дом, для это думаю приобрести девайсы на атмеге и стме и сравнить их.
прочитав эту ветку я заинтересовался контроллером STM32. Немного поискал в инете, что уже сделано на нем. Вот нашел следующий проект... видимо уже на нем идет реализация умного дома. Не сочтите за рекламу, если кому интересно _http://hs4home.org_
Нашел на этом сайте плату с модулем BeagleBoneBlack правда нету фотки.
Хочу сделать свой полуумный дом, для это думаю приобрести девайсы на атмеге и стме и сравнить их.
Re: Умный дом Ethernet + 1-Wire + Bootloader
А где схема устройства ?
Re: Умный дом Ethernet + 1-Wire + Bootloader
http://elinux.org/Beagleboard:BeagleBoneBlackGenok писал(а):А где схема устройства ?
Эта не подойдет?
-
- Сообщения: 7
- Зарегистрирован: 24 окт 2014, 17:43
Re: Умный дом Ethernet + 1-Wire + Bootloader
Насколько я понял на этом сайте есть 3 проекта
1. плата КСМ ... это плата управления основанная на микроконтроллере STM32F207 / STM32F407 / STM32F756 к этой плате можно подключить до 8 плат KRM в которой 8 реле и 16 входов. Схема http://hs4home.ddns.net:8090/pages/view ... d=24248391 этой платы
2. КВВ - плата управления на основе модуля BeagleBoneBlack к которой можно подключить до 8 плат KRM + какие-то входы и 16 отдельных каналов 1-wire. Схема http://hs4home.ddns.net:8090/display/CY ... re+KBB-EX8
3. плата с силовыми реле и входами КRM 8 реле 16А \220В + 16 входов сухой контакт с подавлением дребезга. Схема http://hs4home.ddns.net:8090/display/CY ... e+KRM-I8O8
Как написано на сайте плата KRM может работать в автономном режиме без управляющей платы, алгоритм задается прошивкой микросхемы XILINX. Это намного надежнее чем управление контроллером, но нет связи по Ethernet и внешнего управления через web. Сделал вывод исходя из схемы платы.
Что лучше выбрать в качестве управляющей платы каждый выбирает для себя сам
1. STM это ОС реального времени FreeRTOS. до 200МГц
2. BeagleBoneBlack - OC например ubuntu - простота настройки, программирования и т.д. 1ГГц
Как обещает разработчик к платам KCM и KBB можно подключать платы http://www.ebay.com/itm/16-Channel-5V-R ... 2a3eff741f через плату преобразователь SPI \ parallel ,но на сайте она не представлена.
а какие схемы еще Вам нужны?
Мне пока того, что представлено на сайте хватает. Разбираюсь как пользоваться микросхемой XILINX. Вступил в переписку с автором по поводу зачем она нужна и что с ней делать
Но сам факт, что к одной плате управления можно подключить до 8 плат с 8 реле, т.е. 64 реле и 128 выключателей меня очень радует.
1. плата КСМ ... это плата управления основанная на микроконтроллере STM32F207 / STM32F407 / STM32F756 к этой плате можно подключить до 8 плат KRM в которой 8 реле и 16 входов. Схема http://hs4home.ddns.net:8090/pages/view ... d=24248391 этой платы
2. КВВ - плата управления на основе модуля BeagleBoneBlack к которой можно подключить до 8 плат KRM + какие-то входы и 16 отдельных каналов 1-wire. Схема http://hs4home.ddns.net:8090/display/CY ... re+KBB-EX8
3. плата с силовыми реле и входами КRM 8 реле 16А \220В + 16 входов сухой контакт с подавлением дребезга. Схема http://hs4home.ddns.net:8090/display/CY ... e+KRM-I8O8
Как написано на сайте плата KRM может работать в автономном режиме без управляющей платы, алгоритм задается прошивкой микросхемы XILINX. Это намного надежнее чем управление контроллером, но нет связи по Ethernet и внешнего управления через web. Сделал вывод исходя из схемы платы.
Что лучше выбрать в качестве управляющей платы каждый выбирает для себя сам
1. STM это ОС реального времени FreeRTOS. до 200МГц
2. BeagleBoneBlack - OC например ubuntu - простота настройки, программирования и т.д. 1ГГц
Как обещает разработчик к платам KCM и KBB можно подключать платы http://www.ebay.com/itm/16-Channel-5V-R ... 2a3eff741f через плату преобразователь SPI \ parallel ,но на сайте она не представлена.
а какие схемы еще Вам нужны?
Мне пока того, что представлено на сайте хватает. Разбираюсь как пользоваться микросхемой XILINX. Вступил в переписку с автором по поводу зачем она нужна и что с ней делать
Но сам факт, что к одной плате управления можно подключить до 8 плат с 8 реле, т.е. 64 реле и 128 выключателей меня очень радует.
Re: Умный дом Ethernet + 1-Wire + Bootloader
XILINX программируемая логика
-
- Сообщения: 7
- Зарегистрирован: 24 окт 2014, 17:43
Re: Умный дом Ethernet + 1-Wire + Bootloader
Ну вообщем я разобрался, с Xilinx там все понятно, он собственно нужен для коммутации интерфейса SPI от STM32 на каждую плату подключенную к плате управления (KCM) через разъем (это происходит последовательно. Сначала STM обращается к плате с адресом 0, и пытается считать уникальный код, если удалось, то переходит к адресу 1 и т.д. если ответа не пришло, то считается, что к этому разъему ничего не подключено и больше не происходит никакого обращения по этому адресу ). Т.е. логика такая, STM по очереди переключает канал SPI к каждой подключенной плате и считывает \ передает ей состояние (и это все в бесконечном цикле). Все это выполняется под FreeRTOS. На плате с реле(KRM), тоже установлена микросхема XIlinx в которой реализован интерфейс SPI и есть регистры для хранения состояния платы. Автор сказал, что в этой микросхеме можно сделать любую логику связи входов и выходов. Т.е. от разных входов можно управлять одним реле (реализовать проходной выключатель) и самое главное в этом не участвует плата управления (ну если не нужно выводить состояние на веб интерфейс). Т.е. плата с входами и реле может работать автономно и реализовывать любую логику работы.
Разбираюсь дальше.
Разбираюсь дальше.
Bootloader
Коллеги!
Не могу запустить ethernet bootloader.
Железо использую arduino-совместимое: Atmega 328 c внешним кварцем на 16MHz. В работе проверено - с моей прошивкой исправно трудится и управляется по сети.
Собираю исходники с первого поста темы в avrstudio 4.19 и проект не стартует - led линк не загорается. Видимо собираю неправильно, т.к. размер получается всего 8 Кб - даже в область bootloader не попадает.
Пытаюсь прошить собраный Андреем для МегаД megad-boot_12.zip - при этом линк загорается, но sflasher не видит устройство. Пытался использовать скрипт megad-cfg.php - так же зависает в статусе "connecting.."
Использую hfuse: D8, lfuse: FF. Вроде все верно.
Прошу вас - дайте пожалуйста hex собранного bootloader'a. Или укажите пожалуйста на мои ошибки.
Не могу запустить ethernet bootloader.
Железо использую arduino-совместимое: Atmega 328 c внешним кварцем на 16MHz. В работе проверено - с моей прошивкой исправно трудится и управляется по сети.
Собираю исходники с первого поста темы в avrstudio 4.19 и проект не стартует - led линк не загорается. Видимо собираю неправильно, т.к. размер получается всего 8 Кб - даже в область bootloader не попадает.
Пытаюсь прошить собраный Андреем для МегаД megad-boot_12.zip - при этом линк загорается, но sflasher не видит устройство. Пытался использовать скрипт megad-cfg.php - так же зависает в статусе "connecting.."
Использую hfuse: D8, lfuse: FF. Вроде все верно.
Прошу вас - дайте пожалуйста hex собранного bootloader'a. Или укажите пожалуйста на мои ошибки.
-
- Сообщения: 142
- Зарегистрирован: 12 ноя 2013, 00:34
Re: Bootloader
Бут docsimus-а и Андрея - отличаются. А ошибка, скорее всего, стандартная - в оригинальных схемах обоих - 328-я тактируется от половинной частоты 28j60 (12,5МГц) а ардуина - либо от 16, либо от 8. Андрей исходники своего бута не выкладывал, на сколько я помню, а в docsimus-овских нужно правильно частоту выставить.select писал(а):Или укажите пожалуйста на мои ошибки.
Попробуй.
Re: Умный дом Ethernet + 1-Wire + Bootloader
shaman - спасибо.
Но не помогло. Не знаю уже на что грешить.
В исходниках частоту на 16 MHz менял. Не смог скомпилировать - я не разобрался как установить стартовый адрес прошивки.
Моя прошивка чудесно работает, поэтому железо исключаю.
Что делать? Как диагностировать? Может с фьзами что не так, хотя и перепроверил уже?
Но не помогло. Не знаю уже на что грешить.
В исходниках частоту на 16 MHz менял. Не смог скомпилировать - я не разобрался как установить стартовый адрес прошивки.
Моя прошивка чудесно работает, поэтому железо исключаю.
Что делать? Как диагностировать? Может с фьзами что не так, хотя и перепроверил уже?
Re: Умный дом Ethernet + 1-Wire + Bootloader
скорей всего бут попадает не туда куда нужно , в avrstudio поставьте стартовый адрес бутаСобираю исходники с первого поста темы в avrstudio 4.19 и проект не стартует
Re: Умный дом Ethernet + 1-Wire + Bootloader
Я тоже предполагаю что бут садится с нуля.
Как это сделать? Изменить стартовый адрес?
Как это сделать? Изменить стартовый адрес?
Re: Умный дом Ethernet + 1-Wire + Bootloader
бут должен писаться с адреса 0x3800 это в словах , или с 0x7000 в байтах в avrstudio на вкладке Project самый нижний пункт , откроется окно настройки проекта выберите Build , снимите галку с с Use External Makefile ,на вкладке Memory внизу memory segments поставьте 0x3800 вообщем вот сдесь http://www.avrportal.com/?page=avrnet все описано
Re: Умный дом Ethernet + 1-Wire + Bootloader
Дружище!
Ну подскажи еще чуть-чуть:
Делаю как в приведенной тобой ссылке: добавляю сегмент .text at 0x3800 и получаю сообщение от avrdude:
avrdude.exe: reading input file "D:\eth-bootloader\default\eth-bootloader.hex"
avrdude.exe: input file D:\eth-bootloader\default\eth-bootloader.hex auto detected as Intel Hex
avrdude.exe: ERROR: address 0x8010 out of range at line 257 of D:\eth-bootloader\default\eth-bootloader.hex
avrdude.exe: write to file 'D:\eth-bootloader\default\eth-bootloader.hex' failed
Где туплю? Или нужно добавлять не сегмент .text a .bootloader? Или оба?
Помоги?
Ну подскажи еще чуть-чуть:
Делаю как в приведенной тобой ссылке: добавляю сегмент .text at 0x3800 и получаю сообщение от avrdude:
avrdude.exe: reading input file "D:\eth-bootloader\default\eth-bootloader.hex"
avrdude.exe: input file D:\eth-bootloader\default\eth-bootloader.hex auto detected as Intel Hex
avrdude.exe: ERROR: address 0x8010 out of range at line 257 of D:\eth-bootloader\default\eth-bootloader.hex
avrdude.exe: write to file 'D:\eth-bootloader\default\eth-bootloader.hex' failed
Где туплю? Или нужно добавлять не сегмент .text a .bootloader? Или оба?
Помоги?
Re: Умный дом Ethernet + 1-Wire + Bootloader
видимо он хочет сказать что адрес находится вне диапазона памяти иными словами не влазит она , попробуй включить оптимизацию по размеруavrdude.exe: ERROR: address 0x8010 out of range at line 257 of D:\eth-bootloader\default\eth-bootloader.hex
нет не надо там написано что тип памяти Flash .text -секция кода , разместить по указанному адресуГде туплю? Или нужно добавлять не сегмент .text a .bootloader? Или оба?
Re: Умный дом Ethernet + 1-Wire + Bootloader
Похоже ты прав - просто не влезает в память. Вот лог компиляции:
Build started 31.10.2014 at 21:40:20
avr-gcc -mmcu=atmega328p -Wall -gdwarf-2 -std=gnu99 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT main.o -MF dep/main.o.d -c ../main.c
avr-gcc -mmcu=atmega328p -Wall -gdwarf-2 -std=gnu99 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT enc28j60.o -MF dep/enc28j60.o.d -c ../enc28j60.c
avr-gcc -mmcu=atmega328p -Wall -gdwarf-2 -std=gnu99 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT ip_arp_udp_tcp.o -MF dep/ip_arp_udp_tcp.o.d -c ../ip_arp_udp_tcp.c
avr-gcc -mmcu=atmega328p -Wall -gdwarf-2 -std=gnu99 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT websrv_help_functions.o -MF dep/websrv_help_functions.o.d -c ../websrv_hel
p_functions.c
avr-gcc -mmcu=atmega328p -Wl,--defsym=__stack=0x800 -Wl,-Map=eth-bootloader.map -Wl,-section-start=.text=0x7000 main.o enc28j60.o ip_arp_udp_tcp.o websrv_help_functions.o -o eth-bootloader.elf
avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature eth-bootloader.elf eth-bootloader.hex
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 --no-change-warnings -O ihex eth-bootloader.elf eth-bootloader.eep || exit 0
avr-objdump -h -S eth-bootloader.elf > eth-bootloader.lss
ђҐ¦Ё¬ ўлў®¤ Є®¬ ¤ нЄа (ECHO) ®вЄ«озҐ.
AVR Memory Usage
----------------
Device: atmega328p
Program: 8016 bytes (24.5% Full)
(.text + .data + .bootloader)
Data: 1100 bytes (53.7% Full)
(.data + .bss + .noinit)
Build succeeded with 0 Warnings...
Ключевая тема: Program: 8016 bytes (24.5% Full)
В 2К boot-секцию никак не войдет! В опции компилятора стоит оптимизация -Os. Где еще мог накосячить?
Build started 31.10.2014 at 21:40:20
avr-gcc -mmcu=atmega328p -Wall -gdwarf-2 -std=gnu99 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT main.o -MF dep/main.o.d -c ../main.c
avr-gcc -mmcu=atmega328p -Wall -gdwarf-2 -std=gnu99 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT enc28j60.o -MF dep/enc28j60.o.d -c ../enc28j60.c
avr-gcc -mmcu=atmega328p -Wall -gdwarf-2 -std=gnu99 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT ip_arp_udp_tcp.o -MF dep/ip_arp_udp_tcp.o.d -c ../ip_arp_udp_tcp.c
avr-gcc -mmcu=atmega328p -Wall -gdwarf-2 -std=gnu99 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT websrv_help_functions.o -MF dep/websrv_help_functions.o.d -c ../websrv_hel
p_functions.c
avr-gcc -mmcu=atmega328p -Wl,--defsym=__stack=0x800 -Wl,-Map=eth-bootloader.map -Wl,-section-start=.text=0x7000 main.o enc28j60.o ip_arp_udp_tcp.o websrv_help_functions.o -o eth-bootloader.elf
avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature eth-bootloader.elf eth-bootloader.hex
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 --no-change-warnings -O ihex eth-bootloader.elf eth-bootloader.eep || exit 0
avr-objdump -h -S eth-bootloader.elf > eth-bootloader.lss
ђҐ¦Ё¬ ўлў®¤ Є®¬ ¤ нЄа (ECHO) ®вЄ«озҐ.
AVR Memory Usage
----------------
Device: atmega328p
Program: 8016 bytes (24.5% Full)
(.text + .data + .bootloader)
Data: 1100 bytes (53.7% Full)
(.data + .bss + .noinit)
Build succeeded with 0 Warnings...
Ключевая тема: Program: 8016 bytes (24.5% Full)
В 2К boot-секцию никак не войдет! В опции компилятора стоит оптимизация -Os. Где еще мог накосячить?
Re: Умный дом Ethernet + 1-Wire + Bootloader
А кто тебе сказал что там 2 кило нет брат твой размер бута 4 килоВ 2К boot-секцию никак не войдет! В опции компилятора стоит оптимизация -Os. Где еще мог накосячить?
Re: Умный дом Ethernet + 1-Wire + Bootloader
2килоСЛОВ. А скомпилированный образ - 8016 bytes.
Дудка потому и ругается - что хвост не влазит. Что я неправильно делаю?
Я уж от отчаяния скомпилил с 0 и отключил бут вообще. Надеялся, что хоть так заработает - даже линк не горит.
Дудка потому и ругается - что хвост не влазит. Что я неправильно делаю?
Я уж от отчаяния скомпилил с 0 и отключил бут вообще. Надеялся, что хоть так заработает - даже линк не горит.