Архив на категория: Hardware

Arduino Uno R3 USB захранване + външно захранване = повреден Atmega16U2-MUR

Ако някога решите да си купите Arduino Uno R3 ,Mega R3 то НИКОГА не подавайте едновременно захранване от USB-то и от външен източник. Резултатите могат да бъдат:

1. Повреда в USB контролера (Atmega16U2 ) – Ардуино просто спира да се разпознава от компютъра.

2. Повреден операционен усилвател LMV358IDGKR

3. Повреден MOSFET управляващ превключването между USB захранване и външно.

Ако консумацията вие под 500mA използвайте USB-то като източник на захранване, а над 500mA променете начина на захранване на Arduino за да нямате излишни разходи :)

 

 

 

Едноплатков компютър OLinuXino (произведен в България)

Това е един компютър базиран на процесора i.MX233 (ARM926J processor at 454Mhz).

Целия проект е Open Source и всичко може да се намери в git хранилището на GITHUB.

Ще разгледаме Maxi версията. Тя е със следните характеристики:

  • iMX233 ARM926J processor at 454Mhz
  • 64 MB RAM
  • SD-card connector for booting the Linux image
  • TV PAL/NTSC video output
  • 2 USB High Speed Hosts
  • Ethernet 100 Mbit
  • Stereo Audio Input
  • Stereo Headphones Audio Output
  • two Buttons
  • UEXT connector for connection of different peripherial modules
  • 40 pin GPIO for connection of other hardware
  • Board is in shape for fit inside Pactec JM42 plastic box http://www.pactecenclosures.com/pdfs/drw_JM-42.pdf

Какво повече му трябва да на човек ;) Има достатъчно GPIО-та за каквото ни хареса :)  Идеално за home automation.

За сега толкова ;)

 

TP-Link TL-WR941ND VER 2.0 unbrick след флашване с грешен firmware.

Наложи ми се да правя възстановяване този рутер след като го бяха префлашнали с firmware за хардуерна версия 4 :)

За да започне възстановяването трябва първо да си осигурим достъп до рутера различен от ethernet. А в случая това е по сериен порт (RS-232).

А за да стане това ще трябва да разглобим рутер (АКО РУТЕРА ВИ Е В ГАРАНЦИЯ ТЯ АВТОМАТИЧНО ОТПАДА!)

Сваляме 3-те антени.  След това …

Разглобяването става като първо разлепим задните крачета на рутера  и там има 2 болта и след това в предната част има 3 пластмасови щифта, които трябва да „отключим“ като с нещо пластмасово ( може и с нещо метално, но по-добре пластмаса за да не нараним рутера. )  ги натиснем от долната страна.

След като вече сме свалили горния капак на рутера е време да изключим(внимателно)  трите pigtail-а ( Това са екраните кабели, които правят връзката между платката и конекторите за антените).

Готови сме и с тази процедура :) Сега ще трябва да запоим двойна щифтова рейка за да ни е по-лесно и да не се налага да запояваме директно кабелите на рутера.
Рейка TP-Link TL-WR941ND

Запоили сме вече рейката и ще трябва да направим още някои връзки … Ще трябва да направим и две „мостчета“ за да имаме работещ сериен порт на рутера. Местата където трябва да направим тези мостчета са R355 и R356…

И това сме изпълнили :) Следва да свържем серийния порт на рутера към серийния порт на компютъра посредством преобразувател на нивата изпълен с MAX232 (примерно като този ) .

Но за да го свържем трябва да знаем разположението на RX,TX,GND:

Както се вижда на снимката RX = pin-2, TX = pin-3 GND = pin-5 … Съответно RX на рутера отива към RX(примерно 9pin)  на MAX232 и TX на рутера отива към TX(примерно 10pin) отново на MAX232  и накрая GND(Ground или масата) към масата на нашия преобразувател.

Сега е време да пробваме да установим връзка между рутера и компютъра ни. Но да вметна, че е ПРЕПОРЪЧИТЕЛНО компютъра, с които ще правим връзка и адаптера на рутера да са в един и същ разклонител, за да нямаме случайно проблеми с разлика в потенциалите и да повредим някои от серийните портове (Разбира се това не важи, ако ползваме галванично развързан конвертор.)

Сега трябва да си свалим putty ( аз го предпочитам пред hyperterminal-а на Windows(ако сме на Windows де :), ако  е Linux minicom примерно или отново putty) 

Свалихме го :) Сега трябва да му окажем на кои COM ще се връзваме и скоростта на връзката. В нашия случай тя е COM1 и скорост 115200 (115200bps, Data bits 8, Stop bits 1, Parity: None, Flow Control: None)

На различни места четох, че за U-Boot скоростта била 9600, но при мен всичко си върви на 115200.

Направи ли сме конфигурацията на putty-то и е вече, трябва да пробваме да установим връзка с рутера.

А за да стане правим следното.

1. Проверяваме дали всичко е свързано между компютъра и рутера( серийната връзка).

2. Изключили сме захранването на рутера от буксата.

3. Конфигурирали сме си putty-то както е показано и написано по-горе.

4. Кликаме върху Open …. Ще се появи един черен екран ….

5. Включваме захранването на рутера ….

И в прозореца трябва видим ….

 

U-Boot 1.1.4 (Jan 19 2008 – 10:42:07)

AP81 (ar7100) U-boot
DRAM:
sri
32 MB
id read 0x100000ff
flash size 8MB, sector count = 128
Flash:  8 MB
Using default environment

In:    serial
Out:   serial
Err:   serial
Net:   ag7100_enet_initialize…
Fetching MAC Address from 0x81fef100
eth0: 00:03:7f:e0:01:81
eth0 up
eth0
Hit any key to stop autoboot:  0
ar7100>

Както се вижда по-горе това bootloader-a на нашия рутер :) И за да влезнем в самия bootloader е необходимо да натиснем, които и да е клавиш (Hit any key to stop autoboot:  0), но различните версии на U-boot е необходимо да се изпълнят разлини натискания на бутоните …. Примерно за по-новата версия на U-boot е като се напише „tpl“ (без кавичките).

До тук добре :) Време е за съществената работа. И по-точно да „налеем“ верния firmware на рутера ;)

Нека първо видим текущите конфигурации на мрежата и всичко останало …

Пишем в конзолата

ar7100> printenv

И тя ни връща ….

bootargs=console=ttyS0,115200 root=31:02 rootfstype=jffs2 init=/sbin/init mtdparts=ar7100-nor0:256k(u-boot),64k(u-boot-env),5120k(rootfs),1024k(uImage)
bootcmd=bootm 0xbf020000
bootdelay=1
baudrate=115200
ethaddr=0x00:0xaa:0xbb:0xcc:0xdd:0xee
ipaddr=192.168.1.10
serverip=192.168.1.169
stdin=serial
stdout=serial
stderr=serial
ethact=eth0

Environment size: 339/65532 bytes

 Това са настройките по подразбиране …. Ще внеса малко пояснение ….

> ipaddr=192.168.1.10 = Това е IP адреса на нашия рутер

> serverip=192.168.1.169 = Това е IP адреса, които трябва да има нашия tftp сървър.

> ethact=eth0 = Това е интерфейса през, които ще си говорят … В случая това е WAN порт-а … (поне при мен де) …

Ако искаме да сменим IP адреса на рутера и (или) tftp сървър-а трябва да използваме тази команда…

 setenv serverip 192.168.18.254; setenv ipaddr 192.168.18.1 

И за да проверим дали са приети промените отново пишем printenv

До тук сме ОК с настройката на мрежата от едната страна … Сега е ред на другата ( В нашия случай Windows-а … XP … ) Ще трябва да си свалим:

  1. TFTP сървър ( по възможност лесен за работа) . Аз съм си избрал tftpd32. Сваляме си ( tftpd32 standard edition (zip) ). По някаква странна причина NOD32 се обади, че това било вирус … Но аз не му повярвах и затова по време на тази процедура го изключих. Разархивирах го и файловете от архива ги сложих директно в C:\  (за по-лесно ) :) Стартираме го :) Ако случайно ти попита дали да го разрешим във firewall му разрешаваме. ( за да може да си отвори неговия порт 69 ) Съответно от падащото меню ще трябва да измерем и на кое IP да работи…. Не мисля да влизам в повече подробности, защото е този TFTP сървър е максимално опростен.

  2. Правилния firmware за нашия рутер.  А него може да го намерим на сайта на производителя…. Ето директен линк тук (TP-Link TL-WR941ND VER 2.0) Сваляме последния наличен от 09/06/2010 … След разархивиране вътре имаме файл… wr941nv2_en_3_11_8_up(100609).bin (аз предлагам да го преименуваме на wr941nv2_en_3_11_8_up.bin за да си нямаме излишни проблеми със скобите в конзолата) Също така нямаме думичката boot в името на  firmware и няма да ни се налага да правим допълнителни неща, които можем да прочетем тук, ако имаме тази думичка :)

След като вече сме преименували файла както описах по-горе може да го копираме в C:\

3. Свързваме компютъра и рутер посредством стандартен ethernet кабел… ( прав. )  PC ethernet карта към WAN порт-а на рутера. В състояние при, което е U-boot, трябва да сме линкнати. ( Или друго казано да не ни дава, разкачена мрежа.)

 

4. Време е да налеем firmware :)  При мен съм настройл всичко да е както е по подразбиране на рутера. Затова няма да сменям IP адрес на сървъра и рутера.

Ще изпълня командата tftp 0x80800000 wr941nv2_en_3_11_8_up.bin

И тя трябва да ни върне:

ar7100> tftp 0x80800000 wr941nv2_en_3_11_8_up.bin
dup 1 speed 100
Using eth0 device
TFTP from server 192.168.1.169; our IP address is 192.168.1.10
Filename ‘wr941nv2_en_3_11_8_up.bin’.
Load address: 0x80800000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         ######################################################
done
Bytes transferred = 3932160 (3c0000 hex)

До тук всичко е добре :) заредихме го в паммета :) Сега трябва изтрием старите неща от рутера ;)

Командата е: erase 0xbf020000 +0x3c0000

И изглежда така…

ar7100> erase 0xbf020000 +0x3c0000

First 0x2 last 0x3d sector size 0x10000                                       61
Erased 60 sectors

Всичко е супер :) Изтрихме каквото ни беше нужно :) Сега трябва да копираме от RAM-а в флаша :)

Това става с командата: cp.b 0x80800000 0xbf020000 0x3c0000

И то изглежда ….

ar7100> cp.b 0x80800000 0xbf020000 0x3c0000
Copy to Flash… write addr: bf020000
done

И накрая трябва да го рестартираме за да видим дали ще зареди :)

И за да го направим пишем: reset

ar7100>reset

Лога от зареждането на  boot-TP-Link_TL-WR941ND …..

Може и локално през серииния порт да влезнем в firmware като използваме username: ap71

Ако ли не можем да прехвърлим кабела на някои от LAN портовете и да се логнем през WEB на http://192.168.1.1 с username: admin и password: admin ….

 Ами в общи линии е това :)  Всичко си е на ВАША ОТГОВОРСНОСТ!!!

Ако имате забележки пишете :)

Иначе рутерчето е изпълнено с:

Процесор: Atheros AR9132-AC1E

Флаш: 25P32V6P = 4MB (мегабайта)

RAM Памет: Hynix HY50U561622ETP-5 = 32MB

Мрежови контролер: Marvell 88E6060-RCJ1

Това е то.