Важная информация

User Tag List

Страница 34 из 53 ПерваяПервая ... 303132333435363738 ... ПоследняяПоследняя
Показано с 331 по 340 из 528

Тема: Планирую сделать FDD эмулятор на Atmega8

  1. #331
    Master
    Регистрация
    20.01.2016
    Адрес
    п. Власиха, Московская обл.
    Сообщений
    593
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    32
    Поблагодарили
    19 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zebest Посмотреть сообщение
    Так это, а если из вышеприведенного проекта что выковырять?? он даже так себе вполне прилично писчит в 9-й выход, и на индикаторе отображает, и даже три кнопки вполне хватает Зачем изобретать велосипеды? а не совмещать их
    Это то понятно, но чтобы хорошо совместить - нужно разобраться что там и куда вставлять, а на это нужно время...

  2. #331
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #332
    Master
    Регистрация
    19.12.2013
    Адрес
    г. Никополь, Украина
    Сообщений
    997
    Спасибо Благодарностей отдано 
    339
    Спасибо Благодарностей получено 
    667
    Поблагодарили
    177 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я тут платку ZX FDD Emulator развел для себя, может кому-нибудь еще пригодится: https://github.com/andykarpov/zx-fdd-emulator-pcb/


    - - - Добавлено - - -

    Только разъем для micro SD карточки взял первый попавшийся в Eagle, это Molex 49225-0821, вероятно это не самый дешевый разъем К тому же он перевернутый, ну то есть карточка вставляется в него вверх ногами. Нужно поискать что-то попроще, есть может у кого что-то более-менее распространенное / китайское в виде библиотеки для Eagle?

    UPD: Версию с разъемом molex перенес в отдельный бранч, текущая версия в master - с другим слотом для SD-карточки.
    Последний раз редактировалось andykarpov; 12.03.2017 в 16:38.

  4. #333
    Member
    Регистрация
    06.02.2017
    Адрес
    г. Тольятти
    Сообщений
    36
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от andykarpov Посмотреть сообщение
    Только разъем для micro SD карточки взял первый попавшийся в Eagle, это Molex 49225-0821
    А может не разъём? Может модуль? В смысле сейчас цена модуля дешевле, чем цена разъёма.
    Шаг выводов у них стандартный, цоколёвка правда бывает разной... но можно взять за основу которые подешевле или развести сразу под две модели (покупай любую и впаивай/приклеивай)

  5. #334
    Master
    Регистрация
    19.12.2013
    Адрес
    г. Никополь, Украина
    Сообщений
    997
    Спасибо Благодарностей отдано 
    339
    Спасибо Благодарностей получено 
    667
    Поблагодарили
    177 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Модули все разные, размеры разные, распиновка тоже, в общем непонятно, универсального стандарта нет.
    В репозитарий добавил новую версию платы, micro SD карточка другая, добавил 6-контактный разъем SPI для SD-модуля, но его все равно прийдется паять на проводках. Еще забыл 2 pull-up резистора на i2c шину, добавил в схему.

    В любом случае - исходники платы открыты, можно брать и править под себя
    Теоретически, если пожертвовать крепежными отверстиями, можно и полноразмерную SD-карточку приделать.

  6. #335
    Master
    Регистрация
    19.12.2013
    Адрес
    г. Никополь, Украина
    Сообщений
    997
    Спасибо Благодарностей отдано 
    339
    Спасибо Благодарностей получено 
    667
    Поблагодарили
    177 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    Smile

    Приехали платки v1.0 и разъемы molex для sd-карточки, спаял первую ревизию платы.

    Нажмите на изображение для увеличения. 

Название:	IMG_20170407_103946.jpg 
Просмотров:	329 
Размер:	94.4 Кб 
ID:	60534

    Нашлось сразу много мелких косяков:
    1) если в качестве разъема для дисковода использовать shrouded header - ему не хватает буквально полтора миллиметра, чтобы встать нормально, мешается 3.3v регулятор. пришлось сам разъем снизу немного подпилить надфилем в этом месте
    2) такая же история с разъемом для ISP, обычные pin headers встают без проблем. UPD: все норм становится, если разъем для SD-карты паять первым
    3) посадочное место под подстроечный резистор не соответствует расстоянию между выводами подстроечника, имеющегося в наличии. мелочь, а неприятно
    4) отсутствие pull-up резисторов на i2c шине, пока хз, насколько это критично и будет ли работать на внутренних подтяжках atmega328 UPD: не критично, хватает подтяжек на стороне атмеги.
    5) порядок подключения дисплея к выводам pcf8574 отличается от порядка, принятого в китайских адаптерах
    6) перемычки для выбора адреса pcf8574 не работают в открытом состоянии, потому что нет подтяжек. будет работать, только если все они замкнуты. соответственно, i2c адрес будет 0x20.

    Завести текущую версию проекта пока полностью не получилось:
    1) была попытка указать адрес и порядок пинов в LCDModule.h, но потом выяснилось, что в коде используется только LCDEX_ADDR, а остальные дефайны не используются, работа с i2c дисплеем захардкожена.
    2) переписал LCDModule.h и LCDModule.cpp на использование библиотеки LiquidCrysyal_I2C, в конструктор которой можно передать в качестве аргументов порядок пинов
    3) после чего было обнаружено, что текущая версия Arduino IDE 1.8.1 как-то не так интерпретирует main() - он просто не работает. пришлось int main() заменить на void loop() и добавить void setup().
    4) после этого платка завелась, на экране отображается список файлов, по кнопке энкодера можно монтировать и отмонтировать образ
    5) но сам энкодер не хочет работать по какой-то причине. после того, как его покрутить - все зависает намертво.
    вот с этим пунктом, если можно - дайте, плз, совет. может энкодер какой-то не такой? или что-то можно подкрутить в коде?


    Все завелось, версия ПО для ревизии платы 1.0: https://github.com/andykarpov/ZX_FDD_Emulator
    Последний раз редактировалось andykarpov; 14.04.2017 в 15:20.

  7. #336
    Master
    Регистрация
    20.01.2016
    Адрес
    п. Власиха, Московская обл.
    Сообщений
    593
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    32
    Поблагодарили
    19 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от andykarpov Посмотреть сообщение
    Приехали платки v1.0 и разъемы molex для sd-карточки, спаял первую ревизию платы.
    4) отсутствие pull-up резисторов на i2c шине, пока хз, насколько это критично и будет ли работать на внутренних подтяжках atmega328
    Резисторы есть в клавиатуре

    Цитата Сообщение от andykarpov Посмотреть сообщение
    1) была попытка указать адрес и порядок пинов в LCDModule.h, но потом выяснилось, что в коде используется только LCDEX_ADDR, а остальные дефайны не используются, работа с i2c дисплеем захардкожена.
    Захардкожены только датапины, остальные можно менять, если нужно, могу допилить эту часть

    Цитата Сообщение от andykarpov Посмотреть сообщение
    3) после чего было обнаружено, что текущая версия Arduino IDE 1.8.1 как-то не так интерпретирует main() - он просто не работает. пришлось int main() заменить на void loop() и добавить void setup().
    Весьма странно, я проверял на всех версиях, вроде проблем с этим не было.

    Цитата Сообщение от andykarpov Посмотреть сообщение
    5) но сам энкодер не хочет работать по какой-то причине. после того, как его покрутить - все зависает намертво.
    возможно подключенная библиотека или еще что-то использует те прерывания, которые повешены на энкодер.

  8. #337
    Master
    Регистрация
    19.12.2013
    Адрес
    г. Никополь, Украина
    Сообщений
    997
    Спасибо Благодарностей отдано 
    339
    Спасибо Благодарностей получено 
    667
    Поблагодарили
    177 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от EvgenRU Посмотреть сообщение
    Резисторы есть в клавиатуре
    Ммм, в какой клавиатуре ?

    Цитата Сообщение от EvgenRU Посмотреть сообщение
    Захардкожены только датапины, остальные можно менять, если нужно, могу допилить эту часть
    Если можно - было бы здорово!

    По поводу Arduino IDE и энкодеров - попробую проапгрейдиться, параллельно уберу лишние платформы, например STM32 и ESP8266, может где-то что-то подглюкивает

  9. #338
    Master
    Регистрация
    20.01.2016
    Адрес
    п. Власиха, Московская обл.
    Сообщений
    593
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    32
    Поблагодарили
    19 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от andykarpov Посмотреть сообщение
    Ммм, в какой клавиатуре ?
    Ой, это я с эмулятором клавиатуры попутал :-D

    PS: а какие именно пины нужно переставить? А то я там что-то в коде уже потерялся, давно эту библиотеку писал...

    PS2: предлагаю попробовать вот такой вариант функции отправки данный в экстендер
    Код:
    void twi_send_byte(unsigned char data)
    {
        twi_start(LCDEX_ADDR);
        unsigned char data_out = 0;
        if(data & 16) data_out |= _BV(LCDEX_D4);
        if(data & 32) data_out |= _BV(LCDEX_D5);
        if(data & 64) data_out |= _BV(LCDEX_D6);
        if(data & 128) data_out |= _BV(LCDEX_D7);
        TWDR = data | _BV(LCDEX_LIGHT & light_val); //temporary
        TWCR = (1<<TWINT) | (1<<TWEN);
    
        while(!(TWCR & (1<<TWINT)));
    
        twi_stop();
    }
    Последний раз редактировалось EvgenRU; 09.04.2017 в 18:24.

  10. #339
    Master
    Регистрация
    19.12.2013
    Адрес
    г. Никополь, Украина
    Сообщений
    997
    Спасибо Благодарностей отдано 
    339
    Спасибо Благодарностей получено 
    667
    Поблагодарили
    177 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Кусок не работает.
    В нет, как минимум, перестановки остальных значащих битов (RS,RW,EN), + мы инициализируем data_out, но при этом передаем все равно data
    Ну и непонятно откуда взявшаяся переменная light_val.

  11. #340
    Master
    Регистрация
    20.01.2016
    Адрес
    п. Власиха, Московская обл.
    Сообщений
    593
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    32
    Поблагодарили
    19 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от andykarpov Посмотреть сообщение
    Кусок не работает.
    В нет, как минимум, перестановки остальных значащих битов (RS,RW,EN), + мы инициализируем data_out, но при этом передаем все равно data
    Ну и непонятно откуда взявшаяся переменная light_val.
    Да, что-то я поторопился
    Код:
    void twi_send_byte(unsigned char data)
    {
        twi_start(LCDEX_ADDR);
        unsigned char data_out = 0;
        if(data & 16) data_out |= _BV(LCDEX_D4);
        if(data & 32) data_out |= _BV(LCDEX_D5);
        if(data & 64) data_out |= _BV(LCDEX_D6);
        if(data & 128) data_out |= _BV(LCDEX_D7);
        TWDR = data_out | _BV(LCDEX_LIGHT & light_val); //temporary
        TWCR = (1<<TWINT) | (1<<TWEN);
    
        while(!(TWCR & (1<<TWINT)));
    
        twi_stop();
    }
    light_val определена как
    uint8_t light_val = LCDEX_LIGHT;
    в функции включения подсветки ей присваивается light_val = LCDEX_LIGHT;
    а в выключении ноль, что вполне нормально, т.е. этот пин можно спокойно переставлять.

    в крайнем случае, чтобы всё время светилась можно
    вместо _BV(LCDEX_LIGHT & light_val)
    написать _BV(LCDEX_LIGHT);

    (RS,RW,EN) не нужно переставлять, т.к. они определены в дефайне
    и везде заданы как data |= _BV(LCDEX_EN); и т.д. т.е. берется номер бита и преобразуется в значение.

    UPD: совсем забыл еще, что в дате могут быть другие данные
    тогда переделаю всё библиотеку в ближайшие 2-3 дня....
    Последний раз редактировалось EvgenRU; 10.04.2017 в 00:52.

Страница 34 из 53 ПерваяПервая ... 303132333435363738 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 24
    Последнее: 08.12.2012, 19:00
  2. Тестер транзисторов на ATmega8
    от ILoveSpeccy в разделе Творчество
    Ответов: 10
    Последнее: 19.05.2011, 15:03
  3. Ответов: 0
    Последнее: 31.01.2007, 18:18

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •