sonycman 0 22 апреля, 2010 Опубликовано 22 апреля, 2010 · Жалоба Экспериментирую с GPIO и обнаружил, что GPIOB_ODR инициализируется вовсе не 0x0000, как написано в даташите, а значением 16. Откуда оно, ума не приложу. Как откуда? А про JTAG забыли? На STM пины житага отнюдь не выделенные, а висят прямо на портах GPIO. В данном случае - это подтяжка (пуллап) линии JTRST. Можно отключить житаг через ремап, тогда этими пинами можно будет пользоваться в своё усмотрение. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Maks 0 23 апреля, 2010 Опубликовано 23 апреля, 2010 · Жалоба В данном случае - это подтяжка (пуллап) линии JTRST. Вы правы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
majorka65 1 23 апреля, 2010 Опубликовано 23 апреля, 2010 · Жалоба Позвольте вопрос по 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 попиново очень помог бы. Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sonycman 0 23 апреля, 2010 Опубликовано 23 апреля, 2010 · Жалоба В одном проекте контроллер с чистым Z попиново очень помог бы. Спасибо. А как понять "с чистым Z"? Совсем без тока утечки, или с постоянным током? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
majorka65 1 23 апреля, 2010 Опубликовано 23 апреля, 2010 (изменено) · Жалоба Как обычно- симметрично половины питания, другими словами утечка из пина в минус идентична утечке из плюса в пин, чтоб вольтметр подключенный к фиксированной половине питания и пину в Z состоянии показал 0 вольт. Т.е. честное ВЫСОКОИМПЕДАНСНОЕ. Вроде про LPC1111 так как надо. но перед железномягкими телодвижениями в сторону новой платформы хотелось услышать мнение специалиста. Изменено 23 апреля, 2010 пользователем zltigo Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 0 23 апреля, 2010 Опубликовано 23 апреля, 2010 · Жалоба ..хотелось услышать мнение специалиста. Рассчитывая на определенность в поведении токов утечек Вы твердо стоите на пути изобретния дерьма. Вне зависимости от платформы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
majorka65 1 24 апреля, 2010 Опубликовано 24 апреля, 2010 (изменено) · Жалоба Спасибо. Другие мнения есть? Кто проверял STM32F103x по Z состоянию, будте добры, отпишитесь. Изменено 24 апреля, 2010 пользователем Karim Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Serj78 0 15 июня, 2010 Опубликовано 15 июня, 2010 · Жалоба Отлаживаю проект "в железе" на STM32F103VИ (100пин корпус) После первого включения проконтролировал общий ток, получил 110ма и успокоился, т.к есть еще 6 датчиков и они что-то жрут, а старая конструкция на 2-х мегах жрала на 15ма больше... Отладка длится не первый день, я решил померять ток потребляемый при вычислениях с ацп - возрастает или нет. нифига не намерял, но задумался что-то проц слегка теплый (градусов 40)- может что-то не так? И сейчас дошло - ОН ВСЕ ВРЕМЯ РАБОТАЛ НА 144 МГц!! (кварц на отладочной плате был 8 Мгц, в живом железе на 16 Мгц, а множитель в PLL я переставить забыл. :07: ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yakuzaa 0 2 октября, 2010 Опубликовано 2 октября, 2010 (изменено) · Жалоба привет всем! тоже занялся проблемой SDIO на STM32F103VE. 1) Mass Storage работает хорошо, но только с картами емкостью до 8 Гб включительно. при 16 Гб карте получаю "Устройство УСБ не опознано" Может кто пробовал с 16Гб ? :rolleyes: 2) FatFs тоже работает - но тут прикол еще хлеще - пожоду переполнение адресации при выполнении Disk_read. Выражается следующим образом: карта на 8Гб почти полностью заполнена, записывю на нее еще один файлик с ПК. Вставляю карту в проект, в проекте тупо поблочное копирование этого файлика в другой. Прогнал. карту снова в пк. В скопированном файлике содержимое другого файла! В обоих проектах использую stm32_eval_sdio_sd.c из стандартного набора библиотек Изменено 2 октября, 2010 пользователем Ivan Kuznetzov Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
anpaza 0 9 января, 2015 Опубликовано 9 января, 2015 · Жалоба привет всем! тоже занялся проблемой SDIO на STM32F103VE. 1) Mass Storage работает хорошо, но только с картами емкостью до 8 Гб включительно. при 16 Гб карте получаю "Устройство УСБ не опознано" Может кто пробовал с 16Гб ? :rolleyes: SD карточки до 4Гб используют один протокол, свыше 4Гб - другой. Возможно, с этим как-то связано. Почему у Вас граница на 8ми - не знаю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
drifterrr 0 4 июня, 2017 Опубликовано 4 июня, 2017 · Жалоба Все еще мучаю STM32F103. Пока чип работает хорошо. Кстати у него очень удобная реализация CAN - 2 fifo (что мне удобнее чем куча mailbox) и много довольно гибких фильтров. И еще тут обнаружил что APB1 (на ней и CAN висит ) работает (по даташиту) максимум на 36 Mhz, т.к. я на это внимания не обратил у меня APB1 и CAN на ней работают на полной скорости 72 Mhz ( глюков не было), но скорость я конечно все равно понижу до 36. Добрый день. Подскажите, пожалуйста, кто разобрался, как поменять пины, на которые выводится кан интерфейс? Мне нужно сделать это по ходу программы. То есть я подключил два Кан трансивера: на пины а11а12 и на в8в9. Стартую без ремапа, работаю с А. Затем делаю ремап и работаю с Б. А дальше сделать ремап с Б на А не выходит. Это вообще возможно? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 34 4 июня, 2017 Опубликовано 4 июня, 2017 · Жалоба конечно возможно Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
drifterrr 0 5 июня, 2017 Опубликовано 5 июня, 2017 (изменено) · Жалоба конечно возможно В таком случае прошу помощи в поиске ошибок. Вероятно, в библиотеке. Прошу прощения, что код из среды ардуино. #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 Изменено 19 июня, 2017 пользователем IgorKossak [codebox] для длинного кода. [code]-для короткого!!! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
drifterrr 0 7 июня, 2017 Опубликовано 7 июня, 2017 · Жалоба Ответ: afio_init(); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться