TDSS

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

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

  • Посещение

Репутация

88 Обычный

О TDSS

  • Звание
    Завсегдатай
  • День рождения 24.11.1983

Информация

  • Пол
    Мужчина
  • Город
    Полтава

Электроника

  • Стаж в электронике
    6-10 лет

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

10 348 просмотров профиля
  1. Не Работает Схема Can Hacker

    А где должны быть изменения ? Если с выхода драйвера CAN шины, то там ничего и не будет, он не будет слать данные "в воздух".
  2. Убил Atmega 8

    Геннадий, контроллер хороший, я не спорю. Здесь скорее вопрос о "начинке" при равной стоимости. Изучаю по даташитам и примерам от STM, которых не мало. По ядру есть хорошая книга "Ядро CORTEX-M3 компании ARM". Также можно найти много полезной информации на форумах.
  3. Убил Atmega 8

    Изучайте STM32. Атмелки с их фузами, это уже пережитки прошлого...
  4. Stm32 Foc Pmsm Sdk V3.3 Кто Работал С Этой Библиотекой?

    lexus77, файл там править не нужно. Надо написать свою функцию, которая по таймеру будет считывать данные с АЦП при помощи вызова этих функций. Верните файл в начальное состояние. Что нужно изменять потенциометром, момент или скорость ? Какое направление вращения ?
  5. Обработка Ацп

    Смотрите ADC Analog Watchdog в документации на МК.
  6. Stm32 Foc Pmsm Sdk V3.3 Кто Работал С Этой Библиотекой?

    lexus77, в файле MCTask.h есть функции void MC_RequestRegularConv(uint8_t bChannel, uint8_t bSamplTime); uint16_t MC_GetRegularConv(void); UDRC_State_t MC_RegularConvState(void); и перечисление typedef enum {UDRC_STATE_IDLE, UDRC_STATE_REQUESTED, UDRC_STATE_EOC} UDRC_State_t; Допустим, нам нужно измерить напряжение на 14 канале АЦП.Выполняем функцию MC_RegularConvState(); если она возвращает UDRC_STATE_IDLE, значит АЦП свободен, запускаем преобразование с 14 канала MC_RequestRegularConv(14, ADC_SampleTime_55Cycles5); когда MC_RegularConvState(); вернет UDRC_STATE_EOC, преобразование завершено, забираем результат преобразования result = MC_GetRegularConv(); если MC_RegularConvState(); возвращает UDRC_STATE_REQUESTED, значит преобразование еще не завершилось, ждем пока вернет UDRC_STATE_EOC. После того как мы считали значение АЦП, состояние выставляется в UDRC_STATE_IDLE.
  7. Stm32 Foc Pmsm Sdk V3.3 Кто Работал С Этой Библиотекой?

    Работа с АЦП там реализована через интерфейсы самой библиотеки, как и функции задания скорости или момента. Прикрутить задание момента или скорости через резистор или что-то другое, очень просто. Уже вышла библиотека с версией 3.4, там исправлена ошибка в модуле обратной связи.
  8. Stm32 Foc Pmsm Sdk V3.3 Кто Работал С Этой Библиотекой?

    sbl1987, для удобства портировал проект на Keil (просто его люблю больше, хотя IAR генерирует более компактный код). Для запуска библиотеки нужно внимательно изучить документацию к библиотеке, иначе "кина не будет". Для запуска использовал stm32vldiscovery, родной её МК был заменен на stm32f103rb. Отладочная плата подключалась к инвертору (просто драйверы и полевики, стандартная схема). Самое интересное было в отладке схемы обратной связи в режиме sensorless, то есть для обратной связи используются данные снятые с шунтов. Здесь все должно быть очень четко просчитано, иначе двигатель нормально работать не будет. Кстати, кто имеет опыт запуска этой библиотеки с датчиками холла, как результат ? Особенно интересен старт двигателя.
  9. Stm32 Foc Pmsm Sdk V3.3 Кто Работал С Этой Библиотекой?

    Получилось. Само ядро закрыто, оно в библиотеке MC_Library_STM32F10x_single_drive.a, управление им доступно через интерфейсы. Что хотите сделать на этой библиотеке ?
  10. Отправить Данные На Stm32F4

    По себе знаю. Все когда-то ничего не знали..
  11. Отправить Данные На Stm32F4

    Генерируете массив данных с формой нужного сигнала, затем этом массив передаете в память МК, далее по таймеру записываем поочередно данные из массива в регистр ЦАП. Чем меньше будет время таймера, тем выше будет частота сигнала. Можете даже на C# написать эмулятор который будет рисовать график из данных в массиве и посмотрите чего вы там нагенерируете . Хотя с "там по моему в С# есть команда "int16" " - это будет сделать тяжело...
  12. Прием По Usart В Cvavr

    Тогда как только rx_wr_index станет равным 30, забираете данные из буфера и обнуляете rx_wr_index. Это можно вынести в отдельную функцию которая выполнится при достижении необходимого количества данных в массиве. Можно разметить её в отдельном файле и вызывать её передав ей в качестве аргумента указатель на массив. if (rx_buffer_index == 30) { ReadData(buffer); rx_buffer_index = 0; } void ReadData(char *buffer) { //здесь обрабатываем данные из буфера }
  13. Прием По Usart В Cvavr

    Да. А если надо чтоб данные всегда были в 0 ячейке массива сделайте RX_BUFFER_SIZE 1
  14. Прием По Usart В Cvavr

    По адресу rx_buffer[rx_wr_index]. После чего rx_wr_index инкрементируется и следующая посылка придет в следующую ячейку массива. Когда массив заполнится, rx_wr_index сбросится в нуль и массив начнет заполняться с начала, при этом переменная rx_buffer_overflow сигнализирует, что буфер был заполнен.
  15. Stm32 Foc Pmsm Sdk V3.3 Кто Работал С Этой Библиотекой?

    Было дело