Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

Кому нибудь приходилось цеплять CCS811 к esp8266?

Тема в разделе "Сенсоры/датчики для DIY устройств", создана пользователем МихCCS811, 1 мар 2018.

  1. МихCCS811

    МихCCS811 Новичок

    Сообщения:
    2
    Симпатии:
    0
    Пытаюсь общаться с сим чудом на lua. Откликается на HW_ID=0x81, HW Version и т.п., однако при считывании данных из MEAS_MODE выдает данные по такому сценарию:
    обратился к HW_ID получил HW_ID=0x81
    далее обратился к ALG_RESULT_DATA (запрос на 4 байта) получил ALG_RESULT_DATA=0x81,0xfd,0xfd,0xfd:(
    или так:
    обратился к FW_Boot_Version получил FW_Boot_Version=0x10,0x00
    далее обратился к ALG_RESULT_DATA (запрос на 4 байта) получил ALG_RESULT_DATA=0x10,0x00,0xfd,0xfd:mad:
    обратился к ENV_DATA получил ENV_DATA=0x10,0x00,0xfd,0xfd
    При этом как его только не инициализировал (например SW_RESET->MEAS_MODE->APP_START), какие только задержки не вводил- один хрен одно и тоже.:eek:
    Может кто подскажет в чем дело?
     
    Последнее редактирование: 1 мар 2018
  2. МихCCS811

    МихCCS811 Новичок

    Сообщения:
    2
    Симпатии:
    0
    Забросил надолго это дело под esp8266. Сегодня решил его прицепить к другому МК. Практически сразу разобрался. Если кому интересно для общего понимания asm код для c8051f340 (его значимая часть)
    Код (Text):
    1. ;---Инициализация чипа ccs811---
    2. INSTccs811:;maxsentcounter- макс. кол-во передаваемых байт
    3. ;maxreccounter- макс. кол-во принимаемых байт
    4. ;TARGET- Адрес ведомого чипа
    5. ;SMB_DATA_OUT- Буфер передаваемых данных
    6. ;SMB_DATA_IN- Буфер принимаемых данных
    7. ;---
    8. mov R0,#TARGET;- Адрес ведомого чипа
    9. mov @R0,#0xB4;- Адрес ведомого чипа ccs811(ADDR=GND=0x5A;ADDR=Vdd=0x5B)
    10. mov maxreccounter,#0x01;- макс. кол-во принимаемых байт
    11. mov R0,#SMB_DATA_OUT
    12. mov @R0,#0x20;- адрес регистра "ID" чипа ccs811
    13. mov maxsentcounter,#0x02;- макс. кол-во передаваемых байт
    14. CALL    SMB_Write
    15. mov maxsentcounter,#0x01;- макс. кол-во передаваемых байт
    16. CALL    SMB_Write
    17. CALL    SMB_Read
    18. mov R0,#SMB_DATA_IN
    19. mov A,@R0
    20. cjne A,#0x81,INSTccs811m3
    21. jmp INSTccs811m4
    22. INSTccs811m3:clr bit_ccs811;- =0- чип ccs811 не обнаружен;=1- чип ccs811 подключен
    23. jmp INSTccs811m9
    24. INSTccs811m4:setb bit_ccs811;- =0- чип ccs811 не обнаружен;=1- чип ccs811 подключен
    25. ;--
    26. mov R0,#TARGET
    27. mov @R0,#0xB4;- Адрес ведомого чипа ccs811(ADDR=GND=0x5A;ADDR=Vdd=0x5B)
    28. mov maxreccounter,#0x01;- макс. кол-во принимаемых байт
    29. mov R0,#SMB_DATA_OUT
    30. mov @R0,#0x00;- адрес регистра "STATUS" чипа ccs811
    31. mov maxsentcounter,#0x02;- макс. кол-во передаваемых байт
    32. CALL    SMB_Write
    33. mov maxsentcounter,#0x01;- макс. кол-во передаваемых байт
    34. CALL    SMB_Write
    35. CALL    SMB_Read
    36. mov R0,#SMB_DATA_IN
    37. mov A,@R0
    38. ;APP_VALID=1?
    39. jnb ACC.4,INSTccs811m3;переход при APP_VALID=0
    40. ;APP_VALID=1- Valid application firmware loaded
    41. ;--
    42. mov maxsentcounter,#0x01;- макс. кол-во передаваемых байт
    43. mov R0,#SMB_DATA_OUT
    44. mov @R0,#0xF4;- адрес регистра "APP_START" чипа ccs811
    45. CALL    SMB_Write
    46. mov maxsentcounter,#0x01;- макс. кол-во передаваемых байт
    47. mov R0,#SMB_DATA_OUT+1
    48. mov @R0,#0x00
    49. mov R0,#SMB_DATA_OUT+2
    50. mov @R0,#0x00
    51. CALL    SMB_Write
    52. ;-
    53. ;--
    54. mov R0,#TARGET
    55. mov @R0,#0xB4;- Адрес ведомого чипа ccs811(ADDR=GND=0x5A;ADDR=Vdd=0x5B)
    56. mov maxreccounter,#0x01;- макс. кол-во принимаемых байт
    57. mov R0,#SMB_DATA_OUT
    58. mov @R0,#0x00;- адрес регистра "STATUS" чипа ccs811
    59. mov maxsentcounter,#0x02;- макс. кол-во передаваемых байт
    60. CALL    SMB_Write
    61. mov maxsentcounter,#0x01;- макс. кол-во передаваемых байт
    62. CALL    SMB_Write
    63. CALL    SMB_Read
    64. mov R0,#SMB_DATA_IN;- Буфер принимаемых данных
    65. mov A,@R0
    66. ;FW_MODE=1?
    67. jnb ACC.7,INSTccs811m3;переход при FW_MODE=0
    68. ;FW_MODE=1- Firmware is in application mode. CCS811 is ready to take ADC measurements
    69. ;--
    70. mov maxsentcounter,#0x01;- макс. кол-во передаваемых байт
    71. mov R0,#SMB_DATA_OUT
    72. mov @R0,#0x01;- адрес регистра "MEAS_MODE" чипа ccs811
    73. CALL    SMB_Write
    74. mov maxsentcounter,#0x01;- макс. кол-во передаваемых байт
    75. mov R0,#SMB_DATA_OUT+1
    76. mov @R0,#0x10
    77. mov R0,#SMB_DATA_OUT+2
    78. mov @R0,#0x00
    79. CALL    SMB_Write
    80. ;--
    81. mov R0,#TARGET
    82. mov @R0,#0xB4;- Адрес ведомого чипа ccs811(ADDR=GND=0x5A;ADDR=Vdd=0x5B)
    83. mov maxreccounter,#0x01;- макс. кол-во принимаемых байт
    84. mov R0,#SMB_DATA_OUT
    85. mov @R0,#0xE0;- адрес регистра "ERROR_ID" чипа ccs811
    86. mov maxsentcounter,#0x02;- макс. кол-во передаваемых байт
    87. CALL    SMB_Write
    88. mov maxsentcounter,#0x01;- макс. кол-во передаваемых байт
    89. CALL    SMB_Write
    90. CALL    SMB_Read
    91. ;--
    92. ;---считываем через 1сек.
    93. ;eCO2=[400,8192]
    94. ;TVOC=[0,1187]
    95. mov R0,#TARGET
    96. mov @R0,#0xB4;- Адрес ведомого чипа ccs811(ADDR=GND=0x5A;ADDR=Vdd=0x5B)
    97. mov maxreccounter,#0x08; макс. кол-во принимаемых байт
    98. mov R0,#SMB_DATA_OUT
    99. mov @R0,#0x02;- адрес регистра ALG_RESULT_DATA
    100. mov maxsentcounter,#0x02;- макс. кол-во передаваемых байт
    101. CALL    SMB_Write
    102. mov maxsentcounter,#0x01;- макс. кол-во передаваемых байт
    103. CALL    SMB_Write
    104. CALL    SMB_Read
    105. mov R0,#SMB_DATA_IN
    106. mov DPTR,#BufCompCcs811HL;- данные из ccs811 [BufCompTsl2561HL,BufCompTsl2561HL+0x07]
    107. mov R1,#0x08
    108. INSTccs811m55:mov A,@R0
    109. movx @DPTR,A
    110. inc R0
    111. inc DPTR
    112. djnz R1,INSTccs811m55
    113. ;---
    114. INSTccs811m9:
    115. ;---END---
     

Поделиться этой страницей