Для программирования nRF24LE1 необходим достаточно дорогой программатор (по сравнению например с USBasp у AVR) ,который надо ещё и найти.
На просторах интернета было найдено решение программирования nRF24LE1 через Raspberry PI используя проект бразильца nrf24le1-libbcm2835 . Программка была слегка доработана,а так же добавлен в код немного каментариев на русском.Модернизированный вариант можно скачать здесь.
Существует компилятор SDCC под Raspberry PI - писать и компилировать прошивку под nRF24LE1 можно прямо на Raspberry PI.
Исходный код можно адаптировать под другие миникомпьютеры или железо.
Подключение nRF24LE1 к Raspberry PI
Необходимо подключить ,согласно карте пинов Raspberry PI следущие выводы nRF24LE1:
nRF24LE1 | Raspberry PI |
FSCK | 11 |
FMOSI | 9 |
FMISO | 10 |
FSCN | 8 |
PROG | 24 |
Нумерация выводов по BCM GPIO.Не забываем так же reset у nRF24LE1 подтянуть на плюс.GND и VDD подключаем на соотсвествующие выводы питания 3.3В Raspberry PI. Обращаю внимание,что в зависимости от варианта исполнения корпуса микросхемы nRF24LE1 подключение осуществляется к разным выводам.Смотрите таблицу соотсветствия на страничке nRF24LE1 .
Установка программы-программатора на Raspberry PI
Для успешной работы программатора на Raspberry PI необходима установленная библиотека bcm2835.Описание установки смотрим здесь.
Архив с программой необходимо распаковать на Raspberry PI ,например в домашнюю папку /home/pi/nrf/ .
Далее необходимо выполнить компиляцию программы стандартной командой make .
После успешной сборки программы можно приступать к программированию nRF24LE1.
Прошивка nRF24LE1.
В данный момент реализованы 3 команды утилиты:
./nrf24le1 test - выводит тестовую информацию nRF24LE1.
Если состояние битов отличается,то чтение было скорее всего не успешным.Возможно nRF24LE1 не верно подключен (или Вы модифицировали эту информацию ).Подробнее о назначении битов можно посмотреть на 72 странице даташита nRF24LE1.
./nrf24le1 write - прошьет файл main.bin,лежащий в этой же папке в nRF24LE1
Если началась успешная прошивка,то вы увидите такую бегущую иформацию.Иначе ,если nRF24LE1 не ответил,то получите ошибку :
Flash не отвечает.
Что значит возможно nRF24LE1 не верно подключен.
./nrf24le1 read -создаст дамп прошивки из nRF24LE1 под имененем main-dump.bin .Если файл содержит одни нули или одинаковые байты,то возможно nRF24LE1 подключен не правельно.
Кстати, программатор требует бинарный файл для загрузки,но компилятор SDCC выдает файл в шестнадцатеричном формате (.ihx). Для того чтобы преобразовать прошивку в правельный формат необходимо ,используя утилиту hex2bin выполнить команду ./hex2bin -p 00 main.ihx .Данную команду можно прописать в make файл ниже команды компиляции для автоматического создания bin файла.
Если Вы программируете в Linux системе и прошиваете через малинку, то возможно настроить автоматическое копирование bin файла на Raspberry с помощью команды scp main.bin pi@ip_адрес_raspberry:/путь_к папке/ прописанной там же в make файле. Для того чтобы малинка не запрашивала пароль можно настроить авторизацию по сертификату.