eddy_em: (Default)
[personal profile] eddy_em
Решил себе сканер шины I2C сделать. Штука совсем простая: можно посмотреть, на каких адресах есть железяки (я только 7-битную адресацию реализую, т.к. 10-битных устройств мне пока не попадалось). Потом можно установить, с каким адресом работать, и читать содержимое регистров (можно скопом до 128 байт за присест) или изменять его (по одному байту за раз).
Собираюсь реализовать интерфейс для BMP180, воткнул его и запустил скан. Получил:
Scan mode
0x77 (119) - found device
Scan ends

Дальше решил просто посмотреть содержимое регистров. До 0x7f (включительно) нули, а вот дальше уже всякое разное добро находится. Причем, документированы только регистры, начиная с 0xAA (170), а что там до них — одному производителю известно. Первые 32 байта дублируются (т.е. сначала они идут с адреса 0x80, а потом — с 0xA0). С 0xC0 идут в основном нули, а с 0xF9 опять идет кусок того же, с чего начинается 0x80 и 0xA0.

Что до даташита на BMP180, измерения здесь тоже через одно место проводятся (но еще и данные температуры и давления хранятся в одних и тех же регистрах!). И формула коррекции давления опять похожа на заклинание для вызова дьявола!

October 2025

S M T W T F S
   1234
567 89 1011
121314 15161718
19202122232425
2627 28293031 

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 24th, 2026 10:27 pm
Powered by Dreamwidth Studios