当前位置:网站首页>Okrk3399 Development Board Reserved i2c4 Mounting EEPROM
Okrk3399 Development Board Reserved i2c4 Mounting EEPROM
2022-07-23 14:22:00 【Kakarot GT】
Le rédacteur en chef énumère et explique comment l'utiliser dans cet article.I2C4Montageat24c08(EEPROM)Chip.

Modifier les résultats
1、Modifierkernel/arch/arm64/boot/dts/rockchip/OK3399.dts,Ajouter et modifier comme suit::

2、Retraitat24c08Résistance à la traction sur le module,Utilisation des lignes aériennes1.8VAlimentation du module,AccèsI2C4_SCLEtI2C4_SDA.
Modifier l'idée
Nous allons ajouterI2CL'idée de l'équipement est:Ajouter une description à l'arborescence des périphériques->Ajouter le pilote de périphérique correspondant à la description de l'arbre de périphérique->Pilote de périphérique ajouté au noyau.
Dans l'esprit,D'abord dans l'arborescence des périphériquesI2C4Ajouter sous le noeudat24c08Informations sur l'équipement pour.Inkernel/arch/arm64/boot/dts/rockchip/OK3399-C.dtsDocumentation,TrouverI2C4Les noeuds sont les suivants:

ActuellementdisabledÉtat de, Et aucune information sur l'appareil . Ajouter des informations sur l'appareil comme suit :

Comme indiqué ci - dessus, Dites au noyau via l'arborescence des périphériques ,I2C4Commencez à utiliser, Et a monté un EEPROMMatériel,Je m'appelle[email protected], Les moteurs utilisés sont compatible=“”;
Donc nous manquons de ce moteur maintenant ,En généralI2C Le fichier pilote utilisé par l'appareil correspond à I2C Le fabricant fournira , Si le fabricant dit qu'il n'a pas besoin d'entraînement, etc , Ce n'est pas vraiment “Pas besoin.”Drive, C'est plutôt que leurs appareils peuvent utiliser des entraînements universels .
C'est ce qui se passe avec l'appareil dans cet article , Après avoir communiqué avec le fabricant, il a indiqué qu'il n'y avait pas de document d'entraînement . Alors cherchez directement dans le Répertoire du noyau eeprom、at24Un mot comme ça., Vérifiez s'il y a des fichiers de pilotes génériques correspondants .

Visible kernel/drivers/misc/eeprom/at24.cDocumentation.
Voir comment son contenu correspond à l'utilisation de ce pilote , Normalement, le fichier pilote devrait être réservé .compatible= *** L'interface qui appelle ce pilote en tant qu'arbre de périphériques , Juste dans la description de l'arbre d'équipement compatibleAvec Dans le fichier pilote .compatible Cohérence décrite dans , Et ça marchera .
Mais celui - ciat24.cNon..compatible,Un seulat24_ids Il y a ”24c08”:

Comparer avec at25.cLes documents ont.compatibleNon.ids.

ids Est également décrit dans et .compatibleC'est pareil, Est l'arbre de périphérique utilisé pour identifier les correspondances utilisées , Trois de ces critères d'appariement de l'identification sont intéressants à poursuivre . Parce que ça n'a rien à voir avec ce texte ,Plus de détails.. Donc j'ai trouvé le fichier pilote correspondant , Retour à l'arborescence des périphériques ajouter une description .

Maintenant ça dit au noyau que je vais utiliser I2C4,MonI2C4Il y en a un autre.EEPROMMatériel,Utilisé“24c08”Drive,Mais pas encore”24c08” Ce fichier est donné au noyau , Ensuite, le but est d'intégrer le pilote dans le noyau .
InkernelExécuter sous le répertoiremakemenuconfig,Rechercheat24,Comme suit:

Appuyez sur le numéro1, Passer automatiquement à l'option correspondante ,Appuyez surySélectionner,Enregistrer la sortie.

Parce quemakemenuconfigCe qui a été modifié.configDocumentation, Et chaque fois que vous compilez un script, vous le régénérez .configDocumentation, Pour que les modifications entrent en vigueur ,Modifier le script de compilation, Pour qu'il ne soit pas régénéré .configDocumentation,Comme suit:

Sera généré.config La commande du fichier est annotée ,Compiler le noyau,C'est comme ça.”24c08” Au noyau , Dites aussi au noyau via l'arborescence des périphériques ,I2C4Il y en a un autre.EEPROM L'équipement doit être utilisé “24c08”.
Ici, Notre idée générale d'ajouter des appareils est terminée :Ajouter une description à l'arborescence des périphériques-> La description de l'arborescence du périphérique correspond au pilote du périphérique ->Pilote de périphérique ajouté au noyau.
La prochaine étape consiste à compiler le noyau ,Gravureboot Miroir sur le tableau de développement ,Utiliseri2ctool Pour voir ,Il n'y a pas non plus de détailsi2ctoolUtilisation spécifique de la commande.Utilisez les commandes:i2cdetect-l 、i2cdetect-y 4.

L'adresse correspondante a été enregistrée ,Mais pas générédevicesEn basI2C4Matériel, Description le module peut ne pas fonctionner correctement , Voir les informations relatives au module .



Module autonomeI2C4Résistance à la traction,Parce queOK3399-C Il y a aussi une résistance à la traction sur la plaque de base comme indiqué ci - dessous ,Et oui.1.8VTirez, Pour l'appariement des niveaux , Sans modifier l'état du plancher ,Utiliser1.8VRéférence, Retirer la résistance à la traction du module ,Utiliser1.8VConfiguration.

Modifier à nouveau l'arborescence du périphérique , Ajouter la description de l'horloge précédente et la description de l'adresse de l'appareil .

Après compilation,Graver le noyau, Brûlez et démarrez le tableau de développement .

ReconnuI2C4Équipement sous, Ensuite, faites un test de lecture et d'écriture ,Les commandes suivantes:
echo"hello my world" > /sys/bus/i2c/devices/1-0050/eeprom
cat/sys/bus/i2c/devices/4-0050/eeprom

Jusqu'à présent, un nouveau I2C EEPROM L'appareil a été ajouté avec succès ,C'est exact.I2C Les opérations de lecture et d'écriture de l'appareil peuvent également être effectuées par l'intermédiaire du tableau de développement i2ctoolOpérations de commande connexes.https://forlinx.com/
边栏推荐
- The difference between rtx3080ti and 3090. Which one is more cost-effective, rtx3080ti or 3090
- Notes on the sixth day
- OSPF comprehensive experiment
- Shell实践:一键启动进程、关闭进程、查看进程状态
- Swift 16进制字符串与UIColor互转
- js 实现随机生成UUID
- STM32输出正弦波+cubeMX配置+HAL库
- JS to implement encode64 encryption
- 剑指 Offer 46. 把数字翻译成字符串
- Pycharm读取Excel文件时报错:raise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+ ; not supported )
猜你喜欢

Which is the difference between iqoo 10 pro and vivo X80 pro? Detailed parameter configuration comparison

OKRK3399开发板预留I2C4挂载EEPROM

Notes on the ninth day

Detailed explanation of knapsack problem

第八天笔记

采样和数据驱动

Tensor, numpy, PIL format conversion and image display

What level is the Core i7 1165g7 equivalent to? What grade does the i71165g7 belong to

Pbootcms数据库转换教程(sqlite转mysql详细教程)

打家劫舍!
随机推荐
Kafka consumption reports an error coordinator unavailable Rediscovery will be attempt redisCovery
canvas橡皮擦功能
The difference between rtx3080ti and 3090. Which one is more cost-effective, rtx3080ti or 3090
测试平台、硬件设计描述
Fabric. JS basic brush
104 二叉树的最大深度 和 543 二叉树的直径和 124 二叉树的最大路径和
强化学习——策略梯度理解点
requests库大型爬虫开发经验
How many processors is Tianji 720 equivalent to Xiaolong? How about Tianji 720 equivalent to Xiaolong
解决使用bert encoder出现的一系列问题
Day108. Shang Yitong: interface docking of hospital simulation system - query of hospital | Department | shift scheduling, addition, deletion, modification and paging conditions
spotlight灯箱js插件全屏放大图片
Rtx3080 is equivalent to GTX. What kind of graphics card is rtx3080? What level is rtx3080
Reinforcement learning -- understanding point of strategy gradient
Sampling and data driven
Rtx3080ti and rtx3080 gap 3080 and 3080ti parameter comparison
Is machine learning difficult to get started? Tell me how I started machine learning quickly!
Which is the difference between iqoo 10 pro and vivo X80 pro? Detailed parameter configuration comparison
Uiscrollview (uicollectionview) prohibits horizontal and vertical sliding at the same time
Detailed explanation of knapsack problem