А может быть чтение из регистра надо перенести после завершения транзакции? (поменять местами строки
Data_in = reg_spi_data; и
while(reg_spi_ctrl& FLD_SPI_BUSY );)
как Вы написали, так это и понятно. Это только Вы тут выпендриваетесь, написав сначала, что подключили только Tx и получили двусторонний обмен, а потом, оказывается, не только Tx подключили (когда Вам на это указали)...
Случайно наткнулся, иногда почитываю темы ради интереса...
Отличная шутка! XD Нафига в UART Rx\Tx линии, когда можно подключить только Tx и будет двухсторонний обмен...
Хм, а перемычку рядом с ldo ставили? (если плату от 3.3в питаете) И да, а скорость i2c какая? (если под 1мгц, может быть 10к много, попробовать поставить подтяжки 4.7...2.2к)
Может быть дело в резисторах подтяжки (банально, резистор бракованный с трещиной или непропаем), когда пальцем прижимали - подтянули к питанию как бы линии scl, sda.
Если dc-dc плохого качества (с алишки шерпотребный), то скорей всего на выход (да и на вход) он шумит сильно (ставят ужасную и дешевую керамику Y5R и не достаточной емкости) - тогда да, могут быть проблемы с soc.... особенно, если в качестве декапа стоит едиснтвенный 0.1 мкФ.
Попробуйте добавить...
Можно в пеинте уменьшить или на любую хранилку выложить типа https://postimages.org/ru/ или https://ru.imgbb.com/
А питание с usb-uart -плохая затея, если берете именно 3.3В... там обычно оч слабый LDO встроенный. Если берете 5В и внешний LDO - то ок.
По схеме:
- C1 мал очень в качестве декаплинга, к нему бы керамику 22 мкф добавить, уже было бы норм.
- На RST пине нет конденсатора на землю (а с мелким конденсатором по питанию это очень плохо) - может поймать наводки (как раз от проводов, которыми замыкаете или рук) и soc сбросится.
- Как...