среда, 22 июня 2011 г.

Библиотека для работы МК Renesas V850ES совместно с ЖК модулем

Библиотека предназначена для работы с модулями на контроллере KS0066U, HD44780U и совместимыми и микроконтроллером Renesas UPD70F3793 но может быть адаптирована под любой МК.
Питание дисплея осуществляется от 3.3V.
На вывод контраста подается отрицательное напряжение полученое на инвертирующем зарядовом насосе.
Подключение дисплея к МК осуществляется так:
ЖК модуль <-> uPD70f3793
-----------------------
DB0 <-> PDL0
DB1 <-> PDL1
DB2 <-> PDL2
DB3 <-> PDL3
DB4 <-> PDL4
DB5 <-> PDL5
DB6 <-> PDL6
DB7 <-> PDL7

RS -> PDL8
R/W -> PDL9
E -> PDL10
-----------------------
На таймере P генерируется ШИМ 200КГц и подается с вывода P35 на зарядовый насос.
Ограничивая ширину импульсов, можно регулировать контрастность дисплея.
Схема зарядового насоса:

Перед выполнением функций чтения/записи, надо вызвать LCD_init()

Функция LCD_write_command_or_data имеет два параметра - первый указывает что будем записывать - команды (LCD_COMMAND или LCD_COMMAND_NO_BF_CHECK) или данные (LCD_DATA или LCD_DATA_NO_BF_CHECK) а затем собственно команда или байт данных.
Приставка NO_BF_CHECK означает что не будем проверять флаг Busy от дисплея (на моем дисплее он работал не правильно).
Вот пример вывода двух цифр в верхнюю и нижнюю строки:

Запишем адрес начала верхней строки (0x80 потому что адрес 0x00 а первый бит - команда записи адреса)
LCD_write_command_or_data(LCD_COMMAND_NO_BF_CHECK, 0x80);

И выведем цифру 1
LCD_write_command_or_data(LCD_DATA_NO_BF_CHECK, (0x31);

Запишем адрес начала нижней строки (0xC0 потому что адрес 0x40 а первый бит - команда записи адреса получаем 11000000b тоесть 0xC0)
LCD_write_command_or_data(LCD_COMMAND_NO_BF_CHECK, 0xC0);

И выведем цифру 2
LCD_write_command_or_data(LCD_DATA_NO_BF_CHECK, (0x32);

Исходники написаны на C в среде IAR.
Скачать можно здесь:
uPD70F3793_LCD.zip

понедельник, 16 мая 2011 г.

EEPROM в SFP модулях

По спецификации, на SFP и SFP+ модулях,установлен EEPROM объемом 128 байт.
Первые 96 байт специфицированы, оставшиеся - отводятся производителю.
Нас интересуют первые 96.
Итак:
Байт: Значение: Описание:
-------------------
Базовый блок
-------------------
0 0x03 Тип модуля - 0x03 SFP
1 0x04 Расширенный тип - 0x04 GBIC/SFP функционал доступен через I2C
2 0x07 Тип коннектора - 0x07 LC коннектор
3-10 xx Электрическая или оптическая совместимость (опишу отдельно)
11 0x06 Тип кодировки данных - 0x06 64B/66B
12 0x67 Номинальная скорость передачи бит в 100Mbps 0x67=103x100Mbps
13 0x00 RATE_ID нас пока не касается
14 0x28 Дальность на SMF в километрах - 0x28 = 40Km
15 0xFF Дальность на SMF в 100 метрах - 0xFF больше не лезет видимо
16 0x00 Дальность на оптике с ядром 50мкм OM2 в 10 метрах
17 0x00 Дальность на оптике с ядром 62.5мкм OM1 в 10 метрах
18 0x00 Дальность на меди в метрах
19 0x00 Дальность на оптике с ядром 50мкм OM3 в 10 метрах
20-35 xx Название производителя в ASCII
36 0x20 Электрическая или оптическая совместимость (опишу отдельно)
37-39 xx IEEE код производителя
40-55 xx Партийный номер модуля в ASCII
56-59 xx Ревизия в ASCII
60-61 0x060E Длинна волны - 0x060E - 1550нм
62 0x00 Зарезервировано
63 xx Контрольная сумма базового блока (просто 8 бит от суммы всех байт от 0 до 62)
------------------
Расширенный блок
------------------
64-65 0x601A Опциональные сигналы (опишу позже)
66 0x00 Верхний зазор по битрейту в процентах
67 0x00 Нижний зазор по битрейту в процентах
68-83 xx Серийный номер модуля в ASCII
84-91 xx Дата производства
92 0x68 Реализованная диагностика (опишу позже)
93 0xF0 Реализованная расширенный функционал (опишу позже)
94 0x20 SFF-8472 совместимость
95 xx Контрольная сумма расширенного блока (просто 8 бит от суммы всех байт от 64 до 94)

Допишу позже

вторник, 15 марта 2011 г.

Беда в Японии

Внимание! В связи с тяжелейшими последствиями землетрясения и цунами в Японии, произошедшими 11 марта 2011 года, Российский Красный Крест объявил чрезвычайный сбор средств, для оказания помощи пострадавшим жителям Японии. Вся подробная информация и реквизиты есть на официальном сайте Российского Красного Креста.
Так же, на официальном сайте Американского Красного Креста открыт аналогичный сбор средств, там можно перевести деньги по кредитной карте. Подробности смотрите тут