Модули E73-2G4M04S на базе nRF52832

a5021
Offline
Зарегистрирован: 07.07.2013

Нет, там правильный серийник. Тот серийник, из-за которого гемор, относится к юсб интерфейсу и убей гром я не понимаю, что он означает. Его видно в J-Link Commander:

Цитата:
C:\Program Files\SEGGER\JLink_V633i>JLink.exe
SEGGER J-Link Commander V6.33i (Compiled Jul 24 2018 16:06:33)
DLL version V6.33i, compiled Jul 24 2018 16:06:12

Connecting to J-Link via USB...O.K.
Firmware: J-Link ARM-OB STM32 compiled Aug 22 2012 19:52:04
Hardware version: V7.00
License(s): RDI,FlashDL,FlashBP,JFlash,GDB
VTref=3.300V

Type "connect" to establish a target connection, '?' for help
J-Link>ShowEmuList
J-Link[0]: Connection: USB, Serial number: 123456, ProductName: J-Link
J-Link>

В предпоследней строке 123456 -- это оно и есть. Не пойму, то ли я его где-то так задал, то ли оно само собой создается, но причина, похоже, в нем.

dosikus
Offline
Зарегистрирован: 11.03.2017

У меня в той строке нормальный серийник, по дефолту прошивка с серийником -1.

 

a5021
Offline
Зарегистрирован: 07.07.2013

Одной только вышеприведенной картинки оказалось достаточно, чтобы найти правильное решение. В частности, в колонке USB Identification у меня значилась еще одна загадочная надпись -- "USB 0" вместо серийного номера. Правый кнопарь + "Reset Config" исправили ситуацию настолько, что nrfjprog опять начал шить/стирать МК, как ни в чем не бывало:

Цитата:
>nrfjprog.exe --program nrf52832_xxaa.hex
Parsing hex file.
Reading flash area to program to guarantee it is erased.
Checking that the area to write is not protected.
Programing device.

Вобщем, спасибо за наводку, как говориться.

PS. Раз уж и nrfjprog заработал, попробую и для него конфигурацию прошивальщика нарисовать.

dosikus
Offline
Зарегистрирован: 11.03.2017

Я рад за тебя. Может вскоре и аурдунью покинешь и займешься делом...
Да и кстати сеггеры советуют шить jlink commander , что кстати так же консоль.
Но это я обо всех арм ...
Да и приятно с тобой имеиь дело, схватываешь все на лету, и думаешь не стандартно....

a5021
Offline
Зарегистрирован: 07.07.2013

Загадочные все-таки эти нордики. Пин резета по умолчанию у них является обычным GPIO. Зарезетить с помощью него чип никак не получится, если при программировании отдельно не озаботиться тем, что резет должен забыть о своей GPIO-сущности и стать резетом.

С одной стороны может и фиг бы с ним, с этим резетом -- не так уж он и нужен, когда устройство работает штатным образом. С другой, если МК использует режимы сна, то достучаться до него без резета в таком состоянии может быть проблематично, а в процессе отладки/разработки это часто требуется. Вроде бы не вопрос -- конфигурируем пин резета, цепляем прогамматор, в т.ч. и к резету и погнали.

J-Link таким образом работает без проблем. Но ST-Link не работает. ST-Link знает, как конектиться под резетом, умеет это делать на STM32, но не на нордиках. Странно. Еще более странно это начинает выглядеть, если учесть, что каким-то малопонятным способом ST-Link умеет выводить нордики из глубокого сна совсем без резета.

Кейл с ИАРом через ST-Link без особых затруднений будят nRF52  и шьют его по трем проводам (SWDIO, SWDCLK и  GND), когда линия резета не используется, а сам пин может быть даже не сконфигурирован в резет. Но те же  Кейл с ИАРом одинаково пасуют, если тот же трюк попытаться провернуть через J-Link. Не работает. J-Link желает работающей линии резета, а по другому, увы.

Если бы небыло ST-Link-а, то первый же уход в сон без сконфигурированного резета окирпичил бы МК. Нет, МК, разумеется, остался бы жив, но вот перепрограммировать его стало бы уже никак.  С другой стороны, ST-Link почти бесполезен, если разработку вести на GCC + утилиты командной строки. Как только МК уйдет в сон, с помощью ST-Link-а его уже будет не поднять, даже если с резетом все хорошо.

Пока прикручивал JFlash к ардуине, обратил внимание, что программатор BlackMagic (который тоже можно легко сделать из голубой таблетки) использует свой оригинальный метод загрузки скомпилированного скетча во флеш МК. BlackMagic реализует в железе GDB-сервер. В комплекте GCC есть автономный отладчик, который умеет к этому серверу цепляться. Отладчиком, подключенным через GDB-сервер к целевой платформе, можно, как прочитать любой байт в ОЗУ или флеше, так и записать. Таким образом и заливают прошивку.

Вышеописанный метод может и чудной, но интересно другое. Фактически все готово, чтобы запилить под Arduino IDE полноценную отладку. Как знать, может и дождемся.

dosikus
Offline
Зарегистрирован: 11.03.2017

GDB сервер входит в поставку дров Segger'а , я его даже к IDA прикручивал.

Насчет RESET , посмотри опции на вкладке Debug, там их куча -может что-то и сработает как тебе надо.

 

<Отладчиком, подключенным через GDB-сервер к целевой платформе, можно, как прочитать любой байт в ОЗУ или флеше, так и записать. Таким образом и заливают прошивку.>

Это есть даже в Jlink Commander...

 

alex_r61
Offline
Зарегистрирован: 20.06.2012

 Тоже получил парочку модулей. Как-то странно что никто не обратил внимание на схожесть этих модулей, по размеру, с другими популярными модулями ESP32.  У ESP32 торцевых ножек на две меньше. А китайцы под них штампуют макетки. https://ru.aliexpress.com/item/5X7CM-Double-Side-Prototype-PCB-Breadboar...

 Что получилось, с небольшими доработками.

 

 

 

 

 

 

 

 

 

 

 

a5021
Offline
Зарегистрирован: 07.07.2013

Вроде годная штука. Заказал себе тоже. Кому интересно, вот тут немного дешевле выходит:

pup
Offline
Зарегистрирован: 19.08.2018

а что там уже напаяно? уж не step-up ли?  хочется подробностей!

alex_r61
Offline
Зарегистрирован: 20.06.2012

 Я запаял step-down dc-dc converter, он понижает входное до 5 вольт. Затем, через перемычку, подключён LDO регулятор с низким потребленим на 3.3 В. Перемычка позволяет отключать dc-dc и подключать аккумулятор. Ещё на плате нужно отрезать дорожки от земли, на фото вверху их хорошо видно и я, на всякий случай, прикрыл квадратик земли.

a5021
Offline
Зарегистрирован: 07.07.2013

alex_r61
Offline
Зарегистрирован: 20.06.2012

 У меня Кейл предлагает обновить пршивку ST-Link, при отказе даёт ошибку. Стоит обновлять? ST-Link китайский V2.

a5021
Offline
Зарегистрирован: 07.07.2013

У меня без проблем обновляется. Китайский.

Я себе еще одну голубую пилюлю заказал. Штыри впаивать не буду, запаяю резисторы в дырки, кабель и затяну в усадку. Будет J-Link для бедных повседневного пользования. J-Link для NRF52 все же поскладнее будет.

alex_r61
Offline
Зарегистрирован: 20.06.2012

 Обновился без проблем, Кейл всё равно ругается.

dosikus
Offline
Зарегистрирован: 11.03.2017

alex_r61 пишет:

 Обновился без проблем, Кейл всё равно ругается.

 

SoftDevice  вытерт?

 

 

alex_r61
Offline
Зарегистрирован: 20.06.2012

 Может и в этом проблема. Сейчас нет времени разбираться. Главное что ST-Link работает и обновляется, и чип видится в Кейле. Будет время, подтяну ещё J-Link и тогда займусь плотнее.

P.S. Нашёл ещё одну макетку, чуток больше. https://ru.aliexpress.com/item/7x9-ESP8266-ESP-12E-ESP-12F-ESP32-ESP-32S...

dosikus
Offline
Зарегистрирован: 11.03.2017

Если софтдевайс не вытерт то ни прошивки ни дебага не будет.

 

Motrosoff
Offline
Зарегистрирован: 24.12.2015

a5021 пишет:

У меня без проблем обновляется. Китайский.

Я себе еще одну голубую пилюлю заказал. Штыри впаивать не буду, запаяю резисторы в дырки, кабель и затяну в усадку. Будет J-Link для бедных повседневного пользования. J-Link для NRF52 все же поскладнее будет.

Здравствуйте! Как с вами связаться, вот моя почта напишите мне Pashamatros8@mail.ru

lenz
Offline
Зарегистрирован: 31.10.2018

Приветствую всех. А кто нибудь реализацию именное BLE 5 смог запустить? Обычные то примеры работают замечательно.

wallera
Offline
Зарегистрирован: 22.07.2015
ДРУЗЬЯ! Давно зрела мысль переехать  на кортекс и прочитав этот топик
купил на АЛИ сей модуль и  платку как в посте #107. 
Собрал модельку и программатор из Maple mini,(ST-link v2,программатор проверил и он работает)
установил в АРДУИНО ИДЕ библиотеку (https://github.com/sandeepmistry/arduino-nRF5)
пробовал запустить скетч - классический BLINK... не загрузился .
Обратился за помощью к товарищам они нашли: 
платка E73-2G4M04S оказалась залоченной :(
C помощью j-link и keil (у меня его не было) и добавления еще одного проводка к программатору,
который подает питание с модуля E73 в j-link удалось узнать ,что модуль залочен,
 и keil предложил стереть защиту.
Все делалось под  keil.
 
Стер защиту и теперь все работает под АРДУИНО, ну по крайней мере БЛИНК шьетя .
Почему-то никто об этом не рассказал....мож кому полезно будет.
a5021
Offline
Зарегистрирован: 07.07.2013

lenz пишет:
Приветствую всех. А кто нибудь реализацию именное BLE 5 смог запустить? Обычные то примеры работают замечательно.

Некоторые из фишек BLE 5 на nRF52832 реализовать не получится из-за ограничений в аппаратной части. Если именно этот функционал критичен, то стоит рассмотреть вариант смены чипа на nRF52840.

wallera пишет:

платка E73-2G4M04S оказалась залоченной :(

C помощью j-link и keil (у меня его не было) и добавления еще одного проводка к программатору,
который подает питание с модуля E73 в j-link удалось узнать ,что модуль залочен,
Ничего не понял. Про какой проводок речь и зачем питание от E73 подавать в программатор?
wallera
Offline
Зарегистрирован: 22.07.2015

to a5021 

от питания модуля E73(vcc)  к ноге VTref разъема j-link программатора.

а также сответственно землю , swdio, swdclk. 

То что модуль залочен сообщил кейл и предложил снять защиту.

Как мне объяснили ребята , программатор должен знать с какими уровнями входных напряжений ему работать.

a5021
Offline
Зарегистрирован: 07.07.2013

Похоже, что это нюансы функционирования J-Link, т.к. тот же ST-Link не нуждается ни в каких проводках кроме SWD и шьет модули не возбуждаясь по поводу залочки.

dosikus
Offline
Зарегистрирован: 11.03.2017

a5021,   это "нюансы" полноценных линков и полный STLINK требует подключения VTREF или VTRGT.

   От него запитываются трансляторы уровней. А на огрызках и версий OB их естественно нет...

dosikus
Offline
Зарегистрирован: 11.03.2017

wallera пишет:

 
платка E73-2G4M04S оказалась залоченной :(
 
Почему-то никто об этом не рассказал....мож кому полезно будет.

 

Потому что раз сто уже озвучено, что в модуль прошит softdevice и залочен от перепрошивки ...

lenz
Offline
Зарегистрирован: 31.10.2018

Вообще на самом деле все проще, на сайте сеггера есть софтинка по перепрошивке ST-linka в J-link, прошиваете , скачиваете Nrf-go и он уже сразу говорит нужно восстановить данную железку, разрешаете ему выполнить все оперции и дальше можно возвращать прошивку st-link на место и шить спокойно Кейлом.

wallera
Offline
Зарегистрирован: 22.07.2015

Ну хорошо, там залит softdevice и он залочен , тогда как залить туда программу через ардуино иде , оставив  softdevice ,

у меня только самодельный стлинк 

lenz
Offline
Зарегистрирован: 31.10.2018

Честно на счет самодельного стлинка не скажу, нету такого. Попробуйте его прошить в Jlink если он у вас прошьется то можно будет сделать как я описал выше через NRFgo

dosikus
Offline
Зарегистрирован: 11.03.2017

wallera,  надо корректировать адреса флеша  для своего софта,  вектора сброса и прерываний....

wallera
Offline
Зарегистрирован: 22.07.2015

dosikus пишет:

wallera,  надо корректировать адреса флеша  для своего софта,  вектора сброса и прерываний....

а можно по-подробнее для начинающего ....пожалуйста...

dosikus
Offline
Зарегистрирован: 11.03.2017

Это достаточно сложно для начинающего, в двух словах не объяснишь .

Здесь или использовать SDK с его настройками - как, куда и зачем расписано в мануале Getting started with Keil , либо юзать только bare_metall что собственно и описывает здесь a5021 .

nRF5 Series: Developing on
Windows with ARM ® Keil
MDK
Getting Started Guide

lenz
Offline
Зарегистрирован: 31.10.2018

dosikus пишет:

Это достаточно сложно для начинающего, в двух словах не объяснишь .

Здесь или использовать SDK с его настройками - как, куда и зачем расписано в мануале Getting started with Keil , либо юзать только bare_metall что собственно и описывает здесь a5021 .

 А можно где то посмотреть пример как с помощью сдк создать проект не использующий 100500 файлов из самого сдк. Просто в сдк я проекты редактирую без проблем, но применение половины файлов для меня остается загадкой.

dosikus
Offline
Зарегистрирован: 11.03.2017

Не получится быть" слегка беременной"...
Или вы пользуете sdk либо bare_metall естественно без softdevice.

lenz, если вы о bare_metall , то здесь создание проекта ничем не отличается от других арм:
Хидеры CMSIS
Хидеры вендора
Стартап и систем_инит
Все есть в паках Keil.
В SES все натыкивается в визарде...

lenz
Offline
Зарегистрирован: 31.10.2018

dosikus пишет:
Не получится быть" слегка беременной"... Или вы пользуете sdk либо bare_metall естественно без softdevice. lenz, если вы о bare_metall , то здесь создание проекта ничем не отличается от других арм: Хидеры CMSIS Хидеры вендора Стартап и систем_инит Все есть в паках Keil. В SES все натыкивается в визарде...

А в bare_metall работа с ble есть? или там тоже через костыли все?

dosikus
Offline
Зарегистрирован: 11.03.2017

Если сами напишите будет.

wallera
Offline
Зарегистрирован: 22.07.2015

2dosikus

Ну а как же с    https://github.com/sandeepmistry/arduino-BLEPeripheral

как Вам кажется с этого можно начать?

lenz
Offline
Зарегистрирован: 31.10.2018

dosikus пишет:
Если сами напишите будет.

понятно. я вроде нашел реализацию Hal radio

А вообще можно вопросов позадавать ?) Если мне кроме бле ничего не надо мне же по сути SDK с softdevice не требуется? уж больно он много весит просто.

lenz
Offline
Зарегистрирован: 31.10.2018

wallera пишет:

Ну а как же с    https://github.com/sandeepmistry/arduino-BLEPeripheral

как Вам кажется с этого можно начать?

Работать с 52832 из под ардуино? там вроде все и так сверхпросто, все либы за нас уже написаны бери да лепи в кучу

dosikus
Offline
Зарегистрирован: 11.03.2017

wallera, причем здесь обсуждаемый девайс?

lenz, softdevice и есть радиочасть тобишь ble.

a5021
Offline
Зарегистрирован: 07.07.2013

lenz пишет:
А вообще можно вопросов позадавать ?) Если мне кроме бле ничего не надо мне же по сути SDK с softdevice не требуется? уж больно он много весит просто.

Вы, выходит, не читатель? Писатель больше? Просто на этот вопрос я уже отвечал в  ветке.

lenz
Offline
Зарегистрирован: 31.10.2018

a5021 пишет:

lenz пишет:
А вообще можно вопросов позадавать ?) Если мне кроме бле ничего не надо мне же по сути SDK с softdevice не требуется? уж больно он много весит просто.

Вы, выходит, не читатель? Писатель больше? Просто на этот вопрос я уже отвечал в  ветке.

я упустил, ссори.) но я на ардуине с железкой не играю, у меня 52810 а она немного не стыкуется с ардуиной, я с кейла с ней играю. поэтому все упоминания ардуины и их либ пролистываю вскольз, применять их гемморойно в последнее время.

dosikus
Offline
Зарегистрирован: 11.03.2017

lenz, я работаю с сабжем чисто в кайле и SES, но ковыряние sdk на счет вычленения лишнего кроме softdevice задвинул в долгий ящик...

lenz
Offline
Зарегистрирован: 31.10.2018

dosikus пишет:
lenz, я работаю с сабжем чисто в кайле и SES, но ковыряние sdk на счет вычленения лишнего кроме softdevice задвинул в долгий ящик...

ясно. Огромный уж больно этот сдк....

a5021
Offline
Зарегистрирован: 07.07.2013

nRF52 -- это Cortex-M + периферия от нордика, включая их оригинальный 2.4ггц радиоблок. Никаких блютузов в железе там нет и в помине. Весь функционал BLE обеспечивает SoftDevice, а интерфейс к нему SDK. Т.к. стек протоколов и пользовательская программа работают на одном и том же железе, встает вопрос безопасного совместного использования ресурсов МК. В SDK эта проблема решена через диспетчеризацию и приоритезацию доступа. Теоретически, ничто не мешает отказаться от SDK, только нужно быть готовым, что это не упростит жизнь, а существенно ее усложнит.

wallera
Offline
Зарегистрирован: 22.07.2015

2  a5021   по посту 

http://arduino.ru/forum/apparatnye-voprosy/moduli-e73-2g4m04s-na-baze-nr...

a5021 пишет:

Код пока существует, как проект в KEIL-е. Собираюсь перебросить в Arduino IDE и как закончу выложу здесь.

 ВЫ собирались  перебросить в Arduino IDE, но .... ЖДЕМС....

a5021
Offline
Зарегистрирован: 07.07.2013

Я помню о своем обещании, но пока времени не хватает. Постараюсь в ближайшее время вернуться к этому.

wallera
Offline
Зарегистрирован: 22.07.2015

Кто нибудь пробовал к сему модулю какое нибудь устройство с I2C подключить, я пытался pcf8563 (часы-календарь ) приладить,чет не хочет работать . 

dosikus
Offline
Зарегистрирован: 11.03.2017

wallera, все прекрасно работает.

void i2c_init(void)
	{
	NRF_TWIM0->PSEL.SCL = PIN_SCL;
  NRF_TWIM0->PSEL.SDA = PIN_SDA;

  NRF_TWIM0->ADDRESS = DEVICE_ADDRESS;
  NRF_TWIM0->FREQUENCY = TWIM_FREQUENCY_FREQUENCY_K400 << TWIM_FREQUENCY_FREQUENCY_Pos;
  NRF_TWIM0->SHORTS = 0;

  NRF_TWIM0->ENABLE = TWIM_ENABLE_ENABLE_Enabled << TWIM_ENABLE_ENABLE_Pos;

 
	}


void i2c_write(uint8_t addr, uint8_t data)
{
  uint8_t tx_buf[2];
  NRF_TWIM0->SHORTS = TWIM_SHORTS_LASTTX_STOP_Msk;

  tx_buf[0] = addr;
  tx_buf[1] = data;
  NRF_TWIM0->TXD.MAXCNT = sizeof(tx_buf);
  NRF_TWIM0->TXD.PTR = (uint32_t)&tx_buf[0];

  NRF_TWIM0->EVENTS_STOPPED = 0;
  NRF_TWIM0->TASKS_STARTTX = 1;
  while (NRF_TWIM0->EVENTS_STOPPED == 0);
}

uint8_t i2c_read(uint8_t addr)
{
  uint8_t tx_buf[1];
  uint8_t rx_buf[1];
  NRF_TWIM0->SHORTS = TWIM_SHORTS_LASTTX_STARTRX_Msk | TWIM_SHORTS_LASTRX_STOP_Msk;

  tx_buf[0] = addr;
  NRF_TWIM0->TXD.MAXCNT = sizeof(tx_buf);
  NRF_TWIM0->TXD.PTR = (uint32_t)&tx_buf[0];

  NRF_TWIM0->RXD.MAXCNT = 1;
  NRF_TWIM0->RXD.PTR = (uint32_t)&rx_buf[0];

  NRF_TWIM0->EVENTS_STOPPED = 0;
  NRF_TWIM0->TASKS_STARTTX = 1;
  while (NRF_TWIM0->EVENTS_STOPPED == 0);

  return rx_buf[0];
}

 

wallera
Offline
Зарегистрирован: 22.07.2015

Это код под Кеил, мне под Ардуино портированный нужен.

dosikus
Offline
Зарегистрирован: 11.03.2017

Ну ожидайте тогда чуда...

Честно говоря, вы даже не понимаете какую чушь несете.

Озвучьте плиз, по каким критериям вы опредили что это "код под кайло"?

Си он и в африке  Си ...

Изучите примеры a5021 на первых страницах, может быть дойдет...