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

AlexZavgorodniy

Members
  • Постов

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

  • Посещение

Сообщения, опубликованные AlexZavgorodniy

  1. Все доброго дня!

    Товарищи, прошу вашей помощи. Пытаюсь сделать устройство Mass Storage с использованием внутренней памяти. ПК видит устройство и его объем (100кБ в моем случае). Но вот форматирование проходит неудачно.

    мк STM32F103RC

    дефайны следующие

    #define FLASH_MSD_START_ADDR 0x08027000

    #define STORAGE_LUN_NBR 1
    #define STORAGE_BLK_NBR 0xC8
    #define STORAGE_BLK_SIZ 0x200

    функция чтения

    	int8_t STORAGE_Read_FS(uint8_t lun, uint8_t *buf, uint32_t blk_addr, uint16_t blk_len)
    {
      /* USER CODE BEGIN 6 */
      uint32_t i;
      switch (lun)
      {
        case 0:
           for(i = 0; i < blk_len*STORAGE_BLK_SIZ; i += 4)
             {
                 *(uint32_t*)(&buf) = ((volatile uint32_t*)(FLASH_MSD_START_ADDR + blk_addr*STORAGE_BLK_SIZ));
             }
          break;
        case 1:
          break;
        default:
          return USBD_FAIL;
      }
       
      return (USBD_OK);
      /* USER CODE END 6 */
    } 
    	



    запись

    	int8_t STORAGE_Write_FS(uint8_t lun, uint8_t *buf, uint32_t blk_addr, uint16_t blk_len)
    {
      /* USER CODE BEGIN 7 */
    
       FLASH_EraseInitTypeDef EraseInitStruct;
       uint32_t PAGEError = 0;
      uint32_t i;
      switch (lun)
      {
        case 0:   
          for(i = 0; i < blk_len*STORAGE_BLK_SIZ; i += FLASH_PAGE_SIZE)
          {
                EraseInitStruct.TypeErase   = FLASH_TYPEERASE_PAGES;
                EraseInitStruct.PageAddress = FLASH_MSD_START_ADDR + blk_addr*STORAGE_BLK_SIZ + i;
                EraseInitStruct.NbPages     = 1;
                if (HAL_FLASHEx_Erase(&EraseInitStruct, &PAGEError) != HAL_OK)
                {   
                   // error
                }
          }         
         
          for(i = 0; i < blk_len*STORAGE_BLK_SIZ; i += 4)
          {
              HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD,FLASH_MSD_START_ADDR + blk_addr*STORAGE_BLK_SIZ + i , *(uint32_t*)(&buf));
          }
         
          break;
        case 1:
          break;
        default:
          return USBD_FAIL;
      }
      return (USBD_OK);
      /* USER CODE END 7 */
    } 
    	



    При попытке форматирования в память МК ложиться всякая фигня.

    Спасибо!!!

  2. 5 часов назад, солар сказал:

    А ведь надо было на этот меандр обратить внимание. (Это я про себя.)

    про себя скажу, что знал про плохую фильтрацию, но на момент запуска как раз не оказалось в наличии именно тех 4 конденсаторов)) Однако не думал, что это выльется в такую проблему. Впередь буду внимательнее к этому относиться.

     

    Тему можно закрывать.

    Всем спасибо!

  3. Наконец-то оживил этого зверя!

    Начал с того, что заменил 4 оставшихся конденсатора в БП (стояли К50-16, 2000мкфх50В) и 3 подстроечных резистора для напряжений +15В, -15В и +9В. После этого сразу улучшилась фильтрация, ушли все шумы, которые видны на осциллограммах (на линии +9В вообще было около +13В). На всякий случай проверил резисторы в обвязке VT4, впаял все на место, включил и о чудо, все работает как надо!

    Подозреваю, что проблема крылась в питании линий +15В и -15В, т.к. полностью напряжение не выпрямлялось и возможно какое-то из этих двух напряжений при включении нарастало быстрее (или медленнее), чем другое, что и мешало нормально работе транзистора.

     

    Всем спасибо за помощь!

  4. 2 часа назад, солар сказал:

    Всё верно. При включении питания С26 разряжен и дает КЗ эмиттера VT4 на землю. Транзистор открыт, т.к. напряжение на базе велико. С26 заряжается через VD2, R44 и VD4. По мере заряда растет напряжение на эмиттере и транзистор закрывается. Напряжение на коллекторе уходит в минус.

    Стало быть, в нашем случае С26 не заряжается и, походу, пробит.

    идею понял. Вечером проверю и сниму осциллограммы

  5. 1 час назад, Oberon64 сказал:

    Мое замечание по диодам относилось к сообщению, которое было перед ним и воспринимать его как совет вымахивать все диоды - явно не стоило. Да и менять все диоды на Шотки - тоже не совсем правильно.

    это было сделано ради эксперимента)

     

    Резисторы R47 и R48, идущие к ногам 9 и 13 микрухи КП1 при измерениях были выпаяны. Транзистор пробовал менять на другой.

    Сигнал на коллекторе транзистора с С26

    1.jpg

    Сигнал на коллекторе без С26

    2.jpg

    Сигнал на коллекторе без конденсатора С25 (цепь питания КП1) и с конденсатором С26

    3.jpg

    Сигнал на коллекторе без С25 и без С26

    4.jpg

     

     

     

  6. 9 часов назад, Oberon64 сказал:

    Совдеповские диоды в пластмассовых корпусах имели свойство периодически обрываться.  Очень хорошо это просматривалось на примере КД226 - меряешь диод - целый, а приложил усилия к ножкам - в обрыве. Да и КД 208-209 этим тоже страдали...

    А ссылку на форум я привел, потому, что как и автор той темы придерживаюсь мнения, что менять надо НЕИСПРАВНУЮ деталь, а не все подряд.

    заменил совдеповские диоды на импортные диоды Шоттки. Проблема осталась так же: с кондером все мертво, без него - отлично играет

  7. У части конденсаторов в усилителе мощности от старости поотваливались ножки, в других платах корпус кондера саморазобрался:) поэтому и прошлось менять все и сразу

     

    38 минут назад, солар сказал:

    Да хоть покрасить в зеленый цвет. В крапинку. Клиент всегда прав. Бо платит. Он же не сказал - починить. Впрочем, это уже флуд.

    диоды прозванивал - целые. Вечером попробую их заменить. При впаяном С26 на коллекторе транзистора висит +15В, а при выпаяном -15В, парадокс какой-то...

  8. Здравствуйте, господа!

     

    Принесли мне недавно в ремонт катушечник ИЛЕТЬ-110. Просьба клиента была следующая: аппарат дорог как память, использую как усилитель и хочу, чтобы заменили все электролиты, ибо старые уже высохли... Вскрытие показало, что часть кондеров однозначно требует замены. Ну, менять все, так все. После переписи "пациентов" все необходимое было заказано на digikey для последующие замены. Через пару недель пришла посылка и была произведена замена всех электролитов.

    Однако, после этого аппарат ни в какую не хотел выдавать звук... Причина была найдена, но какая-то чудесная и необъяснимая. Ниже привожу участок схемы.

    Микросхема DA5 (К547КП1Б) управляется отрицательным напряжением. При отсутствии конденсатора С26 на коллекторе транзистора около -15В и все работает без нареканий, но если впаять конденсатор, то на коллекторе получается +15В и микросхема DA5 запирается. Транзистор и конденсатор однозначно рабочие(на всякий случай менял на другие).

     Подскажите пожалуйста, что за чудеса творятся с этим конденсатором?)

     

     

    Без имени-1.png

  9. Разобрался во всем. Алгоритм правильный и работает на ура. Проблема оказалась в отсутствии диодов на клаве...но схему придумал не я, а китайцы. Вот только у них, без диодов, как-то это все работало...

  10. реализовать в железе не дает отсутствие под рукой МК и досаточного количества времени). В просторах сети нашел релизацию этого алгоритма, но на Си. Увы, в нем не силен((( Но в том проекте протеуса все работает идеально.

    взято с сайта Flowcode

    8_BUTT.rar

  11. с радостью бы переделал, но сей девайс не позволит это сделать, т.к. полностью задействованы остальные выводы. Кстати, в оригинальной схеме после светодиодов стоят симисторы, управляющие нагрузкой. Здесь я ее немного упростил, для написания прошивы)

  12. Доброе время суток!

    Господа, помогите, пожалуйста, доработать алгоритм опроса клавиатуры на сдвиговом регистре. PIC должен включать по нажатию одной из 8 кнопок один из 8 светодиодов. Прошивка немого глючит...Например, если удерживать 5 кнопку, когда 0 ее пробежал, включается тот светодиод, который должен был влючиться при нажатии на 1 кнопку. А если 0 "поймать" кнопкой , тогда все работает.

    Помогите пожалуйста!

    Заранее спасибо!

    проект в протеусе, исходик и прошивка прилагается

    Desktop.rar

  13. о, у меня было такое, и именно с 6233.....нигде не получалось ее фотрматнуть....помогло только форматирование на смартфоне (nokia 5700). На 3250, по идее, толже должно получится. Ну или на каком-ниубдь другом смарте

  14. доброе время суток! Нажимаю на клавишу включения, загорается дисплей, появляется надпись "D500" и после этого телефон вырубается. Подскажите, пожалуйста, что может быть? прошивка слетела что ли?

×
×
  • Создать...