|
|
  |
STM32F103x, делимся впечатлениями |
|
|
|
Apr 23 2010, 08:17
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 15-11-08
Из: Уфа
Пользователь №: 41 659

|
Позвольте вопрос по Z состоянию пина без подтяжек. У AVR с этим бардак. А про STM32F103x написано: Ilkg Input leakage current (5) VSS ≤VIN ≤VDD Standard I/Os ±1 μA 5. Leakage could be higher than max. if negative current is injected on adjacent pins. ( Из STM32F103x6 STM32F103x8 STM32F103xB Performance line Preliminary Data) Имеется ли информация по реальным утечкам в плюс и минус питания, или может он тоже генерит изнутри наружу? В одном проекте контроллер с чистым Z попиново очень помог бы. Спасибо.
|
|
|
|
|
Apr 23 2010, 14:44
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 15-11-08
Из: Уфа
Пользователь №: 41 659

|
Как обычно- симметрично половины питания, другими словами утечка из пина в минус идентична утечке из плюса в пин, чтоб вольтметр подключенный к фиксированной половине питания и пину в Z состоянии показал 0 вольт. Т.е. честное ВЫСОКОИМПЕДАНСНОЕ. Вроде про LPC1111 так как надо. но перед железномягкими телодвижениями в сторону новой платформы хотелось услышать мнение специалиста.
Сообщение отредактировал zltigo - Apr 23 2010, 15:42
|
|
|
|
|
Apr 24 2010, 04:07
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 15-11-08
Из: Уфа
Пользователь №: 41 659

|
Спасибо. Другие мнения есть? Кто проверял STM32F103x по Z состоянию, будте добры, отпишитесь.
Сообщение отредактировал Karim - Apr 24 2010, 04:18
|
|
|
|
|
Jun 15 2010, 15:01
|

Знающий
   
Группа: Свой
Сообщений: 966
Регистрация: 27-05-06
Из: СПб
Пользователь №: 17 499

|
Отлаживаю проект "в железе" на STM32F103VИ (100пин корпус) После первого включения проконтролировал общий ток, получил 110ма и успокоился, т.к есть еще 6 датчиков и они что-то жрут, а старая конструкция на 2-х мегах жрала на 15ма больше... Отладка длится не первый день, я решил померять ток потребляемый при вычислениях с ацп - возрастает или нет. нифига не намерял, но задумался что-то проц слегка теплый (градусов 40)- может что-то не так? И сейчас дошло - ОН ВСЕ ВРЕМЯ РАБОТАЛ НА 144 МГц!! (кварц на отладочной плате был 8 Мгц, в живом железе на 16 Мгц, а множитель в PLL я переставить забыл.  )
|
|
|
|
|
Oct 2 2010, 17:29
|

Местный
  
Группа: Свой
Сообщений: 307
Регистрация: 6-02-08
Из: Россия, Екатеринбург
Пользователь №: 34 798

|
привет всем! тоже занялся проблемой SDIO на STM32F103VE. 1) Mass Storage работает хорошо, но только с картами емкостью до 8 Гб включительно. при 16 Гб карте получаю "Устройство УСБ не опознано" Может кто пробовал с 16Гб ? 2) FatFs тоже работает - но тут прикол еще хлеще - пожоду переполнение адресации при выполнении Disk_read. Выражается следующим образом: карта на 8Гб почти полностью заполнена, записывю на нее еще один файлик с ПК. Вставляю карту в проект, в проекте тупо поблочное копирование этого файлика в другой. Прогнал. карту снова в пк. В скопированном файлике содержимое другого файла! В обоих проектах использую stm32_eval_sdio_sd.c из стандартного набора библиотек
Сообщение отредактировал Ivan Kuznetzov - Oct 2 2010, 17:33
--------------------
Разработчик
|
|
|
|
|
Jan 9 2015, 18:39
|

Группа: Участник
Сообщений: 10
Регистрация: 6-01-15
Из: Санкт-Петербург
Пользователь №: 84 431

|
Цитата(Ivan Kuznetzov @ Oct 2 2010, 17:29)  привет всем! тоже занялся проблемой SDIO на STM32F103VE. 1) Mass Storage работает хорошо, но только с картами емкостью до 8 Гб включительно. при 16 Гб карте получаю "Устройство УСБ не опознано" Может кто пробовал с 16Гб ?  SD карточки до 4Гб используют один протокол, свыше 4Гб - другой. Возможно, с этим как-то связано. Почему у Вас граница на 8ми - не знаю.
|
|
|
|
|
Jun 4 2017, 08:40
|
Группа: Новичок
Сообщений: 3
Регистрация: 4-06-17
Пользователь №: 97 476

|
Цитата(KRS @ Mar 11 2008, 16:38)  Все еще мучаю STM32F103. Пока чип работает хорошо. Кстати у него очень удобная реализация CAN - 2 fifo (что мне удобнее чем куча mailbox) и много довольно гибких фильтров. И еще тут обнаружил что APB1 (на ней и CAN висит ) работает (по даташиту) максимум на 36 Mhz, т.к. я на это внимания не обратил у меня APB1 и CAN на ней работают на полной скорости 72 Mhz ( глюков не было), но скорость я конечно все равно понижу до 36. Добрый день. Подскажите, пожалуйста, кто разобрался, как поменять пины, на которые выводится кан интерфейс? Мне нужно сделать это по ходу программы. То есть я подключил два Кан трансивера: на пины а11а12 и на в8в9. Стартую без ремапа, работаю с А. Затем делаю ремап и работаю с Б. А дальше сделать ремап с Б на А не выходит. Это вообще возможно?
|
|
|
|
|
Jun 5 2017, 15:43
|
Группа: Новичок
Сообщений: 3
Регистрация: 4-06-17
Пользователь №: 97 476

|
Цитата(x893 @ Jun 4 2017, 12:45)  конечно возможно В таком случае прошу помощи в поиске ошибок. Вероятно, в библиотеке. Прошу прощения, что код из среды ардуино. CODE #include <HardwareCAN.h> //#include "changes.h" /* * */
#define T_DELAY 10 // Instanciation of CAN interface HardwareCAN canBus(CAN1_BASE); CanMsg msg;
void CAN_a_33_Setup(void) { CAN_STATUS Stat; canBus.map(CAN_GPIO_PA11_PA12); Stat = canBus.begin(CAN_SPEED_33, CAN_MODE_NORMAL); canBus.filter(0, 0, 0); canBus.set_irq_mode(); Stat = canBus.status(); if (Stat != CAN_OK) {digitalWrite(PC13, LOW); delay(10000);} // /* Your own error processing here */ ; // Initialization failed // delay(T_DELAY); }
void CAN_b_95_Setup(void) { canBus.map(CAN_GPIO_PB8_PB9); Stat = canBus.begin(CAN_SPEED_95, CAN_MODE_NORMAL); canBus.filter(0, 0, 0); canBus.set_irq_mode(); Stat = canBus.status(); if (Stat != CAN_OK) {digitalWrite(PC13, LOW); delay(10000);} // /* Your own error processing here */; // Initialization failed // delay(T_DELAY); }
CAN_TX_MBX CANsend(CanMsg *pmsg) { CAN_TX_MBX mbx;
do { mbx = canBus.send(pmsg); #ifdef USE_MULTITASK vTaskDelay( 1 ); // Infinite loops are not multitasking-friendly #endif } while(mbx == CAN_TX_NO_MBX); // Waiting outbound frames will eventually be sent, unless there is a CAN bus failure. return mbx; }
// Send message // Prepare and send a frame containing some value void SendCANmessage(long id=0x001, byte dlength=8, byte d0=0x00, byte d1=0x00, byte d2=0x00, byte d3=0x00, byte d4=0x00, byte d5=0x00, byte d6=0x00, byte d7=0x00) { // Initialize the message structure // A CAN structure includes the following fields: msg.IDE = CAN_ID_STD; // Indicates a standard identifier; CAN_ID_EXT would mean this frame uses an extended identifier msg.RTR = CAN_RTR_DATA; // Indicated this is a data frame, as opposed to a remote frame (would then be CAN_RTR_REMOTE) msg.ID = id; // Identifier of the frame : 0-2047 (0-0x3ff) for standard idenfiers; 0-0x1fffffff for extended identifiers msg.DLC = dlength; // Number of data bytes to follow
// Prepare frame : send something msg.Data[0] = d0; msg.Data[1] = d1; msg.Data[2] = d2; msg.Data[3] = d3; msg.Data[4] = d4; msg.Data[5] = d5; msg.Data[6] = d6; msg.Data[7] = d7;
digitalWrite(PC13, LOW); // turn the onboard LED on CANsend(&msg); // Send this frame digitalWrite(PC13, HIGH); // turn the LED off delay(T_DELAY); }
// The application program starts here byte msgD0 = 0x00; void setup() { // Initialize the CAN module and prepare the message structures. pinMode(PC13, OUTPUT); digitalWrite(PC13, HIGH); delay(10); digitalWrite(PC13, LOW); delay(1000); digitalWrite(PC13, HIGH); delay(1000);
}
void loop() { CAN_a_33_Setup(); delay(T_DELAY); SendCANmessage(0x100,1,msgD0); delay(T_DELAY); CAN_b_95_Setup(); delay(T_DELAY); SendCANmessage(0x111,1,msgD0); delay(T_DELAY); msgD0++; } Ссылка на библилтеку (5 значимых файлов): https://github.com/megadrifter/Arduino_STM3...HardwareCAN/srcИ файл https://github.com/megadrifter/Arduino_STM3...e/series/gpio.h
Сообщение отредактировал IgorKossak - Jun 19 2017, 09:57
Причина редактирования: [codebox] для длинного кода. [code]-для короткого!!!
|
|
|
|
|
Jun 7 2017, 21:47
|
Группа: Новичок
Сообщений: 3
Регистрация: 4-06-17
Пользователь №: 97 476

|
Ответ: afio_init();
|
|
|
|
|
  |
4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0
|
|
|