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

batson

Участник
  • Постов

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

  • Посещение

Весь контент batson


  1. у меня в stm32f100 Vss и Vssa, Vdd и Vdda объединены а все равно сбрасывает BKP регистры что самое интересное на конкретно этом кристалле раньше работало, спустя долгое время перестало
  2. да, высокоскоростной i2c, у него другой набор регистров если у кого есть примеры работы с ним киньте пример работы и инита
  3. сам спросил, сам отвечу по адресам I2C4 в STM32F410RB живет FMPI2C, с ним надо общаться по другому
  4. вскрытие показало что нет записи в CCR и TRISE, там нули при считывании
  5. базовый адрес прописал, остальные константы прописал, все проверил по сто раз что этому порту опять не нравится? инит: GPIOC->MODER &= ~GPIO_MODER_MODER6; GPIOC->MODER &= ~GPIO_MODER_MODER7; GPIOC->MODER |= GPIO_MODER_MODER6_1; GPIOC->MODER |= GPIO_MODER_MODER7_1; GPIOC->OTYPER |= GPIO_OTYPER_OT_6; GPIOC->OTYPER |= GPIO_OTYPER_OT_7; GPIOC->OSPEEDR|=(GPIO_OSPEEDER_OSPEEDR6_1 | GPIO_OSPEEDER_OSPEEDR7_1); GPIOC->AFR[0] |= (0x04 << (6 * 4)); GPIOC->AFR[0] |= (0x04 << (7 * 4)); RCC->APB1ENR |= RCC_APB1ENR_I2C4EN; I2C4->CR2 = 24; I2C4->CCR = 50; I2C4->TRISE = 10 + 1; I2C4->CR1 |= I2C_CR1_PE; while ((I2C4->CR1 & I2C_CR1_PE) == 0){};// специально добавил для проверки, проходит зависает на: void i2c_send_start(void) { I2C4->CR1 |= I2C_CR1_START; while(!(I2C4->SR1 & I2C_SR1_SB)){};// тут виснет } I2C4 работает у всех и я один такой?
  6. да нашел, придется вписывать все ручками. но прикола с этим портом я не понял, либа вроди та, взята с сайта ST
  7. Потерял I2C4 в STM32F410RBT6

    контроллер STM32F410RBT6 в датащите указано наличие в нем I2C4 на ногах PC6 и PC7, указан его бит включения в RCC т.е. он как бы есть, но в файле stm32f4xx.h базовые адреса только для I2C1 I2C2 и I2C3 кто мне скажет где искать базовый адрес I2C4?
  8. последовательно: высоковольтный конденсатор, резистор, вход оптрона правильно подобрав емкость конденсатора можно снизить нагрузку на резистор
  9. попробовал, шьет вобщем без проблем из плюсов проги - она коннектится к контроллеру даже когда графическая оболочка флэшлоадера этого делать не хочет по какой-то причине, поэтому я давно шью через командную строку. из минусов -нет скорости 256к -все приходится делать через меню, надо бы вынести кнопки на все операции -открыть исходник, чтобы другие не изобретали велосипедов
  10. респект, как доберусь до контроллера тестону. только исходник бы еще. как я понимаю она еще под линухом в mono может работать?
  11. с чем-то похожим вот тут намучался http://electronix.ru/forum/index.php?showtopic=105804 о смотрю у тебя осциллограф pv6502 или pv6503, тоже думаю купить, есть несколько вопросов: 1. какое входное напрядение он способен измерять без делителя? 2. есть ли гальваническая изоляция между минусом щупа и usb? 3. какое общее впечатление от совта
  12. пирометр + стекло пропускающее инфракрасный спектр именно так мерится температура сплава в литейных машинах
  13. как измерить расстояние в pcbnew? инструмент линейка я не нашел
  14. все правильно я суть так и понял, измеряется напряжение питания контроллера опираясь на изменение цифры с канала Vref, аналоговый сторож это частный случай такого измерения. другого способа "самоизмерить" напряжение контроллеру на самом себе нет, во всяком случае я не знаю.
  15. я думал так всегда измеряют напряжение в приборах с батарейным питанием
  16. пробуйте залить через Flash Loader Demomstrator или ST-Link Utility
  17. Снимаю галочку WDG_SW в флэшлоадере и никакого результата. После рестарта программа работает как обычно, хотя сброс ватчдога не произвожу. Чип - stm32f100, прога - флэшлоадер v2.4
  18. Кажись нашел спасение - в добавок ко всему, перед переинициализацией ножек надо делать ресет usb RCC->APB1RSTR |= RCC_APB1RSTR_USBRST; :08: SSerge, , благодарствую, так оно даже лучше будет, надо попробовать но мой способ "в лоб" работает, уже попробовал
  19. Ну как-то так GPIOA->CRH &= ~GPIO_CRH_MODE12; GPIOA->CRH &= ~GPIO_CRH_CNF12; GPIOA->CRH |= GPIO_CRH_MODE12_0; GPIOA->CRH |= GPIO_CRH_CNF12_0;
  20. >Регистр GPIOA_LCKR? Нет. У кого какие варианты?
  21. Вобщем немогу сконфигурировать пины PA11 PA12 обратно в GPIO после использования USB. Вот уже не думал что с этим будет проблема, такое ощущение что модуль USB не отключается, что я мог упустить? Пробовал отключать тактирование USB RCC->APB1ENR &= ~RCC_APB1ENR_USBEN и сбрасывать USB_DADDR_EF; Но после этого порт по прежнему занят. Проц stm32f103.
  22. Может кто-нибудь перекомпилить https://launchpad.net/gcc-arm-embedded под windows rt? Или уже есть что-нибудь для RT?
  23. Что-то большая погрешность получается. У меня на STM32F100 при 19...20С датчик показывал 17...18С, при -18С показывал -18С. Возможно дело в калибровке АЦП. В сотом это: ADC1->CR2 |= ADC_CR2_CAL; while (!(ADC1->CR2 & ADC_CR2_CAL)){}; Формула в сотом при трех вольтах: temperature = (1.41 - adc * 0.000732) / 0.0043 + 25;
  24. STM32F100RB + AT45DB081D

    Дошли наконец руки разобраться с данной неприятностью. Проблема была в функции чтения данных, - при посылке байта нужно обязательно производить чтение данных, иначе устанавливается флаг OVR: Overrun flag, отсюда и эти FF... С правильно написанной функцией записи-чтения все передается и принимается идеально, без каких-либо лишних байт. Функция записи-чтения: unsigned char send_spi1_byte(unsigned char byte) { unsigned char rxbyte; while (!(SPI1->SR & SPI_SR_TXE)); SPI1->DR = byte; while (!(SPI1->SR & SPI_SR_RXNE)); rxbyte = SPI1->DR; return rxbyte; } Пользоваться ей нужно так: void at45_devid(void) { unsigned int i; cs_spi1_low(); send_spi1_byte(0x9F); //посылка команды for(i = 0;i < 6;i++) { at45_read_buf[i] = send_spi1_byte(0xFF); //прием данных } cs_spi1_high(); }
×
×
  • Создать...