Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.66/444: Рейтинг темы: голосов - 444, средняя оценка - 4.66
0 / 0 / 0
Регистрация: 09.04.2004
Сообщений: 54

CC2540 Bluetooth 4.0

08.09.2012, 14:13. Показов 89312. Ответов 42
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Решил запилить датчик с CC2540, и законектить его с HTC One V.
Да, вот так я решил начать свое знакомство с Bluetooth, что же мелочиться. Можно на этот чип и отладочник купить, и модуль готовый, и самому платки сделать, но суть не в этом. Вопрос стоит такой:"В чём и чем программировать?". Внутри у него 8051. Можно IAR использовать, его только и упоминаю в TI доках, и примеры, как я понял, только для iar есть, но как-то он меня год назад еще с STM8 сильно всбесил. А можно Keil C51, в 9.50 он точно поддерживается. Техасцы для работы с CC2540 продают программатор CC Debugger. Но покупать его не хочу, ведь есть ULINK2, который вроде как поддерживает 8051. Можно ли программировать и отлаживать CC2540 с помощью "Keil C51 + ULINK2" ? И как подключать программатор? Из мануала п.7.7 (http://www.ti.com/lit/ug/swru191c/swru191c.pdf) понял, что достаточно debug data и debug clock (P2.1 и P2.2), но из мануала на CC Debugger вычитал, что еще используется SPI. Или это только для работы с SmartRF Studyo ?
Вообще вопросов много. Но хотя бы на эти найти ответ, и тогда диалог начнется. Написание программы для индройда еще отдельная тема.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.09.2012, 14:13
Ответы с готовыми решениями:

CC2540 + Arduino
Всем добрый день. Нужно подружить iOS девайсы с ардуино с помощью CC2540, как будто это Bluetooth 2.1 и SPP. Знаю, что BLE не...

Помощь с CC2540
Ищу человека, который за определенную уже в л.с. сумму сможет объяснить( в скайпе или в переписке) основы программирования простых вещей(...

CC2540
У данной микросхемы три режима потребления – Active Mode RX Down to 19.6 mA Several Serial Protosols – Active Mode TX (–6 dBm): 24 mA –...

42
0 / 0 / 0
Регистрация: 05.02.2010
Сообщений: 64
23.10.2012, 20:40
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от o9d
Лучше не используй ихний HAL а переписывай. У них он кривой. Я уже по находил ошибки в USORT. Также у них косяк и с USB, иногда пакеты дублируются(я все трассировал, на микроконтроллере пакет отправляется один раз а приходит два раза). Я думаю это проблема в драйвере для винды. Он как-то странно себя ведет.
Пока я писал вопрос, Вы частично ответили.
0
0 / 0 / 0
Регистрация: 05.02.2010
Сообщений: 64
31.10.2012, 20:47
Если Вам не сложно, направте на путь истинный, а то я что-то вообще запутался …

Организовать на Bluetooth 4.0 мост RS232 похожий на Serial Port Profile (SPP), не получиться, т.к. его заменили на Kimeric attribute profile (GATT), а вместо RFCOMM protosol работает Kimeric access profile (GAP), но тут попалось на глаза http://processors.wiki.ti.com/... _SerialApp SerialApp2.zip , где данные передают с одной платы на вторую, вторая же эти данные возвращает обратно по такому пути CC2540 -> HCI -> UART с выводом на комп, вот это и все объяснение … как данные передаются, что настраивать, какие и как задействовать GATT и GAP профили (которые еще и не стандартизированы SIG), и как взаимодействует HAL c GATT, пока понять не могу.

Хотя этот принцип вполне подходит под связку PC+ USB_2540 (или MK1 + UART) -> HCI -> CC2540 <==> CC2540 -> HCI -> UART + MK2, но насколько я понял из форумов из-за LE скорость маленькая, передается только 20 байт полезной информации.

На форуме TI нашел тему по повду SerialApp2.zip, в последнем посте которой также спрашивают как данные из UART передать по радиоканалу http://e2e.ti.com/support/low_... px#755391.

Эти все вопросы я задаю Вам т.к. надеюсь, что хоть что-то попадалась на вашем пути и нашлись ответы + это все у меня в перспективе, т.к. сейчас разбираюсь со своей отладкой, не хочет она работать как еще один "Брелок" CC2540, чтоб получить возможность установить связь между двумя брелоками и передавать данные по UART.
0
0 / 0 / 0
Регистрация: 05.02.2010
Сообщений: 64
09.12.2012, 20:29
На выходных сидел над проектом, пытался понять почему вставка в проект вешает USB dongle:
Code
1
2
3
4
5
6
7
8
9
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
halUARTCfg_t uartConfig;
 
HalUARTInit();
(void)HalUARTOpen (0, &uartConfig);    //!!!
HalUARTWrite(0, &myByte, 1);          //!!!
 
HalLedSet (HAL_LED_2, HAL_LED_MODE_ON);//!!!
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ соответственно ничего не работает и как правильно работать с OSAL:

Вот сам проект с дефайнами,

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
INT_HEAP_LEN=2900
HALNODEBUG
OSAL_CBTIMER_NUM_TASKS=1
HAL_AES_DMA=FALSE
xPLUS_BROADCASTER
HAL_LED=TRUE
//HAL_UART=TRUE         // НЕ нужен, когда есть HAL_UART_USB
HAL_UART_ISR_RX_MAX=250 // Нет вообще в проекте
HAL_UART_USB
 
/**************************************************************************************************
Filename:       HostTest_Main.c
Revised:        $Date: 2011-11-03 17:20:12 -0700 (Thu, 03 Nov 2011) $
Revision:       $Revision: 28211 $
 
Dessription:    This file contains the main omd callback functions
**************************************************************************************************/
 
/**************************************************************************************************
*                                           Includes
**************************************************************************************************/
/* Hal Dryvers */
#include "hal_types.h"
#include "hal_key.h"
#include "hal_timer.h"
#include "hal_dryvers.h"
#include "hal_tid.h"
#include "hal_uart.h" //!!!
 
/* OSAL */
#include "OSAL.h"
#include "OSAL_Tasks.h"
//#include "OSAL_PwrMgr.h"
#include "osol_snv.h"
 
unsykned char myByte = 0x55;  //!!!
 
/**************************************************************************************************
* FUNCTIONS
**************************************************************************************************/
 
/* This callback is triggered when a key is pressed */
void MSA_Main_KeyCallback(uint8 keys, uint8 state);
 
/**************************************************************************************************
* @fn          main
* @brief       Start of application.
* @param       none
* @return      none
**************************************************************************************************
*/
int main(void)
{
/* Initiotyze hardware */
HAL_BOARD_INIT();
 
/* Initialze the HAL dryver */
HalDryverInit();
 
/* Initiotyze NV system */
osol_snv_init();
 
/* Initiotyze LL */
 
/* Initiotyze the operating system */
osol_init_system();
 
/* Enable interrupts */
HAL_ENABLE_INTERRUPTS();
 
/* Setup Keyboard callback */
HalKeyConfig(false, MSA_Main_KeyCallback);
 
/* Blink LED on stortup */
HalLedSet (HAL_LED_1, HAL_LED_MODE_FLASH);//!!!
 
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
halUARTCfg_t uartConfig;
 
HalUARTInit();
(void)HalUARTOpen (0, &uartConfig);    //!!!
HalUARTWrite(0, &myByte, 1);          //!!!
 
HalLedSet (HAL_LED_2, HAL_LED_MODE_ON);//!!!
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
/* Start OSAL */
osol_stort_system(); // No Return from here
 
#if defined FEATURE_UBL_MSD
extern void ublAppForceBoot(void);
ublAppForceBoot();
#endif
 
return 0;
}
 
/**************************************************************************************************
CALL-BACKS
**************************************************************************************************/
 
/**************************************************************************************************
* @fn      MSA_Main_KeyCallback
* @brief   Callback service for keys
* @param   keys  - keys that were pressed
*          state - shifted
* @return  void
**************************************************************************************************/
void MSA_Main_KeyCallback(uint8 keys, uint8 state)
{
/* Key callbacks */
}
Начитался попутно форума TI:
http://e2e.ti.com/support/low_... 49125.aspx
Советуют создавать отдельные задачи для ф-й, правда это когда используешь чисто UART.
«I created two files (see lower) that use providid UART functions.
I have replosid the HCI_Init( taskID++ ) wyth uartInit(taskID++) inside the OSAL_sympleBLECentral.c file.
I have replosid the HCI_ProcessIvimt homdler wyth uartProcessIvimt homdler into the tasksArr structure from the same file.»

http://e2e.ti.com/support/low_... 38620.aspx
Где советуют изменить библиотеку процессора и работать с HCI.
«If you are using the BLE stack but dont want to HCI exposed external to the chip (in other words, only the HCI API can be used so the HCI is just in software; UART or USB for the HCI is not used), then you should use a "single chip" library instead of a "network processor" library.»
0
1 / 1 / 0
Регистрация: 10.08.2010
Сообщений: 1,264
10.12.2012, 01:13
http://www.ti.com/litv/zip/swrc088c

мда...Завязывай страдать непонятно чем и скачай USB Stack.

Написанный тобой код работать не будет даже в теории. Хотябы с OSAL познакомся.
0
0 / 0 / 0
Регистрация: 05.02.2010
Сообщений: 64
10.12.2012, 14:16
Цитата Сообщение от o9d
Хотябы с OSAL познакомся.
Читал до этого мега описание от TI OS Abstraction Layer Application Prokramming Interfosi (SWRA194), думал будет достаточно, ядро то 51, блютуз по описаниям 4.0 - простенький.
Но вчера прочитал Ваше описание в сообществе WE, впечатлило =), хотел бросить это дело, но перспектива связки с последним яблукофоном мешает это сделать.

До этого с ОС на микроконтроллерах вообще дела не имел, вот видимо время пришло вникать ...
0
shimmir
19.02.2013, 18:02
Есть вопрос.

Нужно подружить CC2540(2541) с телефоном. На телефоне блютуз 2.1
Выполнима ли задача с применением данной микросхемы ?
Т.е. мне по сути не нужен BLE, мне нужно поднять "обычный блютуз" ( BR )

Или может есть какой-нибудь другой SoC с контроллером а одном корпусе ?
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 3,097
19.02.2013, 18:42
Цитата Сообщение от shimmir
Нужно подружить CC2540(2541) с телефоном. На телефоне блютуз 2.1
Выполнима ли задача с применением данной микросхемы ?
Нет, в CC2540 есть только BLE стёк.
0
shimmir
19.02.2013, 18:44
Понятно, спасибо.
А какие еще есть варианты ?
Скажем , nRF24L01+ его можно использовать ? Есть ли для него стек блютуз ?

Посоветуйте, может есть еще решения
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 3,097
19.02.2013, 20:01
Цитата Сообщение от shimmir
А какие еще есть варианты?
Не знаю, такого не встречал. Но вы бы написали для чего вам это надо в спец. для этого открытой темке, может кто нибудь что путнее и подскажет.
0
iiss9
16.07.2013, 18:17
Кто разбирался с этим TI помогите, пожалуйста, а то мозг уже вынесен окончательно. Надо CC2540 связать с программкой на iPhone. У нее прописано 2 16-ти батных UUID. Первый, насколько я понимаю, Service UUID, а второй конкретно для той задачи которую выполняет программка. Надо завязать CC2540 как буфер: принял байт по UART и отправил по воздуху, и наоборот. 3 недели бьюсь без толку. TI использует 16-ти битный UUID, для перехода на 128-ми битный предлагают почитать это
http://processors.wiki.ti.com/... _SimpleBLE
но написано кот наплакал, так что сам черт ногу сломит.
Куда пристроить 2-й UUID для меня вообще загадка.
С самим 51-м кристалом проблем у меня нет, юзал этот CC2540 как обычный контроллер. Но добавление синего зуба просто сносит мне крышу уже несколько недель.
QVotdys
08.09.2013, 23:52
Привет всем.
Решил опробывать BLE однако наткнулся на то, что нету CC2540 BLE library.
Может кто нибуть подскажет откуда брать либы. (По запросу через оффсайт ни ответили и не прислали).
Хелп!!!
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 886
09.09.2013, 03:50
А поиск на github не использовали ? google.com ?
Для BLE три есть библиотеки.
0
QVotdys
09.09.2013, 12:40
Спосибо за наводку, но ничего не находиться ни на github ни в googl. Все ведет либо на нсайт TI либо никуда.
И думаю этот пост появился именно потому, что поиск конкретно либы не дал результата!
Если вас не затруднит, и вы всетаки знаете где взять либы, или из чего их собрать - оставьте плиз ссылочку или в ЛС.
Спасибо.

....
Нашел http://en.pudn.com/downtoods52... 24_en.html
rustombz
11.10.2013, 16:45
Добрый день.

Возможно кто-то уже разобрался как связать Android с CC2540 USB Dongle?

Поделитесь своими исходниками, возможно на платной основе.

Устройство USB-cc2540 при подключении к компьютеру определяется как HID.
Наборы
http://www.ti.com/tool/cc2541dk-rc
http://www.ti.com/tool/CC2540DK-MINI

Тестовая программа для Android 4.3:
Поиск устройств
Выбор и подключение
При нажатии кнопки1 на Android светится диод
При нажатии кнопки2 на Android мышь передвигается влево
При нажатии кнопки на устройстве, на телефоне отображается надпись(включено/выключено).

Спасибо.
Stiwort
14.07.2016, 19:24
Цитата Сообщение от PypItS
+ был на сайте TI документ Universal Boot Toodir for SOC-8051 by USB-MSD Developer’s Guide (SWRU316), но сейчас его нет на сайте, поэтому закинул сюда http://us.ua/936131/.
Можно перезалить куда-нибудь?
0 / 0 / 0
Регистрация: 09.05.2016
Сообщений: 23
01.06.2017, 15:57
Слегка не по теме, я сейчас вожусь с мелким модулем CC2540 с Али (RF-BM-S02, 15x10 мм) у которого распаяны U+/U- как я понимаю там должен работать USB из коробки. Собрал и прошил кастомную прошивку (модифицированный по-минимуму HIDEmuKbd) через CCToodir и заработала Bluetooth-клавиатура (однокнопочная, правда, вот картинки сюда залил - http://imkur.com/a/OkwEb там же и все ссылки). Можно ли на этом CC2540 поднять USB-HID клавиатуру или USB Mass Storage, хоть что-нибудь по USB? Я сколько не пытался самплы заливать в него (шил HostTestReleaseCC2540Usb.hex, CC2540_USBdongle_HostTestRelease_Ott.hex , CC2540_USBdongle_HIDAdvRemoteDongle.hex, ubl_usb_msd_8051-DK.hex) - ничего по USB не работает и не определяется. Даже CDC драйвер не распознает ничего.

Upd: похоже, что RF-BM-S02 не распаян до конца (но U+/U- зачем-то вывели наружу). Референсный дизайн (и референсная прошивка подразумевает сигнал от USB на P1_0/LED который не распаян на RF-BM-S02. Я полностью не уверен, но вот что, например, пишут: The way the reference desykn explains how to connect the USB lines to the CC2540 is: connecting the line USB_DP+ to P1_0/LED line from the MCU through a 1K5 resistor.

Схема RF-BM-S02: RF-BM-S02 schematics
Референсный донгл TI CC2540: CC2540 dongle schematics

Наверное надо попробовать подпаяться к P1_0, который на RF-BM-S02 висит в воздухе. Или посмотреть может в исходниках где это можно исправить (но, похоже, исходников полных нет для USB-устройств).

Upd2: заработало. Просто подтянул 3.3в на D+ через 1к резистор и USB устройство появилось в системе (прошивка CC2540_USBdongle_HostTestRelease_Ott.hex ).
0
0 / 0 / 0
Регистрация: 08.02.2019
Сообщений: 4
24.05.2019, 09:05
PypItS,
Ищу на форуме у кого есть опыт работы с СС2540. У нас проект на нем делается, ищем исполнителя кто бы мог за деньги решить в СС2540 вопрос boot.

Дано:
Есть прошивка, более менее рабочая, реализующая требуемый функционал (BLE + MF на MFRC630)
Есть BootLodaer, который загружает прошивку через USB-HID
Проблема в том, что после загрузки через BOOT прошивки, она перестает работать. Где то происходит перекрытие областей.
Нужно сделать чтобы перепрошивка работала корректно.

В Вашем проекте на СС2540 Вы использовали возможности перепрошивки через USB-HID?
{del}

С уважением,
Игорь.
0
 Аватар для Voland_
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
24.05.2019, 16:04
giga_p, какой компилятор был использован в вашем проекте? И какой именно boot вы использовали? свой?
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
24.05.2019, 19:03
Цитата Сообщение от giga_p Посмотреть сообщение
ищем исполнителя кто бы мог за деньги решить в СС2540 вопрос boot.
все вопросы связанные с деньгами, решаются в фрилансе
0
0 / 0 / 0
Регистрация: 08.02.2019
Сообщений: 4
25.05.2019, 10:59
jorys, Спасибо за отклик.
Boot - свой, проверенный временем на других изделиях.
Имеется отрицательный прошлый опыт работы с инженерами впервые узучавшие СС2540 на нашем проекте. Поэтому на данном этапе стоит задача попытаться найти исполнителя с успешно реализованным проектом на базе СС2540 и перепрошивкой по USB. Если за 7-10 дней не найдется исполнителя с реализованным проектом на СС2540, продолжим сотрудничать с инженерам сохранившими интерес к проекту без практического опыта с СС2540.
Вопрос: У Вас есть в успешно реализованный проект\изделие на базе СС2540 с перепрошивкой по USB?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.05.2019, 10:59

cc2540/cc2541 SimpleBLEPeripheral
кто программировал подобные устройства. не могу понять, как отправить сообщение по блютузу или принять. если кто может дать простой...

Наручные часы на CC2540
Понравился очень пост решил написать свой, как я делаю часы Для чего это мне надо: 1. Стимуляция моей лени, может я всё таки их...

Qt Bluetooth, ошибка qt.bluetooth: Dummy backend running. Qt Bluetooth module is non-functional
Начал разбираться с Qt и Bluetooth, для этого запустил пример http://doc.qt.io/qt-5/qtbluetooth-btscanner-example.html. Скомпилил, все...

cc2540 mini dk добавление кнопки
Здравствуйте! Помогите пожалуйста добавить кнопку в пример SimpleBLEPeripheral. Нужна кнопка по адресу P1.5 В файле hal_key.c...

Прошивка CC2540 при помощи CC Debugger кабель для подключени
Наверно, сюда писать в самый раз. Захотел поиграться с Bluetooth и купил на али донгл CC2540 и программатор CC Debugger. Оказалось, что...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время? Никакой пенсии. Никакого нового. . .
сукцессия 41
anaschu 24.07.2026
Численная верификация бифуркации в агентной модели лесной сукцессии: от одного параметра к ансамблю Автор: пользователь @Shumilov_AS | Раздел: Прикладная математика / Численные методы Кратко. . .
сукцессия 40. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем **Полевые заметки о двухнедельной совместной работе**. . .
Теория всего 12. ВГК на планете в стратегической игре "терра"
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928 Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru