He no tak zaś mam głupie pomysły:)
>>> Kilka słów o WIRINGŚrodowisko Wiring IDE powstało dużo wcześniej niż Arduino.
powstało ono w celu ułatwienia pracy z dużymi Atmegami
jak ATMemga 1281/2560 i 128. Środowisko to nie zyskało
dużej popularności , a uproszczona wersja dla małych atmeg
Arduino bije rekordy popularności.
Wiring można pobrać ze strony:
http://wiring.org.co/download/>>> SprzętJakiś czas temu wpadła mi w ręce PCB do ATMega128
w sumie mało przemyślana , ale ciekawa:
Na pokładzie:Procesor: ATmega 128 @ 16Mhz
RTC: DS1337
EXP: 2x PCF8574
EEPROM: 24C1024
Slot SD/MMC
RS232
i oczywiście FT232R
jest jeszcze miejsce na zewnetrzny SRAM 128K , ale w tym miejscu nie jest nam potrzebny
Zapewne kolega Kierlan Poznaje PCB:)
>>> MODYFIKACJE Sprzętowe i Programowe --->konieczneW związku z tym iż FT232 jest podłączony w 1% używalności czyli tylko jako USB-RS232 do UART0 atmegi
Oryginalnego bootloadera WiringS lub Wirining v1.1 nie da się użyć , z tego powodu że lutowanie się do wyprowadzeń FT232R jest mało przyjemne - i niestety niema padów od nieużytych pinów wiec nici
z układu AUTORESET -- a to uniemożliwia wgranie firmware. W tym Celu zostały wprowadzone
drobne modyfikacje sprzętowe i programowe.
1. HARDWARE
W związku z brakiem autoresetu wymyśliłem, że wygodny będzie przycisk który pozwala
na wejście w tryb bootloadera oraz jakaś dioda która będzie o tym informować
-- zatem jedziemydiodę podłączamy do PG0 atmegi128 -- jest sterowana stanem WYSOKIM
przycisk natomiast podłączony jest przez zewnętrzny PUL-UP 10K do pinu PE2
Aktywacja Bootloadera jest wywoływana stanem NISKIM
No dobra teraz bootloader
w komplecie z Wiring mamy źródła bootloadera wiec możemy zając się modyfikacjami
Bootloader Wiring podobnie jak ARDUINO oparty jest o bootloader ATMELA
zgodny ze standardem transmisji STK500 --- niestety nie zdał egzaminu -- nie zawsze
się łączył z IDE i były błędy transmisji spowodowane kłopotliwą inicjalizacją połączenia
w związku z czym napisałem bootloader praktycznie można powiedzieć od nowa ,
ale tym razem postawiłem na lepszy protokół transmisji mianowicie STK500v2.
Spowodowane jest to tym ze łatwiejsza jest inicjalizacja i sam sposób przesyłania danych
dodatkowo jest szybszy od STK500:)
Na wszelki wypadek zrobiłem 2 wersje bootloadera:
1. jest aktywowana resetem po czym oczekuje ok 8s na transmisje, po tym czasie przechodzi
do programu.
-- niestety ma to rozwiązanie swoje wady
i dlatego rozwiązanie z przyciskiem jest lepsze i na nim się skupimy mamy już wykonane przeróbki sprzętowe
wiec to będzie idealne rozwiązanie:
działa to tak:
naciskamy przycisk Bootloadera I jednocześnie reset zaświeca się dioda PG0 informująca
o uruchomieniu Bootloadera, teraz możemy wgrać program ze środowiska WIRING , po czym
naciskamy reset i nasz program jest wykonywany.
Oba Bootloadery w załączniku.
>>> PRZYGOTOWANIE PROCESORA DO PRACY:aby prawidłowo wszystko nam działało musimy wgrać bootloader do procesora np przy pomocy
MkAVrCalculator i ustawić odpowiednie fusy :
EXTENDED: 0xFF
HI Fuse: 0xCC
LO Fuse: 0x3f
dla masochistów
Boot Flash size 1024 words : BOOTSZ=10
Boot Reset vector enable : BOOTRST=0
CKOPT=0
BOD at 4.0V, : BODLEVEL=0
BOD enable : BODEN=0
Ext. crystal/resonator High Freq.; Start-up time 16K CLK + 64ms. : CKSEL=1111 SUT=11
Watchdog disable: WDTON=0
OCD disable: OCDEN=0
JTAG disable: JTAGEN=0
SPIEN enable: SPIEN=0
Po tym zabiegu potrzeba jeszcze pliki zgodności bo nasza płytka nie będzie działać w środowisku wiring
gdyż bootloader nie jest zgody z Wiring v1.0 (protokół - STK500) oraz Wiring Mini update2 (protokół - wiring)
nasz pracuje w trybie STK500v2
w tym celu do naszego Wiring 1.0 do folderu hardware wgrywamy folder Sunduino wraz z wszystkimi plikami
dostosowanymi do naszej płytki - w załączniku
----------------------------------------------------------------------------------------------------------------------------------------
Jeśli wszystko przebiegnie prawidłowo będziemy mogli wybrać naszą płytkę
i zacząć programowanie w środowisku wiring IDE - język C++ (ten sam użyty jest w Arduino)
Filmik przedstawiający działanie na przykładzie programiku LEDBlink
Dioda podłączona do Digital9 ,
Widać przejście do bootloadera - sygnalizowane zaświeceniem się zielonej diody LED na PG0(po prawej stronie, proces ładowania firmware i uruchomienie programu po resecie (czerwona dioda po prawej stronie)
1. delay (1000)
2. delay(100)
http://www.youtube.com/watch?v=t8FPN7Q5g8IPrzepraszam za jakość , ale moja LIveCam już trochę stara jest