Мелкие вопросы по МК и ПЛИС.

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Первый раз сказал Мяу!
Аватара пользователя
Сообщения: 23
Зарегистрирован: Вс авг 16, 2015 10:55:51

Сообщение ma747 »

bav123
Я не врубаюсь что этот второй ключ делает? 6-я нога это и-не 4-й и 5-й ног, когда ключ размыкает контакт на MOSI с 6-й ноги сигнал идёт, когда контакт замкнут то это вроде на выходы для пика должно влиять? В общем хочу понять этот ключ тоже переключатель для ПИК/АВР или для чего-то ещё.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 6643
Зарегистрирован: Чт авг 09, 2012 01:09:39
Откуда: Ливны

Сообщение korob »

ma747 писал(а):Я не врубаюсь что этот второй ключ делает?
Отключает/подключает диод VD2 к выходу "6" IC2 превращая его в подобие выхода с открытым коллектором, который в свою очередь совместно со входами "1" и "2" необходим для реализации двунаправленной шины Data для PIC МК.
Большой опыт, порой, не даёт находить/видеть нам простые и очевидные решения. :(
Всегда с уважением, Александр.
Реклама
Первый раз сказал Мяу!
Аватара пользователя
Сообщения: 23
Зарегистрирован: Вс авг 16, 2015 10:55:51

Сообщение ma747 »

В общем я понял можно использовать ключ который будет один два направления коммутировать (если найду).
Chettuser

Сообщение Chettuser »

Застрял с настройкой HSE+PLL в STM32F030.
Где чего не так я делаю?
Спойлер

Код: Выделить всё

    RCC->CR |= RCC_CR_HSEON;                    // Включить HSE
    while((RCC->CR & RCC_CR_HSERDY) == 0) {}    // Ждём включения HSE

    RCC->CFGR2 |= RCC_CFGR2_PREDIV1_DIV1;       // Предделитель PLL отключён
    RCC->CFGR |= RCC_CFGR_PLLSRC_HSE_PREDIV;    // Используем HSE для PLL

    RCC->CFGR |= RCC_CFGR_HPRE_DIV1;        // SYSCLK без деления
    RCC->CFGR |= RCC_CFGR_PPRE_DIV1;        // HCLK без деления

//    RCC->CFGR |= (uint32_t) (RCC_CFGR_SW_HSE);
//    while ((RCC->CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_HSE) {}

    RCC->CR &= (uint32_t)(~RCC_CR_PLLON);                       // Отключаем PLL
    while((RCC->CR & RCC_CR_PLLRDY) != 0) {}                    // Ждём пока PLL отключится
    RCC->CFGR = RCC->CFGR & (~RCC_CFGR_PLLMUL) | (RCC_CFGR_PLLMUL6);    // Устанавливаем множитель
    RCC->CR |= (uint32_t) (RCC_CR_PLLON);                       // Включаем PLL
    while((RCC->CR & RCC_CR_PLLRDY) == 0) {}                    // Ждём установления PLL
    RCC->CFGR |= (uint32_t) (RCC_CFGR_SW_PLL);                  // Выбираем PLL как источник
    while ((RCC->CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_PLL) {}   // Ждём пока PLL включится

    RCC->CR |= RCC_CFGR_MCO_SYSCLK;     // Включаем на PA8 выход системной частоты
Реклама
Эиком - электронные компоненты и радиодетали
Вымогатель припоя
Аватара пользователя
Сообщения: 606
Зарегистрирован: Чт окт 06, 2016 21:12:07
Откуда: Южное Бутово

Сообщение ptr128 »

Chettuser писал(а):Здравствуйте.
Настроил STM32F103 на работу с SPI+DMA. Это нужно для работы с LCD от Nokia 1616. Но вот не пойму - как мне дёргать ногу дисплея nCS при таком настроенном автомате? Дело в том, что дисплей кушает 9-битный SPI, а вот у МК только на выбор или 8 или 16 бит. Шлю 16 бит со сдвигом. В конце передачи надо бы защёлкнуть, но настроено DMA и не пойму как это сделать с минимальными вмешательствами.[/b].
Спасибо.
Повесить CS на любой GPIO и выставлять его в высокий уровень по окончанию передачи по DMA. На память не помню. Вроде бы на 350 наносекунд минимум, чтобы контроллер TFT осознал break в обмене.
На самом деле, если не читаете из фреймбуфера, можно CS намертво повесить на землю и добивать последний байт/слово командой(командами) NOP, с перекрытием следующего байта/слова. Ну и фиксировать в переменной, что часть байта/слова уже заняты. С чтением такой вариант не пройдет. Чтение при любом раскладе следует завершать высоким уровнем CS.
Не ошибается только то, кто ничего не делает.
Тот, кто признает свои ошибки, на них учится.
Глупец же, упорствуя в своих заблуждениях, остается глупцом.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Сообщение FreshMan »

почему после стирания флеша на авр там все заполнено единичками а не нулями ?
для чего так делается ?
Изображение
Tell Me The Truth
Реклама
Chettuser

Сообщение Chettuser »

Это не только АВР. И Микрочип и СТМ и другие. Очевидно как то связано с технологией памяти.
Друг Кота
Аватара пользователя
Сообщения: 6643
Зарегистрирован: Чт авг 09, 2012 01:09:39
Откуда: Ливны

Сообщение korob »

Это наследие от PROM-памяти на пережигаемых перемычках, которая в исходном состоянии была "заполнена" единицами (все перемычки целы), а программировалась путём пережигания перемычек (записью нолями).
Большой опыт, порой, не даёт находить/видеть нам простые и очевидные решения. :(
Всегда с уважением, Александр.
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

Chettuser писал(а):Это не только АВР. И Микрочип и СТМ и другие.
Флэш память STM32L после стирания заполнена нулями. С пережигаемыми перемычками флэш память ничего общего не имеет - "принцип работы флеш-памяти основан на изменении и регистрации электрического заряда в изолированной области ("карман") полупроводниковой структуры."
http://hobbyits.com/cifrovye-texnologii ... myati.html
p/s Микросхема К155РЕ3 представляет собой электрически программируемое посредством пережигания плавких перемычек постоянное запоминающее устройство (ППЗУ) емкостью 256 бит (32x8). В исходном состоянии по всем адресам и разрядам записан логический ноль.
Вымогатель припоя
Аватара пользователя
Сообщения: 616
Зарегистрирован: Вс ноя 01, 2015 13:13:49

Сообщение scorpi_0n »

oleg110592 писал(а):
Chettuser писал(а):Это не только АВР. И Микрочип и СТМ и другие.
Флэш память STM32L после стирания заполнена нулями.
После стирания ЕЕПРОМ СТМ8, насколько помню, тоже забита нулями.
Chettuser

Сообщение Chettuser »

Скоро появится STM32H7, интересно - в каких корпусах (пока от LQFP100) и по какой цене будет такой фарш?
Chettuser

Сообщение Chettuser »

На STM32F0 имеются сниппетсы, а на другие линейки, в частности F1, имеется что-нибудь похожее? Очень не хватает заведомо рабочих примеров, что бы подсмотреть некоторые моменты. :roll: КАЛ и СПЛ не интересует - я заипался в них копаться, чтобы найти нужное на КМСИСЬ.
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

Даю наводку. :)))
Ну например таймеры у всех линеек почти одинаковые.
SPI, UART ...
Что конкретно интересует?
Chettuser

Сообщение Chettuser »

Да всё, что есть в этом долбанном SPL/HAL, но только на CMSIS. Сижу вот, копаюсь в RM и STM32F10x.h
Вроде жалкое подобие нашёл: http://chipspace.ru/stm32-spi/
Но всё равно что то не то... Ну негде подсмотреть некоторые моменты, которые нигде не описаны. Это только на реальных примерах можно увидеть, как в сниппетсах.
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

Ну дык постепенно все и освоить.
Что конкретно надо с SPI?
Побайтовая транзакция или блочная с DMA?
Chettuser

Сообщение Chettuser »

Страницу открыл для примера, SPI я уже освоил.
Ладно, придётся вопросы тут задавать, по мере поступления.
Спокойной ночи всем! :beer:
Вымогатель припоя
Аватара пользователя
Сообщения: 593
Зарегистрирован: Пт дек 26, 2014 20:33:38
Откуда: Самая большая деревня. (По мнению Габриэля Гарсиа Маркеса)

Сообщение dadigor »

FreshMan писал(а):почему после стирания флеша на авр там все заполнено единичками а не нулями ? для чего так делается ?
Так делается не для чего, а почему. По своей сути, физической основе, только что изготовленная "чистая" флэш-память заполнена единицами, а процесс записи сводится к тому, что программируются, меняя свое состояние ячейки, где должен быть 0, остальные фактически просто не меняют свое состояние. А при стирании эти же ячейки меняют свое состояние на 1. Причем как запись, так и стирание идет поблочно, обычно размеры блоков выравнены на степень двойки.
О технике чего спорить-то, давайте попробуем.
Вымогатель припоя
Аватара пользователя
Сообщения: 606
Зарегистрирован: Чт окт 06, 2016 21:12:07
Откуда: Южное Бутово

Сообщение ptr128 »

Если уж говорить о флеш памяти, то чистая, то есть стертая ячейка флеш памяти не содержит электронов в плавающем затворе, а значит транзистор в ее ячейке при подаче напряжения на затвор откроется. Если же в затвор тоннельным эффектом были занесены электроны, то транзистор не откроется. А уж считать ли открытый n-канальный транзистор логическим нулем или единицей есть в чистом виде схемотехническое решение. Если включить его с общим стоком или затвором - будет 1, общим истоком - будет 0.
Не ошибается только то, кто ничего не делает.
Тот, кто признает свои ошибки, на них учится.
Глупец же, упорствуя в своих заблуждениях, остается глупцом.
Вымогатель припоя
Аватара пользователя
Сообщения: 593
Зарегистрирован: Пт дек 26, 2014 20:33:38
Откуда: Самая большая деревня. (По мнению Габриэля Гарсиа Маркеса)

Сообщение dadigor »

Сейчас мы людей запутаем. Я говорю о реальной флеш-памяти. о продающихся микросхемах, "черных ящиках", имеющих входы и выходы с конкретными логическими уровнями, т.е как раз имеющими то самое "в чистом виде схемотехническое решение". При чтении не пользованной или стертой памяти читаются единицы во всех микросхемах, с которыми я имел дело. Это микроконтроллеры AT91SAM7, AVR, STM8, STM32, AT45DBxxx.
Может быть Вам попадались другие - допускаю такое, скажите какие, думаю это будет полезно знать и мне и всем остальным.
О технике чего спорить-то, давайте попробуем.
Потрогал лапой паяльник
Сообщения: 315
Зарегистрирован: Пт янв 29, 2010 19:42:27

Сообщение 12val12 »

Есть ли где то тестовая прошивка для 8 меги ?
гоняющя данные по кольцу UART (закоротить rx-tx) используюзая много математики и всю ОЗУ
таймер
по результатам зажигающая светодиод в случае успеха ( или другой светодиод в случае ошибок).
Если эта тема не подходит куда задать вопрос?
ух ты.... показывает
Ответить

Вернуться в «Разные вопросы по МК»