RoboBus.RU спецификация шины MiniBot'а

Re: RoboBus.RU спецификация шины MiniBot'а

Сообщение blindman » 24 сен 2008, 10:29

Если по уарту с мегой88 связь - тогда да.
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: RoboBus.RU спецификация шины MiniBot'а

Сообщение EdGull » 24 сен 2008, 10:29

Вот так

ну!... эт легко!... :Yahoo!:
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: RoboBus.RU спецификация шины MiniBot'а

Сообщение =DeaD= » 24 сен 2008, 10:48

2blindman: А как там прошивка поживает для радиомоста? А то может тоже взять себе радиомодули, да на пару с тобой её делать? Очень уж хочется иметь такой модуль готовый...
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: RoboBus.RU спецификация шины MiniBot'а

Сообщение EdGull » 24 сен 2008, 11:00

вот код которым мы проверяем мегаплатки

приемник:

Код: Выделить всё
'$prog &HFF , &HEF , &HD9 , &H00                             ' generated. Take care that the chip supports all fuse bytes.
'$prog &HFF , &HE4 , &HD9 , &H00                             ' generated. Take care that the chip supports all fuse bytes.
'27mhz 250kbps

$regfile = "m88DEF.dat"
$baud = 19200
'$baud = 4800
$crystal = 8000000

Config Pinb.5 = Output : Zb_sck Alias Portb.5 : Zb_sck = 0
Config Pinb.3 = Output : Zb_mosi Alias Portb.3 : Zb_mosi = 0
'Config Pind.5 = Output : Zb_cs Alias Portd.5 : Zb_cs = 1
Config Pinb.1 = Output : Zb_cs Alias Portb.1 : Zb_cs = 1

Config Pind.2 = Input : Gdo2 Alias Pind.2
'Config Pind.0 = Input : Gdo2 Alias Pind.0

Config Pind.3 = Input : Gdo0 Alias Pind.3
'Config Pind.1 = Input : Gdo0 Alias Pind.1

Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Clockrate = 128 , Polarity = Low , Phase = 0
Spiinit

'Open "comc.4:4800,8,n,1" For Output As #1
'Open "comc.3:4800,8,n,1" For Input As #2

Const Команда_res = &H30
Const Команда_fstxon = &H31
Const Команда_xoff = &H32
Const Команда_cal = &H33
Const Команда_rx = &H34
Const Команда_tx = &H35
Const Команда_idle = &H36
Const Команда_afc = &H37
Const Команда_wor = &H38
Const Команда_pwd = &H39
Const Команда_frx = &H3A
Const Команда_ftx = &H3B
Const Команда_worrst = &H3C
Const Команда_nop = &H3D

Const Регистр_fsctrl1 = &H0B
Const Регистр_fsctrl0 = &H0C
Const Регистр_freq2 = &H0D
Const Регистр_freq1 = &H0E
Const Регистр_freq0 = &H0F
Const Регистр_mdmcfg4 = &H10
Const Регистр_mdmcfg3 = &H11
Const Регистр_mdmcfg2 = &H12
Const Регистр_mdmcfg1 = &H13
Const Регистр_mdmcfg0 = &H14
Const Регистр_channr = &H0A
Const Регистр_deviatn = &H15
Const Регистр_frend1 = &H21
Const Регистр_frend0 = &H22
Const Регистр_mcsm2 = &H16
Const Регистр_mcsm1 = &H17
Const Регистр_mcsm0 = &H18
Const Регистр_foccfg = &H19
Const Регистр_bscfg = &H1A
Const Регистр_agcctrl2 = &H1B
Const Регистр_agcctrl1 = &H1C
Const Регистр_agcctrl0 = &H1D
Const Регистр_fscal3 = &H23
Const Регистр_fscal2 = &H24
Const Регистр_fscal1 = &H25
Const Регистр_fscal0 = &H26
Const Регистр_fstest = &H29
Const Регистр_test2 = &H2C
Const Регистр_test1 = &H2D
Const Регистр_test0 = &H2E
Const Регистр_iocfg2 = &H00
Const Регистр_iocfg1 = &H01
Const Регистр_iocfg0 = &H02
Const Регистр_pktctrl1 = &H07
Const Регистр_pktctrl0 = &H08
Const Регистр_addr = &H09
Const Регистр_pktlen = &H06
Const Регистр_fifothr = &H03
Const Регистр_patable = &H3E
Const Регистр_txfifo = &H3F
Const Регистр_rxbytes = &HFB
Const Регистр_rxfifob = &HFF

Waitms 250
Print "Start"                                               '#1 , "Start"

Dim Сч As Byte
Dim Команда As Byte
Dim Регистр As Byte
Dim Число As Byte
Dim Адрес As Byte
Dim Ответ As Byte
Dim Статус As Byte
Dim ВремБайт1 As Byte

'Сброс при включении питания
Gosub СброситьПередатчик

'Сбросить все регистры в значения по умолчанию
Команда = Команда_res : Gosub ПослатьКоманду

'Инициализируем регистр FSCTRL (параметры синтезатора)
'Print #1 , "FSCTRL"
Регистр = Регистр_fsctrl1 : Число = &H09 : Gosub ИнициализируемРегистр       '06
Регистр = Регистр_fsctrl0 : Число = &H00 : Gosub ИнициализируемРегистр       '00

'Инициализируем регистр FREQ (базовая несущая частота)
'Print #1 , "FREQ"
Регистр = Регистр_freq2 : Число = &H5A : Gosub ИнициализируемРегистр       '5A        '5B'5B
Регистр = Регистр_freq1 : Число = &H1C : Gosub ИнициализируемРегистр       '1D        'B0'75
Регистр = Регистр_freq0 : Число = &H71 : Gosub ИнициализируемРегистр       '07'71     'B2'D4

'Инициализируем регистр MDMCFG (конфигурация модема)
'Print #1 , "MDMCFG"
Регистр = Регистр_mdmcfg4 : Число = &H2D : Gosub ИнициализируемРегистр       '86  '8B
Регистр = Регистр_mdmcfg3 : Число = &H2F : Gosub ИнициализируемРегистр       '75  '7B'ED
Регистр = Регистр_mdmcfg2 : Число = &H73 : Gosub ИнициализируемРегистр       '73
Регистр = Регистр_mdmcfg1 : Число = &H22 : Gosub ИнициализируемРегистр       'C2
Регистр = Регистр_mdmcfg0 : Число = &HE5 : Gosub ИнициализируемРегистр       'E5 'EE'EC

'Инициализируем регистр CHANNR (номер канала)
'Print #1 , "CHANNR"
Регистр = Регистр_channr : Число = &H00 : Gosub ИнициализируемРегистр

'Инициализируем регистр DEVIATN (девиация)
'Print #1 , "DEVIATN"
Регистр = Регистр_deviatn : Число = &H01 : Gosub ИнициализируемРегистр       '43 '44'00

'Инициализируем регистр FREND
'Print #1 , "FREND"
Регистр = Регистр_frend1 : Число = &HB6 : Gosub ИнициализируемРегистр       '56
Регистр = Регистр_frend0 : Число = &H10 : Gosub ИнициализируемРегистр       '10

'Инициализируем регистр MCSM (конфигурация автомата контроля радио)
'Print #1 , "MCSM"
Регистр = Регистр_mcsm2 : Число = &H07 : Gosub ИнициализируемРегистр
Регистр = Регистр_mcsm1 : Число = &H30 : Gosub ИнициализируемРегистр
Регистр = Регистр_mcsm0 : Число = &H18 : Gosub ИнициализируемРегистр

'Инициализируем регистр FOCCFG (компенсация сдвига частоты)
'Print #1 , "FOCCFG"
Регистр = Регистр_foccfg : Число = &H1D : Gosub ИнициализируемРегистр       '16

'Инициализируем регистр BSCFG (конфигурация битовой синхронизации)
'Print #1 , "BSCFG"
Регистр = Регистр_bscfg : Число = &H1C : Gosub ИнициализируемРегистр       '6c

'Инициализируем регистр AGCCTRL (параметры малошумящих усилителей и порог чувствительности компаратора)
'Print #1 , "AGCCTRL"
Регистр = Регистр_agcctrl2 : Число = &HC7 : Gosub ИнициализируемРегистр       '43
Регистр = Регистр_agcctrl1 : Число = &H00 : Gosub ИнициализируемРегистр       '40
Регистр = Регистр_agcctrl0 : Число = &HB2 : Gosub ИнициализируемРегистр       '91

'Инициализируем регистр FSCAL (параметры калибровки синтезатора)
'Print #1 , "FSCAL"
Регистр = Регистр_fscal3 : Число = &HEA : Gosub ИнициализируемРегистр
Регистр = Регистр_fscal2 : Число = &H0A : Gosub ИнициализируемРегистр
Регистр = Регистр_fscal1 : Число = &H00 : Gosub ИнициализируемРегистр
Регистр = Регистр_fscal0 : Число = &H11 : Gosub ИнициализируемРегистр

'Инициализируем регистр FSTEST (конфигурация битовой синхронизации)
'Print #1 , "FSTEST"
Регистр = Регистр_fstest : Число = &H59 : Gosub ИнициализируемРегистр

'Инициализируем регистр TEST (параметры малошумящих усилителей и порог чувствительности компаратора)
'Print #1 , "TEST"
Регистр = Регистр_test2 : Число = &H88 : Gosub ИнициализируемРегистр       '98  '88'81
Регистр = Регистр_test1 : Число = &H31 : Gosub ИнициализируемРегистр       '35
Регистр = Регистр_test0 : Число = &H0B : Gosub ИнициализируемРегистр       '0B

'Инициализируем регистр IOCFG2 (функция вывода GDO2)
'Print #1 , "IOCFG2"
Регистр = Регистр_iocfg2 : Число = &H0E : Gosub ИнициализируемРегистр

'Инициализируем регистр IOCFG0 (функция вывода GDO0)
'Print #1 , "IOCFG0"
Регистр = Регистр_iocfg0 : Число = &H06 : Gosub ИнициализируемРегистр

'Инициализируем регистр PKTCTRL (параметры пакета)
'Print #1 , "PKTCTRL"
Регистр = Регистр_pktctrl1 : Число = &H04 : Gosub ИнициализируемРегистр
Регистр = Регистр_pktctrl0 : Число = &H45 : Gosub ИнициализируемРегистр

'Инициализируем регистр ADDR (адрес устройства)
'Print #1 , "ADDR"
Регистр = Регистр_addr : Число = &H00 : Gosub ИнициализируемРегистр

'Инициализируем регистр PKTLEN (длина пакета)
'Print #1 , "PKTLEN"
Регистр = Регистр_pktlen : Число = &HFF : Gosub ИнициализируемРегистр

'Инициализируем регистр FIFOTHR (граница сигнализации переполнения ФИФО)
'Print #1 , "FIFOTHR"
Регистр = Регистр_fifothr : Число = &H07 : Gosub ИнициализируемРегистр

'Заполняем таблицу мощностей
Print "PATABLE"
Регистр = Регистр_patable
Zb_cs = 0
Число = &HBF : Gosub ЗаписатьВТаблицуМощностей
Zb_cs = 1
Регистр = Регистр_patable
Zb_cs = 0
Gosub ПрочитатьИзТаблицыМощностей
'Gosub ПрочитатьИзТаблицыМощностей
'Gosub ПрочитатьИзТаблицыМощностей
'Gosub ПрочитатьИзТаблицыМощностей
'Gosub ПрочитатьИзТаблицыМощностей
'Gosub ПрочитатьИзТаблицыМощностей
'Gosub ПрочитатьИзТаблицыМощностей
'Gosub ПрочитатьИзТаблицыМощностей
Zb_cs = 1

Do
'Переводим передатчик в режим IDLE
Команда = Команда_idle : Gosub ПослатьКоманду

'Обнулим FIFO RX
Команда = Команда_frx : Gosub ПослатьКоманду

'Обнулим FIFO TX
Команда = Команда_ftx : Gosub ПослатьКоманду

Команда = Команда_rx : Gosub ПослатьКоманду

'Waitms 500

'Loop

   Do
      'If Gdo0 = 1 Then Print #1 , "1";
      If Gdo0 = 1 Then Goto Zbend
   Loop
Zbend:
   Do
      'If Gdo0 = 1 Then Print #1 , "1";
      If Gdo0 = 0 Then Goto Zbend0
   Loop
Zbend0:
   'Waitms 100
   Регистр = Регистр_rxbytes : Gosub ПрочитатьСтатус
   'Print #1 , Hex(Регистр) ; " - " ; Bin(Статус) ; " - " ; Hex(Ответ)
   If Статус <> 10 Then Goto Zbok
   Zb_cs = 0
   Команда = Регистр_rxfifob : Статус = Spimove(Команда)
   Статус = Spimove(Команда) : Print Hex(Статус);           '  #1 ,
   Статус = Spimove(Команда) : Print Hex(Статус) ; "-";     '  #1 ,
   Статус = Spimove(Команда) : Print Chr(Статус);           '  #1 ,
   Статус = Spimove(Команда) : Print Chr(Статус);           '  #1 ,
   Статус = Spimove(Команда) : Print Chr(Статус);           '  #1 ,
   Статус = Spimove(Команда) : Print Chr(Статус);           '  #1 ,
   Статус = Spimove(Команда) : Print Chr(Статус);           '  #1 ,
   Статус = Spimove(Команда) : Print Chr(Статус) ; ; "-";   '  #1 ,
   Статус = Spimove(Команда) : Print Hex(Статус);           '  #1 ,
   Статус = Spimove(Команда) : Print Hex(Статус)            '  #1 ,
   Zb_cs = 1
Zbok:
   'Waitms 500
Loop

'Do
'   For Сч = 240 To 254
'      Адрес = Сч
'      Zb_cs = 0
'      Статус = Spimove(Адрес)
'      Ответ = Spimove(0)
'      Zb_cs = 1
'      Print #1 , Hex(Адрес) ; " - " ; Bin(Статус) ; " - " ; Hex(Ответ)
'   Next
'   Print #1 , ""
'   Waitms 2000
'Loop

СброситьПередатчик:
   Zb_sck = 1
   Zb_mosi = 0
   Zb_cs = 0
   Waitus 1
   Zb_cs = 1
   Waitus 40
Return

ПослатьКоманду:
   Zb_cs = 0
   Статус = Spimove(Команда)
   Zb_cs = 1
   'Print #1 , Hex(Команда) ; " - " ; Bin(Статус)
Return

ПрочитатьРегистр:
   ВремБайт1 = Регистр + 128
   Zb_cs = 0
   Статус = Spimove(ВремБайт1)
   Ответ = Spimove(0)
   Zb_cs = 1
   Print Hex(Регистр) ; " - " ; Bin(Статус) ; " - " ; Hex(Ответ)       ' #1 ,
Return

ПрочитатьСтатус:
   Zb_cs = 0
   Статус = Spimove(Регистр)
   Ответ = Spimove(0)
   Zb_cs = 1
   'Print #1 , Hex(Регистр) ; " - " ; Bin(Статус) ; " - " ; Hex(Ответ)
Return

ИнициализируемРегистр:
   Zb_cs = 0
   Статус = Spimove(Регистр)
   Ответ = Spimove(Число)
   ВремБайт1 = Регистр + 128
   Статус = Spimove(ВремБайт1)
   Ответ = Spimove(0)
   Zb_cs = 1
   Print Hex(Регистр) ; " - " ; Hex(Ответ)                  ' #1 ,
Return

ЗаписатьВТаблицуМощностей:
   Статус = Spimove(Регистр)
   Ответ = Spimove(Число)
Return

ПрочитатьИзТаблицыМощностей:
   ВремБайт1 = Регистр + 128
   Статус = Spimove(ВремБайт1)
   Ответ = Spimove(0)
   Print Hex(Регистр) ; " - " ; Hex(Ответ)                  ' #1 ,
Return



передатчик

Код: Выделить всё
'$prog &HFF , &HEF , &HD9 , &H00                             ' generated. Take care that the chip supports all fuse bytes.
'27mhz   250KBPS

$regfile = "m88DEF.dat"
$baud = 19200
$crystal = 8000000

Config Pinb.5 = Output : Zb_sck Alias Portb.5 : Zb_sck = 0
Config Pinb.3 = Output : Zb_mosi Alias Portb.3 : Zb_mosi = 0
Config Pinb.1 = Output : Zb_cs Alias Portb.1 : Zb_cs = 1


Config Pind.2 = Input : Gdo2 Alias Pind.2


Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Clockrate = 128 , Polarity = Low , Phase = 0
Spiinit

'Open "comc.4:4800,8,n,1" For Output As #1
'Open "comc.3:4800,8,n,1" For Input As #2

Const Команда_res = &H30
Const Команда_fstxon = &H31
Const Команда_xoff = &H32
Const Команда_cal = &H33
Const Команда_rx = &H34
Const Команда_tx = &H35
Const Команда_idle = &H36
Const Команда_afc = &H37
Const Команда_wor = &H38
Const Команда_pwd = &H39
Const Команда_frx = &H3A
Const Команда_ftx = &H3B
Const Команда_worrst = &H3C
Const Команда_nop = &H3D

Const Регистр_fsctrl1 = &H0B
Const Регистр_fsctrl0 = &H0C
Const Регистр_freq2 = &H0D
Const Регистр_freq1 = &H0E
Const Регистр_freq0 = &H0F
Const Регистр_mdmcfg4 = &H10
Const Регистр_mdmcfg3 = &H11
Const Регистр_mdmcfg2 = &H12
Const Регистр_mdmcfg1 = &H13
Const Регистр_mdmcfg0 = &H14
Const Регистр_channr = &H0A
Const Регистр_deviatn = &H15
Const Регистр_frend1 = &H21
Const Регистр_frend0 = &H22
Const Регистр_mcsm2 = &H16
Const Регистр_mcsm1 = &H17
Const Регистр_mcsm0 = &H18
Const Регистр_foccfg = &H19
Const Регистр_bscfg = &H1A
Const Регистр_agcctrl2 = &H1B
Const Регистр_agcctrl1 = &H1C
Const Регистр_agcctrl0 = &H1D
Const Регистр_fscal3 = &H23
Const Регистр_fscal2 = &H24
Const Регистр_fscal1 = &H25
Const Регистр_fscal0 = &H26
Const Регистр_fstest = &H29
Const Регистр_test2 = &H2C
Const Регистр_test1 = &H2D
Const Регистр_test0 = &H2E
Const Регистр_iocfg2 = &H00
Const Регистр_iocfg1 = &H01
Const Регистр_iocfg0 = &H02
Const Регистр_pktctrl1 = &H07
Const Регистр_pktctrl0 = &H08
Const Регистр_addr = &H09
Const Регистр_pktlen = &H06
Const Регистр_fifothr = &H03
Const Регистр_patable = &H3E
Const Регистр_txfifo = &H3F

Waitms 250
Print "Start"

Dim Сч As Byte
Dim Команда As Byte
Dim Регистр As Byte
Dim Число As Byte
Dim Адрес As Byte
Dim Ответ As Byte
Dim Статус As Byte
Dim ВремБайт1 As Byte

'Сброс при включении питания
Gosub СброситьПередатчик

'Сбросить все регистры в значения по умолчанию
Команда = Команда_res : Gosub ПослатьКоманду

'Инициализируем регистр FSCTRL (параметры синтезатора)
'Print #1 , "FSCTRL"
Регистр = Регистр_fsctrl1 : Число = &H09 : Gosub ИнициализируемРегистр       ''08    '06
Регистр = Регистр_fsctrl0 : Число = &H00 : Gosub ИнициализируемРегистр       '00

'Инициализируем регистр FREQ (базовая несущая частота)
'Print #1 , "FREQ"
Регистр = Регистр_freq2 : Число = &H5A : Gosub ИнициализируемРегистр       '5B
Регистр = Регистр_freq1 : Число = &H1C : Gosub ИнициализируемРегистр       '75
Регистр = Регистр_freq0 : Число = &H71 : Gosub ИнициализируемРегистр       'D4

'Инициализируем регистр MDMCFG (конфигурация модема)
'Print #1 , "MDMCFG"
Регистр = Регистр_mdmcfg4 : Число = &H2D : Gosub ИнициализируемРегистр       ''86   '8B
Регистр = Регистр_mdmcfg3 : Число = &H2F : Gosub ИнициализируемРегистр       ''75   'ED
Регистр = Регистр_mdmcfg2 : Число = &H73 : Gosub ИнициализируемРегистр       ''03   '73
Регистр = Регистр_mdmcfg1 : Число = &H22 : Gosub ИнициализируемРегистр       ''22   'C2
Регистр = Регистр_mdmcfg0 : Число = &HE5 : Gosub ИнициализируемРегистр       ''e5   'EC

'Инициализируем регистр CHANNR (номер канала)
'Print #1 , "CHANNR"
Регистр = Регистр_channr : Число = &H00 : Gosub ИнициализируемРегистр

'Инициализируем регистр DEVIATN (девиация)
'Print #1 , "DEVIATN"
Регистр = Регистр_deviatn : Число = &H01 : Gosub ИнициализируемРегистр       ''43  '00

'Инициализируем регистр FREND
'Print #1 , "FREND"
Регистр = Регистр_frend1 : Число = &HB6 : Gosub ИнициализируемРегистр       ''56    '56
Регистр = Регистр_frend0 : Число = &H10 : Gosub ИнициализируемРегистр       '10

'Инициализируем регистр MCSM (конфигурация автомата контроля радио)
'Print #1 , "MCSM"
Регистр = Регистр_mcsm2 : Число = &H07 : Gosub ИнициализируемРегистр
Регистр = Регистр_mcsm1 : Число = &H30 : Gosub ИнициализируемРегистр
Регистр = Регистр_mcsm0 : Число = &H18 : Gosub ИнициализируемРегистр

'Инициализируем регистр FOCCFG (компенсация сдвига частоты)
'Print #1 , "FOCCFG"
Регистр = Регистр_foccfg : Число = &H1D : Gosub ИнициализируемРегистр       ''16    '16

'Инициализируем регистр BSCFG (конфигурация битовой синхронизации)
'Print #1 , "BSCFG"
Регистр = Регистр_bscfg : Число = &H1C : Gosub ИнициализируемРегистр       ''6C      '6c

'Инициализируем регистр AGCCTRL (параметры малошумящих усилителей и порог чувствительности компаратора)
'Print #1 , "AGCCTRL"
Регистр = Регистр_agcctrl2 : Число = &HC7 : Gosub ИнициализируемРегистр       ''03   '43
Регистр = Регистр_agcctrl1 : Число = &H00 : Gosub ИнициализируемРегистр       ''40  '40
Регистр = Регистр_agcctrl0 : Число = &HB2 : Gosub ИнициализируемРегистр       ''91  '91

'Инициализируем регистр FSCAL (параметры калибровки синтезатора)
'Print #1 , "FSCAL"
Регистр = Регистр_fscal3 : Число = &HEA : Gosub ИнициализируемРегистр       ''A9
Регистр = Регистр_fscal2 : Число = &H0A : Gosub ИнициализируемРегистр       ''0A
Регистр = Регистр_fscal1 : Число = &H00 : Gosub ИнициализируемРегистр       ''00
Регистр = Регистр_fscal0 : Число = &H11 : Gosub ИнициализируемРегистр       ''11

'Инициализируем регистр FSTEST (конфигурация битовой синхронизации)
'Print #1 , "FSTEST"
Регистр = Регистр_fstest : Число = &H59 : Gosub ИнициализируемРегистр

'Инициализируем регистр TEST (параметры малошумящих усилителей и порог чувствительности компаратора)
'Print #1 , "TEST"
Регистр = Регистр_test2 : Число = &H88 : Gosub ИнициализируемРегистр       ''81  '81
Регистр = Регистр_test1 : Число = &H31 : Gosub ИнициализируемРегистр       ''35   '35
Регистр = Регистр_test0 : Число = &H0B : Gosub ИнициализируемРегистр       '0B

'Инициализируем регистр IOCFG2 (функция вывода GDO2)
'Print #1 , "IOCFG2"
Регистр = Регистр_iocfg2 : Число = &H0E : Gosub ИнициализируемРегистр

'Инициализируем регистр IOCFG0 (функция вывода GDO0)
'Print #1 , "IOCFG0"
Регистр = Регистр_iocfg0 : Число = &H06 : Gosub ИнициализируемРегистр

'Инициализируем регистр PKTCTRL (параметры пакета)
'Print #1 , "PKTCTRL"
Регистр = Регистр_pktctrl1 : Число = &H04 : Gosub ИнициализируемРегистр
Регистр = Регистр_pktctrl0 : Число = &H45 : Gosub ИнициализируемРегистр       ''05

'Инициализируем регистр ADDR (адрес устройства)
'Print #1 , "ADDR"
Регистр = Регистр_addr : Число = &H00 : Gosub ИнициализируемРегистр

'Инициализируем регистр PKTLEN (длина пакета)
'Print #1 , "PKTLEN"
Регистр = Регистр_pktlen : Число = &HFF : Gosub ИнициализируемРегистр

'Инициализируем регистр FIFOTHR (граница сигнализации переполнения ФИФО)
'Print #1 , "FIFOTHR"
Регистр = Регистр_fifothr : Число = &H07 : Gosub ИнициализируемРегистр


'Заполняем таблицу мощностей
Print "PATABLE"
Регистр = Регистр_patable
Zb_cs = 0
Число = &HFB : Gosub ЗаписатьВТаблицуМощностей              '44  '46   'HBF

Zb_cs = 1
Регистр = Регистр_patable
Zb_cs = 0
Gosub ПрочитатьИзТаблицыМощностей
'Gosub ПрочитатьИзТаблицыМощностей
'Gosub ПрочитатьИзТаблицыМощностей
'Gosub ПрочитатьИзТаблицыМощностей
'Gosub ПрочитатьИзТаблицыМощностей
'Gosub ПрочитатьИзТаблицыМощностей
'Gosub ПрочитатьИзТаблицыМощностей
'Gosub ПрочитатьИзТаблицыМощностей
Zb_cs = 1

Do
  'Переводим передатчик в режим IDLE
  Команда = Команда_idle : Gosub ПослатьКоманду

  'Обнулим FIFO RX
  Команда = Команда_frx : Gosub ПослатьКоманду

  'Обнулим FIFO TX
  Команда = Команда_ftx : Gosub ПослатьКоманду


  'Заполняем буфер TX

  Zb_cs = 0
  Команда = Регистр_txfifo Or &H40 : Статус = Spimove(Команда)
  Команда = 7 : Статус = Spimove(Команда)
  Команда = 0 : Статус = Spimove(Команда)
  Команда = Asc( "A") : Статус = Spimove(Команда)
  Команда = Asc( "l") : Статус = Spimove(Команда)
  Команда = Asc( "e") : Статус = Spimove(Команда)
  Команда = Asc( "x") : Статус = Spimove(Команда)
  Команда = Asc( "T") : Статус = Spimove(Команда)
  Команда = Asc( "V") : Статус = Spimove(Команда)
  Zb_cs = 1

  'Переходим в режим TX
  '   Команда = Команда_tx
  '   Zb_cs = 0
  '   Статус = Spimove(Команда)
  '   Zb_cs = 1

  '   Waitus 900

  '   Команда = Команда_nop
  '   Zb_cs = 0
  '   Статус = Spimove(Команда)
  '   Zb_cs = 1

  '   Print #1 , Hex(Команда) ; " - " ; Bin(Статус)
  Команда = Команда_tx : Gosub ПослатьКоманду
  'Waitms 1

  Waitms 200

Loop

Do
   'Print #1 , Gdo2;
   Waitms 10
Loop

'Do
'   For Сч = 240 To 254
'      Адрес = Сч
'      Zb_cs = 0
'      Статус = Spimove(Адрес)
'      Ответ = Spimove(0)
'      Zb_cs = 1
'      Print #1 , Hex(Адрес) ; " - " ; Bin(Статус) ; " - " ; Hex(Ответ)
'   Next
'   Print #1 , ""
'   Waitms 2000
'Loop

СброситьПередатчик:
   Zb_sck = 1
   Zb_mosi = 0
   Zb_cs = 0
   Waitus 1
   Zb_cs = 1
   Waitus 40
Return

ПослатьКоманду:
   Zb_cs = 0
   Статус = Spimove(Команда)
   Zb_cs = 1
   Print Hex(Команда) ; " - " ; Bin(Статус)
Return

ПрочитатьРегистр:
   ВремБайт1 = Регистр + 128
   Zb_cs = 0
   Статус = Spimove(ВремБайт1)
   Ответ = Spimove(0)
   Zb_cs = 1
   Print Hex(Регистр) ; " - " ; Bin(Статус) ; " - " ; Hex(Ответ)
Return

ИнициализируемРегистр:
   Zb_cs = 0
   Статус = Spimove(Регистр)
   Ответ = Spimove(Число)
   ВремБайт1 = Регистр + 128
   Статус = Spimove(ВремБайт1)
   Ответ = Spimove(0)
   Zb_cs = 1
   Print Hex(Регистр) ; " - " ; Hex(Ответ)
Return

ЗаписатьВТаблицуМощностей:
   Статус = Spimove(Регистр)
   Ответ = Spimove(Число)
Return

ПрочитатьИзТаблицыМощностей:
   ВремБайт1 = Регистр + 128
   Статус = Spimove(ВремБайт1)
   Ответ = Spimove(0)
   Print Hex(Регистр) ; " - " ; Hex(Ответ)
Return



Test ZigBee.rar
(28.69 КиБ) Скачиваний: 16


Это не ZigBee ! < avr123.nm.ru >
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: RoboBus.RU спецификация шины MiniBot'а

Сообщение =DeaD= » 24 сен 2008, 11:09

Нефиговый такой код :) особенно грустно что код для приёмника и передатчика отдельный :(
Интересно, у blindman'a короче?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: RoboBus.RU спецификация шины MiniBot'а

Сообщение EdGull » 24 сен 2008, 11:11

так можно (и даже нужно ) вынести всё в отдельную библу и останется пара строчек непосредственных комманд.
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: RoboBus.RU спецификация шины MiniBot'а

Сообщение blindman » 24 сен 2008, 12:32

Я вынес базовые функции (запись/чтение регистров, получение статуса и тп) в отдельную библиотека - она совсем маленькая. Вся работа с CC2500 как раз и сводится к чтению/записи регистров. Простейшие примеры кода для приема и передачи сегодня выложу здесь - [[Система голосового управления]]
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: RoboBus.RU спецификация шины MiniBot'а

Сообщение =DeaD= » 24 сен 2008, 12:34

2blindman: А у тебя какой примерно календарный план по этому модулю радиоканала? А то может действительно я подхвачу, а то платку сейчас запроектирую пока под камеру - так компонент еще не всех нашли и пока её делать будут...
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: RoboBus.RU спецификация шины MiniBot'а

Сообщение blindman » 24 сен 2008, 12:40

Нету плана определенного. Как появляется время - занимаюсь. Приведу в нормальный вид - выложу, чтоб мое время не пропало даром, а то сейчас оно в таком состоянии, что проще с нуля писать, чем кому-то с этим разбираться
Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: RoboBus.RU спецификация шины MiniBot'а

Сообщение =DeaD= » 24 сен 2008, 13:39

Ну тогда пока очень жду! Если есть, чем помочь - говори.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: RoboBus.RU спецификация шины MiniBot'а

Сообщение =DeaD= » 26 сен 2008, 08:48

Есть ощущение, что надо на страницу проектов удовлетворяющих RoboBus.RU вывешать список незаконченных проектов еще, чтобы народ не с нуля начинал что-то делать, а присоединялся к какому-то проекту по возможности. А то будем параллельно одно и то же делать...

Добавлено спустя 1 минуту 53 секунды:
И еще - по миниботу и радиомодулю - будем схемку то выкладывать как их сделать совместимыми с RoboBus.RU?

2blindman: Всё-таки ты согласен что радиомодуль можно скальпелем и 3 тоненькими проводками сделать совместимым с шиной? Выложить может твою схемку?

Добавлено спустя 15 минут 39 секунд:
Не стал ждать и выложил всё это, надо еще ориентировочные сроки добавить.
[[RoboBus-совместимые устройства]].
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: RoboBus.RU спецификация шины MiniBot'а

Сообщение blindman » 26 сен 2008, 12:11

Конечно радиомодуль будет совместим. Причем даже и без пайки - но с некоторым ограничением функциональности.
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: RoboBus.RU спецификация шины MiniBot'а

Сообщение =DeaD= » 28 сен 2008, 09:52

Есть у кого под рукой серва? Я вот тут подумал - а она нормально будет работать от управляющего сигнала номиналом 3.3В? :shock:
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: RoboBus.RU спецификация шины MiniBot'а

Сообщение avr123.nm.ru » 28 сен 2008, 10:46

=DeaD= писал(а):Есть у кого под рукой серва? Я вот тут подумал - а она нормально будет работать от управляющего сигнала номиналом 3.3В? :shock:

Почитай доку.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Re: RoboBus.RU спецификация шины MiniBot'а

Сообщение =DeaD= » 28 сен 2008, 10:52

Какую? На футабе например никаких даташитов... :( я конечно ищу, но пока совершенно не ясно...
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Пред.След.

Вернуться в Электроника

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0