Шлюз UART-to-I2C/SPI/1W RH-0010

1.190,00 руб.

Шлюз, позволяющий через интерфейс UART общаться в режиме мастера с устройствами, имеющими интерфейсы I2C, SPI или 1-Wire (однопроводная шина). Может использоваться как программатор микросхем памяти и микроконтроллеров.

Любые вопросы по поводу покупки или работы шлюза можно задать на форуме (в отдельной теме или в личке пользователю rhf-admin), а так же через telegram-бота @radiohlam_ru_bot.

1 в наличии

Описание

Шлюз RH-0010 является модернизированной версией шлюза RH-0004. Благодаря использованию микроконтроллера с увеличенным объёмом памяти и бОльшим количеством выводов, а также из-за наличия специальных дополнительных модулей, в новой версии удалось сохранить все возможности предыдущей модели, а также добавить новый функционал.

Если кратко, то главные особенности версии RH-0010 такие: для обеспечения максимальной программной совместимости все команды шлюза RH-0004 точно также работают с RH-0010 (за исключением команд для работы с I/O, а также с учётом другой скорости UART), добавлена возможность настраивать тайминги для 1-Wire, увеличено количество выводов I/O (и переделаны команды для работы с ними), добавлены команды для ускорения работы через SPI, добавлена куча специальных команд для работы с микроконтроллерами, в комплект включено несколько дополнительных модулей для разных специфичных задач, а также для питания шлюза от телефонной зарядки и формирования подстраиваемого повышенного напряжения.

Модель RH-0010 может использоваться для программирования микросхем памяти с интерфейсами I2C, SPI и 1-Wire, последовательного программирования микроконтроллеров AVR через интерфейс SPI, программирования микроконтроллеров PIC, а также для программирования микроконтроллеров AVR в режиме высоковольтного параллельного программирования, что позволяет использовать шлюз в качестве fusebit-доктора. Полный список вариантов применения шлюза совместно с ПК можно найти в конце страницы.

Как и ранее, для подключения шлюза через UART к персональным компьютерам или контроллерам можно использовать преобразователи интерфейсов USB-to-UART, RS232-to-UART и тому подобные (разъём для подключения по UART остался прежний).

Технические характеристики шлюза RH-0010.

  • — собран на базе RISC-микроконтроллера ATMega88
  • — в состав входят: базовый модуль, модуль питания, модуль AVR, модуль PIC и модуль 1-Wire
  • — конфигурирование и управление осуществляется через UART, при помощи специальных команд
  • — настройки UART шлюза: скорость 250000 бит/сек, 8 бит данных, без проверки чётности, 2 стоп-бита
  • — интерфейс I2C позволяет организовать побайтную передачу данных в режиме single master
  • — для интерфейса SPI реализованы все 4 режима работы, при этом имеется возможность передавать данные пакетами от 1 до 64 бит
  • — для интерфейса 1-Wire доступна побитная и побайтная передача данных
  • — есть возможность изменять дефолтные тайминги 1-Wire для работы с чипами, использующими нестандартные тайминги
  • — помимо интерфейсов I2C/SPI/1W имеется до 17+1 линий GPIO (в зависимости от установленной конфигурации), каждую из которых можно настроить на вход или на выход независимо друг от друга
  • — может питаться как от разъёма XT1 (+5В или +3.3В), так и от дополнительного модуля питания (+5В) (выбирается джамперами JP1, JP2 на плате базового модуля)
  • — модуль питания позволяет запитать шлюз обычной телефонной зарядкой через разъём USB Type-C, а также содержит преобразователь, позволяющий получить необходимое для программирования некоторых микросхем повышенное напряжение
  • — имеется возможность сохранения выбранной конфигурации в EPROM и её автоматическая загрузка при последующих включениях
  • — вход приёмника uart (RxD) имеет преобразователь уровней и на него можно подавать сигналы как с 3.3, так и 5 вольтовым уровнем

1. Описание модулей

1.1 Базовый модуль

плата базового модуля шлюза UART-to-I2C/SPI/1W RH-0010

Базовый модуль является «сердцем» шлюза. Здесь расположен управляющий микроконтролер, реализующий все основные функциональные возможности шлюза, а также все основные разъёмы (описаны ниже). Большинство программируемых микросхем подключается напрямую к базовому модулю (к разъёму XT3).

XT1 — разъём для подключения по UART и питания шлюза (разъём BH-14):

  1. +3.3 — вывод для подачи на шлюз напряжения питания +3.3 Вольта
  2. +5 — вывод для подачи на шлюз напряжения питания +5 Вольт
  3. RxD — вывод приёмника UART шлюза. На этот вывод нужно подавать сигнал передатчика (TxD) подключаемого к шлюзу устройства
  4. TxD — вывод передатчика UART шлюза. На этот вывод нужно подавать сигнал приёмника (RxD) подключаемого к шлюзу устройства
  5. COM — общий провод (сюда подключается минус источника питания и общий провод подключаемого к шлюзу преобразователя интерфейсов)
  6. Остальные выводы разъёма ни к чему не подключены и не используются

XT2 — разъём для внутрисхемного программирования контроллера шлюза.

XT3.1 — выводы интерфейсов I2C, SPI, 1-Wire или GPIO, в зависимости от установленной конфигурации:

  1. PC3(+12V) — на этот вывод может коммутироваться напряжение, подаваемое на шлюз через линию +12 разъёма XT4. Управляется через вывод PC3 микроконтроллера. Для подключения повышенного напряжения нужно командами настроить ногу PC3 на выход и установить на ней единицу, для отключения повышенного напряжения выход PC3 нужно переключить в ноль
  2. PC5(Clock) — вывод тактирования для интерфейсов I2C и SPI, либо GPIO. Джампером JP3 на линии можно включить подтяжку к шине питания через резистор 4,7 кОм
  3. PC4(MOSI) — выход данных от «мастера» для интерфейса SPI, двунаправленная линия данных для интерфейсов 1-Wire и I2C, либо GPIO. Джампером JP4 на линии можно включить подтяжку к шине питания через резистор 4,7 кОм
  4. PC0(MISO) — вход данных от «слэйва» для интерфейса SPI, либо GPIO
  5. PB3(SS/CS) — вывод Slave Select / Chip Select для интерфейсов I2C и SPI, либо GPIO
  6. PB5 — вывод GPIO
  7. PB0 — вывод GPIO
  8. PD7 — вывод GPIO
  9. PD6 — вывод GPIO
  10. PB7 — вывод GPIO
  11. XTAL2 — один из выводов расположенного на базовом модуле кварцевого резонатора (может использоваться, например, для тактирования микроонтроллеров AVR при их программировании через SPI)
  12. COM — общий провод
  13. XTAL1 — один из выводов расположенного на базовом модуле кварцевого резонатора (может использоваться, например, для тактирования микроонтроллеров AVR при их программировании через SPI)
  14. PB6 — вывод GPIO
  15. PD4 — вывод GPIO
  16. PD3 — вывод GPIO
  17. PD2 — вывод GPIO
  18. PB1 — вывод GPIO
  19. PB2 — вывод GPIO
  20. PB4 — вывод GPIO
  21. PC1 — вывод GPIO
  22. PC2(+5V) — на этот вывод может коммутироваться напряжение питания, подаваемое на шлюз через разъём XT1 или линию +5 разъёма XT4 (определяется джамперами JP1, JP2). Управляется через вывод PC2 микроконтроллера. Для подключения напряжения питания нужно командами настроить ногу PC2 на выход и установить на ней ноль, для отключения повышенного напряжения выход PC2 нужно переключить в единицу

XT4.1 — разъём для подключения питания и повышенного напряжения пограммирования. К этому разъёму можно подсоединить входящий в комплект модуль питания

  1. +5 — вывод для подключения к шлюзу напряжения питания +5 Вольт
  2. COM — два вывода для общего провода
  3. +12 — вывод для подключения к шлюзу повышенного напряжения программирования

Power Good — этот вывод соединён напрямую с ногой PD5 управляющего микроконтроллера и может использоваться для формирования сигнала Power Good или в качестве GPIO. Он управляется только специальными командами (SetPowerGoodSignal, ClearPowerGoodSignal) и защищён маской от случайного изменения любыми другими командами, влияющими на конфигурацию или состояние защёлок порта.

Джамперы:

  1. JP1, JP2 — выбор источника питания шлюза, в сответствии с приведённой ниже таблицей
  2. Положение джампера Источник питания шлюза
    JP1 JP2
    A x контакт +3.3 разъёма XT1
    B A контакт +5 разъёма XT1
    B B контакт +5 разъёма XT4
  3. JP3 — позволяет организовать подтяжку линии PC5(Clock) к напряжению питания резистором 4,7 кОм (для этого джампер должен быть замкнут).
  4. JP4 — позволяет организовать подтяжку линии PC4(MOSI) к напряжению питания резистором 4,7 кОм (для этого джампер должен быть замкнут).

1.2 Модуль питания (power)

плата модуля питания шлюза UART-to-I2C/SPI/1W RH-0010

Модуль питания выполняет две функции: во-первых, позволяет запитать шлюз внешним стабильным напряжением +5 Вольт через разъём USB Type-C (например, от телефонной зарядки), что позволяет снизить нагрузку на USB-порт компьютера, и, во-вторых, содержит преобразователь, позволяющий получить повышенное напряжение, необходимое при программировании некоторых микросхем. Уровень формируемого повышенного напряжения можно изменять в диапазоне от 6 до 14 Вольт при помощи специального подстроечного резистора (по-дефолту настроено на +12 Вольт).

Преобразователь напряжения может работать полностью автономно, включаясь сразу после подачи напряжения на разъём USB Type-C, или в режиме внешнего управления, включаясь только при наличии высокого уровня на выводе Enable. Режим работы определяется тем, какой из двух резисторов R45 или R46 припаян на плате (должен быть только один). По-дефолту припаян R46, что выбирает автономный режим работы модуля. Если отпаять этот резистор и припаять его на место R45, то будет выбран режим внешнего управления.

Модуль питания спроектирован так, чтобы легко подключаться к базовому модулю. Разъём XT4 модуля питания подключается к разъёму XT4 базового модуля, а пин Enable — к пину Power Good. Таким образом, когда модуль питания подключен к базовому модулю при распаяном резисторе R45 — включением/выключением преобразователя напряжения управляет сигнал Power Good.

Ещё раз отмечу, что для того, чтобы шлюз питался именно от подключенного модуля питания, — этот источник должен быть выбран джамперами JP1, JP2 на базовом модуле.

XT4.2 — разъём, на который выводится напряжение питания и повышенное напряжения пограммирования. Этот раъём подключается к разъёму XT4.1 базового модуля.

  1. +5 — выход напряжения питания +5 Вольт
  2. COM — два вывода для общего провода
  3. +12 — выход повышенного напряжения программирования от преобразователя

1.3 Модуль 1-Wire

плата модуля 1-Wire шлюза UART-to-I2C/SPI/1W RH-0010

Этот модуль позволяет организовать подключение к шине 1-Wire повышенного напряжения с одновременным отключением от неё вывода микроконтроллера, во избежание его повреждения.

Необходимость подачи на шину 1-Wire повышенного напряжения возникает не всегда, а только при выполнении некоторых специфически команд отдельных чипов (например, для финализации некоторых ключей-таблеток или при записи в чип DS2502). Во всех остальных случаях (когда повышенное напряжение подавать на шину не требуется) чипы 1-Wire можно подключать напрямую к базовому модулю, используя контакты PC4(MOSI) — для шины 1-Wire и COM — для общего провода.

XT3.2 — разъём для подключения к базовому модулю (к разъёму XT3.1)

XT5 — разъём для подключения к шине 1-Wire

1.4 Модуль AVR

плата модуля AVR шлюза UART-to-I2C/SPI/1W RH-0010

Этот модуль позволяет использовать шлюз RH-0010 для программирования микроконтроллеров AVR через параллельный интерфейс (выводы разъёма XT6 подписаны в соответствии с названиями сигналов этого интерфейса). Поскольку при программировании микроконтроллеров AVR через параллельный интерфейс используется повышенное напряжение, то в этом случае на выводе +12 разъёма XT4.1 базового модуля это самое повышенное напряжение должно присутствовать (от подключенного модуля питания или из другого источника).

Кроме того, при программировании микроконтроллеров AVR через интерфейс SPI модуль AVR также может оказаться полезным, поскольку содержит резисторы номиналом 1 кОм, которые нужны при программировании AVR через SPI. В последнем случае вывод PAGEL разъёма XT5 используется для тактирования (Clock), вывод XA1 — для сигнала MOSI, RDY — для MISO, DATA3 — в качестве SS/CS.

XT3.3 — разъём для подключения модуля AVR к базовому модулю (к разъёму XT3.1)

XT6 — разъём для подключения микроконтроллеров AVR

1.5 Модуль PIC

плата модуля PIC шлюза UART-to-I2C/SPI/1W RH-0010

Этот модуль позволяет использовать шлюз RH-0010 для программирования микроконтроллеров PIC, фирмы Microchip. При этом для подключения PIC-контроллеров к шлюзу RH-0010 используются контакты +12V, +5V, COM, Clock и Data разъёма XT7. Остальные контакты (PB0, PD7, PD5, PB7, XTAL2, XTAL1, PB6, PD4, PD3, PD2) выведены на разъём XT7 просто на всякий случай (для будущих применений).

XT3.4 — разъём для подключения модуля PIC к базовому модулю (к разъёму XT3.1)

XT7 — разъём для подключения микроконтроллеров PIC

2. Управление шлюзом

Управление шлюзом осуществляется посредством передачи ему по UART специальных команд, в результате выполнения которых шлюз изменяет какие-либо свои служебные регистры и производит определённые действия. В служебных регистрах хранится конфигурация шлюза, его отдельных интерфейсов, коды ошибок и тому подобное.

Всего существует 5 групп служебных регистров:

  • регистры общего назначения: COMMON_FLAGS, IO_FLAGS, ADD_FLAGS ERROR,
  • регистры I2C: FLAGS_I2C, BTS_I2C, RDB_I2C
  • регистры SPI: CONFIG_SPI, PAKET_SIZE, FLAGS_SPI, REG0-REG7
  • регистры 1-Wire: FLAGS_1W, BTS_1W, RDB_1W, RST1_1W, RST2_1W, RST3_1W, SB1_1W, SB2_1W, SB3_1W, RB1_1W, RB2_1W, RB3_1W
  • регистры GPIO: DDRB, PORTB, PINB, DDRC, PORTC, PINC, DDRD, PORTD, PIND

Первые 4 группы регистров реализованы на регистрах общего назначения контроллера, а регистры GPIO — это соответствующие реальные регистры специального назначения, управляющие портами ввода/вывода.

Для управления шлюзом существуют 6 групп команд (новые команды, которых не было в RH-0004, выделены оранжевым):

  • команды общего назначения: ResetDevice, InterfaceChoiceI2C, InterfaceChoiceSPI, InterfaceChoice1W, ReadError, SaveToEPROM, ReadFromEPROM, EnableReports, DisableReports, EnableAutoLoad, DisableAutoLoad, ReadCommonConfig, ReadVersion, DoExtendedCommand, ReadSerialNumber
  • команды GPIO: DDRBSetup, DDRBRead, PPORTBSetup, PORTBRead, DDRCSetup, DDRCRead, PORTCSetup, PORTCRead, DDRDSetup, DDRDRead, PORTDSetup, PORTDRead, PINBRead, PINCRead, PINDRead, SetIOG
  • расширенные команды: EnterProgMode_HVAVR, GivePagelPosPulse_HVAVR, GiveXTALPosPulse_HVAVR, GiveWRNegPulse_HVAVR, ExecuteVppFirstAlg_PIC, ExecuteVddFirstAlg_PIC, ExecuteVppLastAlg_PIC, ExecuteVddLastAlg_PIC, GiveWR100NegPulse_HVAVR, GiveWR15NegPulse_HVAVR, SetPort_PG, ClearPort_PG, SetDDR_PG, ClearDDR_PG, LoadIOGTime, ClearIOGTime
  • команды I2C: SendStart_I2C, SendStop_I2C, SendByte_I2C, ReadByteA_I2C, ReadByte_I2C, ClearCS_I2C, SetCS_I2C, ReadCS_I2C
  • команды SPI: LoadConfig_SPI, ReadConfig_SPI, LoadPaketSize_SPI, ReadPaketSize_SPI, LoadPaket_SPI, ReadPaket_SPI, StartChange_SPI, ClearSS_SPI, SetSS_SPI, ReadSS_SPI, ReadSignPaket_SPI, FastReadPaket_SPI, FastSendPaket_SPI
  • команды 1W: SendReset_1W, SendByte_1W, ReadByte_1W, SendBit_1W, ReadBit_1W, LoadTimes_1W, ReadTimes_1W, SendByteSTRPU_1W, ClearSTRPU_1W, Get580usPulse_1W, Get110msPulse_1W

Все регистры и команды описаны в отдельном документе: подробное описание регистров, команд и кодов ошибок шлюза RH-0010, здесь же я добавлю про них лишь ещё пару слов.

Первые три группы команд доступны всегда, команды и регистры управления интерфейсами I2C/SPI/1W доступны только если шлюз сконфигурирован для работы с этими интерфейсами (в противном случае при получении такой команды будет сгенерирован код ошибки «неизвестная команда»). Это связано с тем, что некоторые регистры интерфейсов I2C/SPI/1W физически используют одни и те же регистры контроллера и, естественно, не могут использоваться для трёх целей одновременно.

Большинство команд после выполнения возвращают специальный код (код ошибки или 0 — признак успешного выполнения), который записывается в специальный регистр и может быть отправлен по uart. Если в процессе передачи данных по UART произошла ошибка, то принятый байт игнорируется.

3. Программы для работы со шлюзом и варианты его применения

Общие возможности Программа, демонстрирующая общие возможности шлюза. Реализованы все существующие команды, но отсутствует ориентация на конкретное устройство или задачу. Этой программой удобно пользоваться для отладки при разработке ПО для работы со шлюзом.
Скачать исходники
USB-программатор I2C EEPROM Использование шлюза в качестве USB-программатора I2C EEPROM (X24C01, AT24C01A, AT24C02, AT24C04, AT24C08A, AT24C16A, SDA2516, SDA2526, SDA2546, SDA2586, SDA3526, 24E16/25E16, AT24C32, AT24C64, AT24C128, AT24C256, AT24C512, PCF8582-C2, PCF8594-C2, PCF8598-C2)
Скачать исходники
USB-программатор SPI EEPROM Использование шлюза в качестве USB-программатора SPI EEPROM (93C06, 93C46, 93C57, 93C56, 93C66, 93C76, 93C86, NM93C13, NM93C14, AT59C11, AT59C22, AT59C13, AK6420A, AK6440A, AK6480A, 25010, 25020, 25040, 25080, 25160, 25320, 25640)
Скачать исходники
BigSPI (Winbond) Programmer Использование шлюза в качестве USB-программатора SPI flash памяти (W25Q08, W25Q16, W25Q32, W25Q64)
Скачать исходники
USB-программатор контроллеров AVR
(через SPI)
Использование шлюза в качестве USB-программатора для последовательного программирования микроконтроллеров AVR (AT90S1200, AT90S2313, AT90S2323, AT90S2333, AT90S2343, AT90S4414, AT90S4433, AT90S4434, AT90S8515, AT90S8535, AT90CAN32, AT90CAN64, AT90CAN128, ATtiny12, ATtiny13, ATtiny15, ATtiny22, ATtiny2313, ATtiny25, ATtiny26, ATtiny261, ATtiny45, ATtiny461, ATtiny85, ATtiny861, ATmega103, ATmega128, ATmega1280, ATmega1281, ATmega16, ATmega161, ATmega162, ATmega163, ATmega164, ATmega168, ATmega169, ATmega2560, ATmega2561, ATmega32, ATmega323, ATmega324, ATmega48, ATmega603, ATmega64, ATmega640, ATmega644, ATmega8, ATmega8515, ATmega8535, ATmega88)
Скачать исходники
USB-программатор чипов 1-Wire Использование шлюза в качестве USB-программатора микросхем 1-Wire (DS1425, DS1427, DS18B20, DS18S20, DS1822, DS1920, DS1961S, DS1963L, DS1971, DS1982, DS1991, DS1992, DS1993, DS1994, DS1995, DS1996, DS2404, DS2405, DS2415, DS2417, DS2423, DS2430A, DS2431, DS2432, DS24B33, DS2502, DS2890, DS28E05, DS28E07, MAX31826) и ключей 1-Wire (RW1990, AN1990, TM2004)
Скачать исходники
USB-программатор контроллеров AVR
(параллельный высоковольтный режим)
Использование шлюза в качестве USB-программатора для параллельного высоковольтного программирования микроконтроллеров AVR (AT90S1200, AT90S2313, AT90S2333, AT90S4414, AT90S4433, AT90S4434, AT90S8515, AT90S8535, AT90CAN32, AT90CAN64, AT90CAN128, ATtiny2313, ATtiny261, ATtiny461, ATtiny861, ATmega103, ATmega128, ATmega1280, ATmega1281, ATmega16, ATmega161, ATmega162, ATmega163, ATmega164, ATmega168, ATmega169, ATmega2560, ATmega2561, ATmega32, ATmega323, ATmega324, ATmega48, ATmega603, ATmega64, ATmega640, ATmega644, ATmega8, ATmega8515, ATmega8535, ATmega88)
Скачать исходники
USB-программатор контроллеров PIC Использование шлюза в качестве USB-программатора для микроконтроллеров PIC (PIC12(L)F1501, PIC12(L)F1822, PIC12(L)F1840, PIC12F609, PIC12F615, PIC12F617, PIC12F629, PIC12F635, PIC12F675, PIC12F683, PIC12F752, PIC16(L)F1503, PIC16(L)F1507, PIC16(L)F1508, PIC16(L)F1509, PIC16(L)F1823, PIC16(L)F1824, PIC16(L)F1825, PIC16(L)F1826, PIC16(L)F1827, PIC16(L)F1828, PIC16(L)F1829, PIC16(L)F1847, PIC16F610, PIC16F616, PIC16F627A, PIC16F628A, PIC16F630, PIC16F631, PIC16F636, PIC16F639, PIC16F648A, PIC16F676, PIC16F677, PIC16F684, PIC16F685, PIC16F687, PIC16F688, PIC16F689, PIC16F690, PIC16(L)F707, PIC16(L)F720, PIC16(L)F721, PIC16(L)F722, PIC16(L)F722A, PIC16(L)F723, PIC16(L)F723A, PIC16(L)F724, PIC16(L)F726, PIC16(L)F727, PIC16F753, PIC16F785, PIC16F882, PIC16F883, PIC16F884, PIC16F886, PIC16F887)
Скачать исходники

Отзывы

Отзывов пока нет.

Будьте первым, кто оставил отзыв на “Шлюз UART-to-I2C/SPI/1W RH-0010”