2010. március 14., vasárnap

T6CC képek

Itt a második módosított példány.


2010. február 14., vasárnap

Kész az alap kártya

Tegnap délután befóliáztam a kártyát. Már használható repülős beállításokhoz. Előtte kiderült, hogy az LCD_RESET nem a megfelelő helyre lett konfigurálva. A hibát kijavítottam.
Videó: http://www.youtube.com/watch?v=5zSGVaPmMzY

2010. február 7., vasárnap

T6CC hírek - File menü

A "File" menü bővült a "PC Connection" menüponttal. Ezt kiválasztva Megjelenik a képernyő legfelső sorában a "PC Connection" szöveg. :) Be kell a kártyába dugni az USB kábelt és a PC-n futó kedvenc programmal (t6config, turborix) betölteni vagy kiolvasni a konfigurációs adatot. Használata nagyon egyszerű. :)

T6CC hírek

Már csak nagyon apró finomítások maradtak hátra és a dobozolás.
A "Mixers" menü megjelenését kell még finomítani.
A "File" menü is kialakult, tartalmaz "Get", "Put", "Save", "Load" funkciókat. A PC kapcsolatot úgy gondoltam, hogy egy menüpont aktiválná. Ekkor a PC-n futó valamelyik konfiguráló (t6config, turborix) program "Get", illetve "Put" funkciójával lehetne betölteni, illetve kiolvasni a PC-ről a konfigurációt. Így a beállítások egyszerűen menthetőek PC-re fájlba, illetve onnan a kártyába.

A hardver-en is módosításokat kell végrehajtani:
Felcserélni az első tervhez képest a Tx, Rx pontokat. 2db felhúzó ellenállás az SDA, SCK vonalakra, ha a hardver I2C (TWI) funkció lenne használva. Ha szoftveresen is belefér, valószínű, hogy elég a két portlábon levő felhúzó ellenállás.
A tápellátást vagy egy speciális kábellel vagy az adatvonalról lehetne esetleg megoldani PC kapcsolatnál. Az én USB kábelem 3,3V-os jelszintekkel dolgozik, míg a rádió 5V-os jelszintekkel.

2010. február 4., csütörtök

Kész a "Put" és "Get"

A "Put" küldi el a rádiónak a konfigurációs adatot. A "Get" lekéri.
Jöhet az EEPROM beforrasztása és az ezt kezelő részek megírása.

A menürendszeren még dolgozni kell. Nem magával a menüvel van a gond, hanem az a cél, hogy a képernyőn megjelenő adatokat véletlenszerűen el lehessen helyezni és módosítani azokat.

Az adat lekérésekor és betöltésekor a szervók rándulnak egyet. Ez a rándulás kis mértékű. Bizonyos PC-s programok többször is kiküldhetik ezt az adatot, ekkor fordul elő több rándulás - mint pl. a Turborix programnál, ami háromszor küldi ki, így háromszor rándulnak a szervók.

Érdemes lehet a betöltött adatot visszakérdezni és összehasonlítani, hogy valóban szinkronban maradt -e a programozó kártyában levő adat és a távirányítóban levő adat.

2010. február 1., hétfő

T6CC 8-as menü

Működik a soros kommunikáció. Eddig a PC-vel teszteltem. Egyelőre még csak venni és küldeni tudja a string-et. Jó a checksum számítás is.
Szinte csak a több oszlopos módosítás maradt hátra.
Kellesz írni egy univerzálisabb menürendszert.

2010. január 31., vasárnap

T6CC majdnem kész

A nagy része kész. Meg kellett változtatni a menü kezelését. Az alsó gomb (régen OK) SELECT gomb lett, ezzel lehet léptetni lefelé a kijelölő csíkot. A középső gomb (DOWN) új funkciót kapott. Ezzel lehet belépni a kiválasztott menübe. A felső gomb maradt UP gomb. Ha értékre állunk, a FEL/LE (UP/DOWN) gombokkal lehet az értéket növelni vagy csökkenteni.
Jelenleg kb. 5,5kbyte a program.

1. Model/Stick
Az 1,2,5,7-es menük telje mértékben funkcionálnak.

A 6-os menü részben. A kapcsolókat ki lehet választani, illetve a forrás->cél csatornákat, de itt még nincs védelem nem használt értékek ellen. A mixelés mértékét nem lehet változtatni.

A 3,4 menü csak az értékeket mutatja, változtatni nem lehet.

A 8-as menü még nincs kész. Itt lesznek a modellmemóriával kapcsolatos műveletek.








2010. január 30., szombat

T6CC Főmenü

T6CC előnézet

Kb. így fog kinézni.

Hátulnézetből.

2010. január 29., péntek

T6CC

Pár kép a készülő panelről. Már benne van a csatlakozó és a kvarc.




..................................................................................................................



Definíciók:
/*

Buttons
| UP |
|DOWN |
|ENTER|

1. Model Type
2. Stick configuration
3. Reverse
4. Dual Rate
5. EPA
6. Subtrim
7. Mixers
8. Switches
9. Write Settings


1. Exit
1. Acro
2. H-120
3. H-90
4. H-140

2. Exit
1. Mode-1
2. Mode-2
3. Mode-3
4. Mode-4

3. Exit
CH1 ->
CH2 ->
CH3 <-
CH4 <-
CH5 ->
CH6 ->

4. Exit
CH1 0: 80 1: 100
CH2 0: 90 1: 120
CH4 0: 64 1: 100
CH5 0: 50 1: 110
CH6 0: 50 1: 100

5. Exit
CH1 <- 100 100 ->
CH2 <- 100 90 ->
CH3 <- 50 50 ->
CH4 <- 100 100 ->
CH5 <- 100 100 ->
CH6 <- 100 100 ->

6. Exit
CH1: 0
CH2: 3
CH3: -10
CH4: 8
CH5: 0
CH6: 0

7. Exit
Mixer 1 SWITCH A
CH1 -> CH2 100
Mixer 2 SWITCH A
CH2 -> CH1 -100
Mixer 3 OFF
CH4 -> CH5 0

8. Exit
SWITCH A: NULL
SWITCH B: Dual Rate

*/

#define MODEL_STICK_CONFIGURATION 2
#define MODE1 0x00
#define MODE2 0x10
#define MODE3 0x20
#define MODE4 0x30
#define ACRO 0x00
#define H_120 0x02
#define H_90 0x03
#define H_140 0x04

#define REVERSE_BITS 3

#define CH1_DualRate_ON_value 4 // -> 0..100%
#define CH1_DualRate_OFF_value 5 // -> 0..100%
#define CH2_DualRate_ON_value 6 // -> 0..100%
#define CH2_DualRate_OFF_value 7 // -> 0..100%
#define CH4_DualRate_ON_value 8 // -> 0..100%
#define CH4_DualRate_OFF_value 9 // -> 0..100%

#define Swash_AFR_CH1 10 // -> -100..+100 (two's > 0x9c..0x64)
#define Swash_AFR_CH2 11 // -> -100..+100 (two's > 0x9c..0x64)
#define Swash_AFR_CH6 12 // -> -100..+100 (two's > 0x9c..0x64)

#define CH1_Endpoint_1 13 // -> 0..120%
#define CH1_Endpoint_2 14 // -> 0..120%
#define CH2_Endpoint_1 15 // -> 0..120%
#define CH2_Endpoint_2 16 // -> 0..120%
#define CH3_Endpoint_1 17 // -> 0..120%
#define CH3_Endpoint_2 18 // -> 0..120%
#define CH4_Endpoint_1 19 // -> 0..120%
#define CH4_Endpoint_2 20 // -> 0..120%
#define CH5_Endpoint_1 21 // -> 0..120%
#define CH5_Endpoint_2 22 // -> 0..120%
#define CH6_Endpoint_1 23 // -> 0..120%
#define CH6_Endpoint_2 24 // -> 0..120%

#define Throttle_Curve_EP0_NORMAL 25 // -> 0..100%
#define Throttle_Curve_EP0_ID 26 // -> 0..100%
#define Throttle_Curve_EP1_NORMAL 27 // -> 0..100%
#define Throttle_Curve_EP1_ID 28 // -> 0..100%
#define Throttle_Curve_EP2_NORMAL 29 // -> 0..100%
#define Throttle_Curve_EP2_ID 30 // -> 0..100%
#define Throttle_Curve_EP3_NORMAL 31 // -> 0..100%
#define Throttle_Curve_EP3_ID 32 // -> 0..100%
#define Throttle_Curve_EP4_NORMAL 33 // -> 0..100%
#define Throttle_Curve_EP4_ID 34 // -> 0..100%

#define Pitch_Curve_EP0_NORMAL 35 // -> 0..100%
#define Pitch_Curve_EP0_ID 36 // -> 0..100%
#define Pitch_Curve_EP1_NORMAL 37 // -> 0..100%
#define Pitch_Curve_EP1_ID 38 // -> 0..100%
#define Pitch_Curve_EP2_NORMAL 39 // -> 0..100%
#define Pitch_Curve_EP2_ID 40 // -> 0..100%
#define Pitch_Curve_EP3_NORMAL 41 // -> 0..100%
#define Pitch_Curve_EP3_ID 42 // -> 0..100%
#define Pitch_Curve_EP4_NORMAL 43 // -> 0..100%
#define Pitch_Curve_EP4_ID 44 // -> 0..100%

#define CH1_SubTrim 45 // -> -120..+120 (two's > 0x88 - 0x78 )
#define CH2_SubTrim 46 // -> -120..+120 (two's > 0x88 - 0x78 )
#define CH3_SubTrim 47 // -> -120..+120 (two's > 0x88 - 0x78 )
#define CH4_SubTrim 48 // -> -120..+120 (two's > 0x88 - 0x78 )
#define CH5_SubTrim 49 // -> -120..+120 (two's > 0x88 - 0x78 )
#define CH6_SubTrim 50 // -> -120..+120 (two's > 0x88 - 0x78 )

#define Mixer1src_dest 51 // -> low_nib=dest. high_nib=src. Value : 0..5=ch1..ch6 (6..7=VRA..VRB >source only)
#define Mixer1UpRate 52 // -> -100..+100 (two's complement format > 0x9c..0x64)
#define Mixer1DownRate 53 // -> -100..+100 (two's complement format > 0x9c..0x64)
#define Mixer1switch 54 // -> 0=SWA 1=SWB 2=ON 3=OFF
#define Mixer2src_dest 55 // -> low_nib=dest. high_nib=src. Value : 0..5=ch1..ch6 (6..7=VRA..VRB >source only)
#define Mixer2UpRate 56 // -> -100..+100 (two's complement format > 0x9c..0x64)
#define Mixer2DownRate 57 // -> -100..+100 (two's complement format > 0x9c..0x64)
#define Mixer2switch 58 // -> 0=SWA 1=SWB 2=ON 3=OFF
#define Mixer3src_dest 59 // -> low_nib=dest. high_nib=src. Value : 0..5=ch1..ch6 (6..7=VRA..VRB >source only)
#define Mixer3Up_Rate 60 // -> -100..+100 (two's complement format > 0x9c..0x64)
#define Mixer3DownRate 61 // -> -100..+100 (two's complement format > 0x9c..0x64)
#define Mixer3switch 62 // -> 0=SWA 1=SWB 2=ON 3=OFF

#define Switch_A-function_select 63 // -> 0=NULL 1=DualRate 2=throttlecutoff 3=NORMAL/ID
#define Switch_B_function_select 64 // -> 0=NULL 1=DualRate 2=throttlecutoff 3=NORMAL/ID

#define Variable_A_function_select 65 // -> 0=NULL 1=pitajdust
#define Variable_B_function_select 66 // -> 0=NULL 1=pitajdust

#define Checksum_High_Byte 67 // -> sum(byte2..byte66) / 256
#define Checksum_Low_Byte 68 // -> sum(byte2..byte66) mod 256

T6 Config Card

T6ConfigCard

Mi ez?
Ez egy kis kártya méretű panel, ami HK-T6A. Turborix vagy hasonló modelltávirányítóhoz csatlakoztatva lehetővé teszi annak számítógép nélküli beállítását.

Jellemzők:

- több mint 500 modellmemória 64K EEPROM-nál,
- PC kapcsolat. PC-n futó t6config vagy turborix programmal be lehet tölteni a beállításokat egy tetszóleges modellmemóriába.
- 1db S-VIDEO aljzat a távirányítóval és a PC-vel való kapcsolathoz,
- meg még csupa jó dolog. :)

Főbb egységek: Nokia 3410 vagy hasonló LCD, 3db nyomógomb, Atmega8 uC, 16MHz kvarc, 24FC512 vagy hasonló memória, a NYÁK, ami összetartja. :)

Memória térkép:
Egy modell beállításai kb. 69 bytehelyet foglalnak el. Így legyen egy modell memóriája 128 byte.
Az első 128 byte-ot valószínűleg fenntartom valamire. Lehet a memória utolsó részében is fogok valamit tárolni (képek, stb.).
|69 byte modell adatok|16byte név|2byte sorszám|41 byte valami|
A sorrend és méretek változhatnak.

Nyomógombok:
"fel", "le", "ok"