Перейти к содержанию

Stm и digispark по i2c


xrou

Рекомендуемые сообщения

Всем привет, собираю сеть из stm32f103c8t6 и digispark (attiny85), связь по i2c. Digispark включается с задержкой 5-6 секунд, в это время stm уже начинает слать пакеты, при включении digispark отправка происходит, но сигнал тухнет. Исправил это добавив задержку перед инициализацией периферии, в итоге код получился такой:

int main(void)
{
  /* USER CODE BEGIN 1 */
	
  /* USER CODE END 1 */

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */
	HAL_Delay(7000);
  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_I2C1_Init();
  MX_USART1_UART_Init();
  /* USER CODE BEGIN 2 */
	
	
	HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET);
	HAL_Delay(100);
	HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET);
	
	uint8_t I2C_Address = 0x50;
	uint8_t recieveData = 0;
	
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
		uint8_t sendData = 10;
		HAL_I2C_Master_Transmit(&hi2c1, (I2C_Address << 1), &sendData, 1, 100);
		HAL_Delay(100);
		
		sendData = 20;
		HAL_I2C_Master_Transmit(&hi2c1, (I2C_Address << 1), &sendData, 1, 100);
		HAL_Delay(100);
		
		HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET);
		HAL_Delay(100);
		HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET);
		/* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}

Но связи по прежнему нет. Для отладки поставил вместо stm ардуину - связь есть. Поставил вместо digispark ардуину - связь есть (между stm и ардуино). Digispark как будто не слышит stm. В чем проблема? Использую аналог digispark - attiny85 uno mini usb (тот же самый digispark, но с другим портом)

 

Код digispark

#include <TinyWire.h>
#define SLAVE_ADDR 0x50

int potVal = 0;
int led_val = 0;

void setup()
{
  pinMode(1, OUTPUT);
  
  TinyWire.begin(SLAVE_ADDR);
  TinyWire.onRequest(angleRequest);
  TinyWire.onReceive(messageReceive);
  
  digitalWrite(1, HIGH);
  delay(50);
  digitalWrite(1, LOW);
}

void loop()
{

}

void messageReceive(int howMany)
{
  if(led_val == 1)
  {
    digitalWrite(1, LOW);
    led_val = 0;
  }
  
  else if(led_val == 0)
  {
    digitalWrite(1, HIGH);
    led_val = 1;
  }
  
  uint8_t receiveData = TinyWire.read();
}

void angleRequest()
{
  potVal = analogRead(3);
  
  byte high = highByte(potVal);
  byte low = lowByte(potVal);

  TinyWire.send(high);
  TinyWire.send(low);
}

 

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

3 часа назад, Yurkin2015 сказал:

@xrou  Резисторы подтяжки линий I2C к питанию установлены где-нибудь на STM или attiny85?

Да, 10 кОм каждый к линии 5 вольт. Может надо к 3,3?

Ссылка на комментарий
Поделиться на другие сайты

Особенности хранения литиевых аккумуляторов и батареек

Потеря емкости аккумулятора напрямую зависит от условий хранения и эксплуатации. При неправильном хранении даже самый лучший литиевый источник тока с превосходными характеристиками может не оправдать ожиданий. Технология, основанная на рекомендациях таких известных производителей литиевых источников тока, как компании FANSO и EVE Energy, поможет организовать правильный процесс хранения батареек и аккумуляторов. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

14 часов назад, Yuriy.pv сказал:

Для начала уровни выровняйте, вот и работает в одну сторону..

Уровни выравниваю отдельной платой, которая по сути просто несколько транзисторов. Работает в обе стороны. 3,3В <-> 5В

Ссылка на комментарий
Поделиться на другие сайты

@xrou  Ну, вот, началось, плата с транзисторами какая-то ... Не надо платы, она всё портит. Нужны только пара резисторов подтяжки на питание +5 В, и соединять линии I2C напрямую. У процессора stm32f103c8t6 эти входы терпят напряжение 5В без проблем.

Изменено пользователем Yurkin2015
Ссылка на комментарий
Поделиться на другие сайты

9 минут назад, Yurkin2015 сказал:

@xrou  Ну, вот, началось, плата с транзисторами какая-то ... Не надо платы, она всё портит. Нужны только пара резисторов подтяжки на питание +5 В, и соединять линии I2C напрямую. У процессора stm32f103c8t6 эти входы терпят напряжение 5В без проблем.

Так тоже пробовал. Stm, digispark питаются от 5 вольт, линии I2C подключены на прямую. Резистор 10к на SDA и резистор 10к на SCL 

Ссылка на комментарий
Поделиться на другие сайты

18 часов назад, Yuriy.pv сказал:

Для начала уровни выровняйте, вот и работает в одну сторону..

Полистал даташит на микросхемы attiny https://static.chipdip.ru/lib/542/DOC003542649.pdf. При питании 5 вольт, за единицу берется напряжение от 2.5 вольт (пункт 22.7). Еще и запас остается около 0.8 вольт

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
  • Сообщения

    • Верно подмечено. Вот их-то, КТ602ВМ и BD139 в ТО-126 в 1969-ом как раз-таки и не было. Не только у J. L. Hood-а, их вообще ещё не существовало. К тому же КТ602БМ  в корпусе КТ-27-2 (как и BD139 в TO-126) и КТ602А в корпусе КТЮ-3-9 - это совсем не близнецы-братья. Технология изготовления совершенно разная, а она при работе транзисторов динамическом режиме, как в случае с JLH-69, играет далеко не последнюю роль. Просто юноша в силу своего быстрого и раннего развития об этом ничего не знает. 
    • Садится разбираться в алгоритме работы и на микроконтроллере делать замену.  Попробуйте прогреть микросхему на зажигалке, когда-то читал о таком способе восстановления процессора от телевизора. Шансов мало, но вам нечего терять, а потом в панельку.
    • Я хочу попробовать разные способы победить эти шумы. Для начала собрать фильтр для блока питания. Корпус с блютуз антенной я пробовал убрать, ничего не изменилось, если фильтр для блока питания тоже не поможет, значит дело в самом усилителе. В Aiyima A3001, который выдает шум гораздо тише, на выходе стоят электролитические конденсаторы и фильтры, можно попробовать сделать также и на Aiyima A09, может таким образом удастся снизить шумы. Если нет, то буду искать еще варианты. Кроме шумов еще надо разобраться с щелчками в колонки при включении и выключении Brzhifi. Aiyima A09 выдает щелчок только при выключении сетевого фильтра, и слабый. А вот Brzhifi щелкает так, что аж диффузоры в колонках двигаются. Схема питания у них отличается, Brzhifi остается в режиме ожидания и питание не отключается, я хочу переделать его так, чтобы оно отключалось, как на Aiyima A09. Может там что сдохло. а может он так спроектирован. Либо что то делать с контроллером питания, либо найти в схеме где можно врезать выключатель и впихнуть его.
    • @CrazyDog34RU Понять, что изначально были неправы, и питание в вашей проблеме не виновато, например?
    • Неожиданный вопрос... При измерениях в любой точке вот этой части схемы "масса" осциллографа вот тут: При измерениях вот в этой части схемы - вот тут: У этой части схемы - вот в этой точке: Подключать "массу" к одной части схемы, а смотреть точки в другой - нельзя. Все эти три "общие" точки - совершенно разные точки. Между ними может быть вполне ощутимое напряжение. Вот тут это хорошо видно:
    • @CrazyDog34RU Интересно, а если попросить вас перечитать осознанно тему с самого начала, вы измените свое мнение насчет шума?..
×
×
  • Создать...