Электронщик

Members
  • Публикации

    6 912
  • Зарегистрирован

  • Посещение

Репутация

180 Хороший

О Электронщик

  • Звание
    Старожил
  • День рождения 20.08.1989

Информация

  • Пол
    Мужчина
  • Интересы
    Работал слесарем КИПиА, увлекаюсь электроникой и всем что с ней связано,
  • Город
    Украина г. Никополь, обл. Днепропетровская. г. Харьков

Электроника

  • Стаж в электронике
    Не связан с электроникой
  • Сфера радиоэлектроники
    Ардуино, МК, ремонт, питание, качеры.
  • Оборудование
    Осциллограф - Хамелион, мультиметр - DT9205, DT838, ТЛ-4М, Ц4312, тестер полупроводников, измеритель ESR и ёмкости.

Посетители профиля

36 987 просмотров профиля
  1. STM32 для чайника

    Да что-то переклинило меня что регистр двухбайтный, еще и думал побитовый сдвиг сделать(кстати есть нормальная литература по битовым операциям, а то я их применяю, но почитав давно в нете примеры кодов, но толком чтобы расписано где-то было?), я сейчас в другой стране, и доступа к нету не было, чтобы посмотреть размер регистра, и другую документацию, тем более что запись байта с регистрами проходила, вот и подумал значить нормально адрес ячейки памяти передаю. Спасибо всем за помощь. MasterElectric спасибо, все работает, в основном проблема была у меня в неправильной адресации ячеек памяти,без битовых сдвигов.
  2. STM32 для чайника

    Да я читал об этом, но если я использую переменную двухбайтную для адреса, и регистр i2c двухбайтный, а адрес ячейки памяти еепром, это 12 бит, зачем тогда отправлять два раза один адрес? Да и запись по регистрам я делаю одним адресом через двухбайтную переменную и все работает, а чтение не работает, так что проблема скорее всего не в этом
  3. STM32 для чайника

    Просто в какой-то статье вычитал что без этого не работает, и так и юзаю
  4. STM32 для чайника

    Проверил память на Атеге нормально, подключил осцил на тригер по одиночному фронту, и обмен данными с стм от 24С есть, потом подправил функции HAL, то как я отправлял халом неправильно, причем я так нигде и не нашел по нету, правильные примеры с халом, суть теперь в том что запись регистрами нормально работает, а нормально прочитать могу только халом, что не так с регистрами при чтении, может что не так делаю, не такая последовательность? uint8_t i2c_eeprom_read3(uint16_t address66) { I2C1->CR1 |= I2C_CR1_START; while (!(I2C1->SR1 & I2C_SR1_SB)); (void) I2C1->SR1; I2C1->DR = 0xA0; while (!(I2C1->SR1 & I2C_SR1_ADDR)); (void) I2C1->SR1; (void) I2C1->SR2; I2C1->DR = address66; while (!(I2C1->SR1 & I2C_SR1_BTF)); I2C1->CR1 |= I2C_CR1_START; while (!(I2C1->SR1 & I2C_SR1_SB));//"Повторный Старт" (void) I2C1->SR1; I2C1->DR = 0xA1; while (!(I2C1->SR1 & I2C_SR1_ADDR)); (void) I2C1->SR1; (void) I2C1->SR2; // ожидаем окончания приема данных while (!(I2C2->SR1 & I2C_SR1_RXNE)) { } data59 = I2C1->DR; I2C1->CR1 |= I2C_CR1_STOP; }
  5. STM32 для чайника

    Проблема в том что с этой платы часы что запускал на AVR что на STM32, как доходят 69 минут и идут сразу на 86 минут, с часами 3223, или 2332, не помню какие все нормально работает, может такой чип часов кривой и память такая, просто а другой стране и не могу другой чип достать
  6. STM32 для чайника

    Да часы то работают, как и раньше, и даже попробовал в часы записать байт, а потом снял питание и подал сново и только считывал этот байт и то что нужно в еепроме самих часов( настройке часов сохраняется), а вот в 24C ну никак, может она там какая-то бракованная, плата то за 17грн., Жаль нет другой, придется наверное к Меге, или ардуино прицепить попробовать как память себя ведёт.А ну платка СТМ самая дешёвая на f103 за 70 грн, читал помню что это могут попадаться китайские чипы, как нелеквид, или что-то в этом роде
  7. STM32 для чайника

    Так же проблема у Америкосов, и по оду никто не решил. https://community.st.com/thread/37467-unable-to-read-and-write-to-i2c-eeprom Причем с i2c постоянно проблема на стм, то часы не мог запустить, пока параллельно резистору подтяжки сцл не повесил еще один резистор, и по нету у многих проблемы
  8. STM32 для чайника

    Я знаю за адреса, я же и писал что 0х68 + бит чтения записи, что даёт D0 D1, а второй адрес 0х50 + тоже бит что и даёт А0 А1, просто плата лежала, давно не к СТМ подключал, адреса записал, а что к чему нет, и запутался а трёх соснах, спасибо. Вот только сейчас так делаю и ничего, считываются при чтении 255, а не 8, и в регистры тоже самое uint8_t data94=8; HAL_I2C_Mem_Write(&hi2c2, 0xA0,0x14,1,&data94,1,5); HAL_I2C_Mem_Read(&hi2c2,0xA1,0x14,1,&data59,1,5);
  9. STM32 для чайника

    Сканирую через ардуино Уно, там все просто выводим в юарт переменную счётчика при выставлении флажка на ответ стартовой команды, и этот сканер ни разу не подводил, и часы работают с адресом от сканера. Проблема скорее всего что думаю возможно что после хала, или с кодом на регистрах, нужна команда сохранения, но не знаю точно. Так то все работает. Адреса по даташите для памяти, у меня А0 ну и А1(что я и писал 0х50), но пробовал тоже самое. Сейчас ещё раз попробую
  10. STM32 для чайника

    У моей адрес 0x68(просканировав адреса) + бит передачи, или приема и получаем 0хD0, хотя может реально пишу в часы, и попробовать второй адрес на I2C 0х50. Попробовал и A0, тоже самое, как буд-то память энергозависимая, так то ж записывает и считывает, а питание отключил, и по нулям.
  11. STM32 для чайника

    Проблема такая: есть часы DS1307 и на платке с ними память AT24С32N, используя HAL записываю в память значение, и считывая его оно считывается как положено, но сняв питание с памяти 24C32, и подав снова питание на память, в памяти 0, вот так вот. Помогите пожалуйста: HAL_I2C_Mem_Write(&hi2c2, 0xD0,0x14,1,&loud2,1,5); HAL_I2C_Mem_Read(&hi2c2,0xD1,0x14,1,&data59,1,5); Так само если делаю регистрами: void i2c_eeprom_write2(uint16_t address5, uint8_t data190) { I2C2->CR1 |= I2C_CR1_START; while (!(I2C2->SR1 & I2C_SR1_SB)); (void) I2C2->SR1; I2C2->DR = 0xD0; while (!(I2C2->SR1 & I2C_SR1_ADDR)); (void) I2C2->SR1; (void) I2C2->SR2; I2C2->DR = address5; while (!(I2C2->SR1 & I2C_SR1_BTF)); I2C2->DR = data190; while (!(I2C2->SR1 & I2C_SR1_BTF)); I2C2->CR1 |= I2C_CR1_STOP; } uint8_t i2c_eeprom_read(uint16_t address6) { I2C2->CR1 |= I2C_CR1_START; while (!(I2C2->SR1 & I2C_SR1_SB)); (void) I2C2->SR1; I2C2->DR = 0xD0; while (!(I2C2->SR1 & I2C_SR1_ADDR)); (void) I2C2->SR1; (void) I2C2->SR2; I2C2->DR = address6; while (!(I2C2->SR1 & I2C_SR1_BTF)); I2C2->CR1 |= I2C_CR1_START; while (!(I2C2->SR1 & I2C_SR1_SB));/ (void) I2C2->SR1; I2C2->DR = 0xD1;// while (!(I2C2->SR1 & I2C_SR1_ADDR)); (void) I2C2->SR1; (void) I2C2->SR2; // ожидаем окончания приема данных while (!(I2C2->SR1 & I2C_SR1_RXNE)) { } // cчитываем приянтое значение } i2c_eeprom_write2(0x05, 19); i2c_eeprom_read(0x05); data59 = I2C2->DR;
  12. Ну это если один, или два, я ж не знаю сколько у Вас денег.
  13. Я бы поставил 2 -4 акума 1850, и платки зарядки литий-иона( ну иDC-DC преобразователь), или же аккум с ноута, УНЧ весны выкинул бы, а поставил бы платку Д класс за 30грн(60руб.) 2*5Вт
  14. Да уж судя потому что человек не знает как выглядят отечественные биполярники и импортные полевики, и не знает что все МК продаются без прошивки, и т.д., то аж страшно за счетчики становится, а СИТ с такой проблемой в нормальной поверке должны были забраковать, да и СИТ можно отправить на завод-изготовитель на послегарантийный ремонт. У нас таких метранов закупили на завод серии 150, у них постоянно зависания, и сбросы настроек, а 100 -я серия предыдущая работает как ни в чем небывало, так мы в лаборатории метрологии сами посписывали 150-ю серию, сканадала было много, как так мол новые приборы, так же как и Польские Aplisens, а те что в цех все таки отдали, их приносят раз в месяц с зависаниями и жалобами, так как завод не хочет покупать Российские приборы Метран( так как типа директор патриот), и купили Польское Г. Aplisens, которое стоит дешевле и не Российское, и приходилось мучаться с этим Польским Г., а там и ПО сырое и конструкция.
  15. Помогите с IAR

    Что смотреть в дейфайне, если у тебя каждый дефайн справа прописан