По воле судьбы вручили мне kit с CSR1010 и сказали "делай". Конечно это больше звучит как нытье, но отчасти, чтоб это убожество никто не взял, и заодно в конце вопрос:
Что получаем на данный момент:
По производителю:
1)Купил Mesh kit, а сам код mesh не дали. Ибо "экспортный контроль, там крипто". Исходники некоторых приложений - тоже. Ну да ладно, XXTEA спасет отца русской демократии.
По софту:
1)Унылый 8051, причем вендор признает наличие 8051 внутри - неохотно. Писать надо в сях, асм - типа нельзя, ибо в примерах и API нет, хотя иногда какие-то куски асмовского кода от работников, на форуме, - проскакивают. В основном для недокументированных функций или быстрого ногодрыжества. Периодически обнаруживается то еще один UART, то еще что-то.
2)Не всё API работает, например на вопрос про просыпание от watchdog tick обозначенное в API, ответили "в примерах приложений нет? значит не используйте".
3)Доступ к радио очень "высокоуровневый", т.е. ничего практически не покрутишь. Поменять мак устройства можно только через пень-колоду, официального способа нет, если прошил - то всё, привет, живи с этим.
4)Мак адрес из софта никак не записать, нужно блин формировать под каждый девайс виндовой утилиткой отдельный образ eeprom. Народ пытался расколупать формат eeprom - но безуспешно. Т.е. его вообще вручную не поколупать почти. В нем же сидят tx power, uart bitrate и прочие параметры, которые вообще-то желательно иметь возможность менять, по необходимости. Запись своих данных в eeprom - по их API, причем пишет опять же в проприетарном формате. Ах да, для пользовательских данных щедро отсыплют целых 16 байт, независимо от того, сколько свободно на eeprom. Конечно можно внаглую писать на i2c eeprom напрямую, угадав свободные куски, но "проприетарный" алгоритм может воспользоваться этим куском памяти, и будет сбой.
По железу:
1)Куча обвязки: Нужно два кристалла, и еще и внешнюю i2c eeprom, при этом мутные фразы про 64K ROM с аналогом softdevice(который оказывается все равно грузится в память), и 64K ram, из которых недоступна треть. Я так понимаю, что если будут какие-то фиксы, это еще будет в новых SDK отьедать ram и место на eeprom.
2)При наличии 32Khz кварца - RTC нет! Лишь его жалкое подобие, system tick, который работает от "быстрого" кристалла, который большую часть времени "спит".
Производство (или около того):
1)Программатор проприетарный, работает по закрытому протоколу SPI (своя система команд), стоит конских денег. Китайцы правда подсобили, и склонировали, с 5 раз меньшей ценой, но все равно - шить только виндовой проприетарной утилитой. Учитывая нюансы процесса (калибровка) - получается, нельзя даже "предпрошивать" eeprom.
2)Каждую железку надо калибровать, определять калибровочное значение на специальном девайсе, и перегенерить новый образ прошивки с калибровочным значением crystal trim.
3)Для прошивки надо SPI (4 контакта), естественно питание (еще 2), ну и пин для включения режима программирования. 6 контактов? Блин...
4)Самое веселое - OTA. Только их бутлодер, закрытый, через приложение (исходники которого не дают, ибо export control), и чтобы сохранить мак адрес и юзерские данные - нужно почесать левой ногой правое ухо.
Вобщем у меня неслабое ощущение, что чип несколько неприемлим для какого-либо производства.
Правильно ли я понимаю, что для NRF51 надо лишь SWDIO, SWCLK, VCC and GND для прошивки и тестов в производстве?
Я в данной сфере новичок, может вышесказанное норма, и я наступлю на те же грабли с NRF51?