Jump to content

    

TEMPO

Участник
  • Posts

    45
  • Joined

  • Last visited

Everything posted by TEMPO


  1. Всем доброго времени суток! Ищу программиста микроконтроллеров STM32, кто может взять меня в ученики и в он-лайн режиме помочь с освоением программирования. Основы языка С знаю, т.е. не придётся объяснять переменный, циклы, условные операторы и другое. Счёт dec/bin/hex тоже знаю. Уже установлены Keil, STM32CubeIDE. Есть разные отладки (F407, F469, L496) и другое своё железо (F103). Хочется поработать с интерфейсами SPI, IIC, UART (RS-485), подключить дисплей (строчный), записать данные на SD-карту и ещё немного разного. Жду предложений по формату обучения и стоимости. Спасибо.
  2. ae_, спасибо, обязательно попробую, только сегодня железку забыл на работе(((
  3. adnega, ae_, спасибо за помощь. Вот так получается надо: Write_Bit_8(0xFF); // первый Write_Bit_8(0xFF); // второй Write_Bit_8(0xFF); // третий PORTD |= (1 << LE); // LE High _delay_ms(10); PORTD &= ~(1 << LE); // LE Low А ведь нужна небольшая задержка между LE High и LE Low?
  4. adnega, так и знал, что про это спросите))) да, всё есть, поэтому и написал, что схема отражает, что относится к логике работы с индикаторами)))
  5. adnega, а вот и схема (начертил, только относящееся к индикаторам)
  6. Да, питание везде 5В. Резистор 1К Вот при такой комбинации, методом тыка, удалось включить два сегмента: PORTD |= (1 << LE); // LE High Write_Bit_8(0x10); // первый Write_Bit_8(0x10); // второй Write_Bit_8(0x10); // третий PORTD &= ~(1 << LE); // LE Low _delay_ms(100); PORTD |= (1 << LE); // LE High Write_Bit_8(0x1); // первый Write_Bit_8(0x1); // второй Write_Bit_8(0x1); // третий PORTD &= ~(1 << LE); // LE Low
  7. Хорошо, завтра тогда срисую схему с платы, но там всё банально.
  8. Нет, только точки горят.
  9. adnega, сделал OE в 0, теперь точки просто горят
  10. adnega, тоже самое, только точки мигают (((
  11. Всем доброго вечера! Подскажите, пожалуйста, как включить все сегменты по очереди на 3-х 7-сегментных индикаторах? Тестовая плата на ATTiny2313 + MBI5168 (3шт) + 7sLED (3шт). MBI5168 включены последовательно. Набросал тестовый код, но только точки иногда мигают Как правильно сформировать данные (число), которые нужно посылать в MBI5168? N Segment PIN OUT BIN HEX 1 D #8 3 1000 8 2 C #7 2 0100 4 3 B #6 1 0010 2 4 A #5 0 0001 1 5 E #9 4 6 F #10 5 7 G #11 6 8 DP #12 7 #include <avr/io.h> #include <util/delay.h> #define DIN PD3 #define CLK PD4 #define LE PD5 #define OE PD6 #define GREEN PB3 #define RED PB4 void Write_Bit_8(int); int main(void) { DDRD |= (1 << DIN); // Port D, P3 = SDI DDRD |= (1 << CLK); // Port D, P4 = CLK DDRD |= (1 << LE); // Port D, P4 = LE DDRD |= (1 << OE); // Port D, P4 = OE DDRB |= (1 << GREEN); // Port B, P4 = Green DDRB |= (1 << RED); // Port B, P3 = Red PORTB |= (1 << RED); // Green while(1) { _delay_ms(250); PORTD &= ~(1 << OE); // OE Low _delay_ms(10); // --------------------------------- PORTD |= (1 << LE); // LE High _delay_ms(10); // Send Data Write_Bit_8(0xFF); // _delay_ms(10); PORTD &= ~(1 << LE); // LE Low _delay_ms(10); PORTD |= (1 << LE); // LE High _delay_ms(10); // Send Data Write_Bit_8(0xFF); // _delay_ms(10); PORTD &= ~(1 << LE); // LE Low _delay_ms(10); PORTD |= (1 << LE); // LE High _delay_ms(10); // Send Data Write_Bit_8(0xFF); // _delay_ms(10); PORTD &= ~(1 << LE); // LE Low _delay_ms(10); // ---------------------------------- PORTD |= (1 << OE); // OE High _delay_ms(100); } } void Write_Bit_8(int data) { for (int i = 7; i >= 0; i--) { PORTD &= ~(1 << CLK); if (((data >> i) & 1) == 1) { PORTD |= (1 << DIN); } else { PORTD &= ~(1 << DIN); } PORTD |=(1 << CLK); } PORTD &= ~(1 << CLK); PORTD |= (1 << DIN); }
  12. GenaSPB, не понял про допустимое напряжение и rail. Можете немного перефразировать?
  13. Добрый день! Подскажите, пожалуйста, каким другим можно заменить этот операционник ADA4096-2? Включен просто: инвертирующий напрямую на выход. Питание однополярное +3V. Нужен только один канал. Я так понимаю, что основная особенность этого операционника - прецизионность и Rail-to-rail? ADA4096-2_4.pdf
  14. Всем доброго времени суток! Необходимо составить схему защиты цепи питания 15В/15Вт и цепи RS-485. Я так понимаю на супрессорах (TVS-диоды) или симисторах. Рассчитать параметры цепи Uo, Io, Po, Co, Lo. За подробностями пишите в ЛС, там обсудим цену и срок. Спасибо.
  15. Так предельные значения брать в расчёт или номинальные (5В)?
  16. Подскажите, пожалуйста, ещё на какое напряжение ориентироваться, у ADM485 напряжение питания 5В, а в линиях АВ -7V...+12V?
  17. Да, взрывозащита, класс ib. Ориентируюсь на ГОСТ 31610.11— 2014
  18. Всем доброго дня! Подскажите, пожалуйста, схемотехнику защиты цепей RS485 в искроопасную зону? Насколько я нашёл - это просто по два стабилитрона на каждую из линий А и В так? На какое напряжение стабилизации они должны быть? И как правильно ограничить ток короткого замыкания и до какого значения? Спасибо.
  19. Всем доброго времени суток! Сколько будет стоить разработка блока питания для серверного оборудования (содержит МК для общения) 12V/132A и 3.3V/6A. Размеры 279х81х40 мм Более подробные хар-ки в прикреплённой табличке Спасибо.
  20. Всем доброго вечера! Нужна помощь разобраться с одной мс (6-ти канальный питатель ). Есть Datasheet (далее DS) на эту мс (скину в личку, кто заинтересуется). Нужно понять какие настройки можно записывать в мс (какие регистры отвечают за что)? Сохраняются ли записанные настройки? А так же нужно написать прошивку (лучше в STM32CubeIDE) для F429 с двумя основными функциями: чтения настроек в файл и запись этих настроек в новую (такую же) мс. Пишите в ЛС с предложениями цены и сроков. Спасибо.
  21. Не могу понять правильно ли я читаю нужную мс и правильные ли данные от неё приходят.
  22. STM32F429 (отладка Discovery) Другую мс (LM75 - датчик температуры) я успешно читал через I2C с помощью этой STM'ки.
  23. Увы, нет. Если у кого-нибудь есть время и желание помочь, напишите, пожалуйста, в ЛС. Спасибо.
  24. Пропустил HAL_I2C_Master_Transmit(&hi2c1, IC_ADDR, buf, 2, HAL_MAX_DELAY); Вот так? static const uint8_t IC_ADDR = 0x20 << 1; Adress of IC = 20h static const uint8_t REG_TEMP = 0x8D; // 8Dh READ_TEMPERATURE r 2-byte int16_t val; uint8_t buf[50]; HAL_I2C_IsDeviceReady(&hi2c1, (uint16_t)(IC_ADDR), 2, 2); buf[0] = REG_TEMP; HAL_I2C_Master_Transmit(&hi2c1, IC_ADDR, buf, 2, HAL_MAX_DELAY); HAL_I2C_Master_Receive(&hi2c1, IC_ADDR, buf, 1, HAL_MAX_DELAY); val = (int16_t)buf[0]; sprintf((char*)buf, "%u \r\n", (unsigned int)val); HAL_UART_Transmit(&huart1, buf, strlen((char*)buf), HAL_MAX_DELAY);
  25. rkit, что такое адрес регистрации?